fraxel 0.1.0-alpha.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 (501) hide show
  1. package/dist/animation/easing.d.ts +29 -0
  2. package/dist/animation/easing.d.ts.map +1 -0
  3. package/dist/animation/easing.js +50 -0
  4. package/dist/animation/easing.js.map +1 -0
  5. package/dist/animation/index.d.ts +7 -0
  6. package/dist/animation/index.d.ts.map +1 -0
  7. package/dist/animation/index.js +7 -0
  8. package/dist/animation/index.js.map +1 -0
  9. package/dist/animation/multiple.d.ts +26 -0
  10. package/dist/animation/multiple.d.ts.map +1 -0
  11. package/dist/animation/multiple.js +27 -0
  12. package/dist/animation/multiple.js.map +1 -0
  13. package/dist/animation/properties.d.ts +30 -0
  14. package/dist/animation/properties.d.ts.map +1 -0
  15. package/dist/animation/properties.js +32 -0
  16. package/dist/animation/properties.js.map +1 -0
  17. package/dist/animation/sequences.d.ts +30 -0
  18. package/dist/animation/sequences.d.ts.map +1 -0
  19. package/dist/animation/sequences.js +50 -0
  20. package/dist/animation/sequences.js.map +1 -0
  21. package/dist/animation/sprite-sheet.d.ts +81 -0
  22. package/dist/animation/sprite-sheet.d.ts.map +1 -0
  23. package/dist/animation/sprite-sheet.js +103 -0
  24. package/dist/animation/sprite-sheet.js.map +1 -0
  25. package/dist/animation/tween.d.ts +78 -0
  26. package/dist/animation/tween.d.ts.map +1 -0
  27. package/dist/animation/tween.js +103 -0
  28. package/dist/animation/tween.js.map +1 -0
  29. package/dist/assets/index.d.ts +6 -0
  30. package/dist/assets/index.d.ts.map +1 -0
  31. package/dist/assets/index.js +5 -0
  32. package/dist/assets/index.js.map +1 -0
  33. package/dist/assets/load-sound.d.ts +17 -0
  34. package/dist/assets/load-sound.d.ts.map +1 -0
  35. package/dist/assets/load-sound.js +35 -0
  36. package/dist/assets/load-sound.js.map +1 -0
  37. package/dist/assets/load-texture.d.ts +12 -0
  38. package/dist/assets/load-texture.d.ts.map +1 -0
  39. package/dist/assets/load-texture.js +40 -0
  40. package/dist/assets/load-texture.js.map +1 -0
  41. package/dist/assets/loader.d.ts +59 -0
  42. package/dist/assets/loader.d.ts.map +1 -0
  43. package/dist/assets/loader.js +65 -0
  44. package/dist/assets/loader.js.map +1 -0
  45. package/dist/assets/texture.d.ts +36 -0
  46. package/dist/assets/texture.d.ts.map +1 -0
  47. package/dist/assets/texture.js +49 -0
  48. package/dist/assets/texture.js.map +1 -0
  49. package/dist/audio/audio-context.d.ts +14 -0
  50. package/dist/audio/audio-context.d.ts.map +1 -0
  51. package/dist/audio/audio-context.js +20 -0
  52. package/dist/audio/audio-context.js.map +1 -0
  53. package/dist/audio/index.d.ts +2 -0
  54. package/dist/audio/index.d.ts.map +1 -0
  55. package/dist/audio/index.js +2 -0
  56. package/dist/audio/index.js.map +1 -0
  57. package/dist/collision/broadphase/spatial-hash.d.ts +32 -0
  58. package/dist/collision/broadphase/spatial-hash.d.ts.map +1 -0
  59. package/dist/collision/broadphase/spatial-hash.js +87 -0
  60. package/dist/collision/broadphase/spatial-hash.js.map +1 -0
  61. package/dist/collision/collision-system.d.ts +52 -0
  62. package/dist/collision/collision-system.d.ts.map +1 -0
  63. package/dist/collision/collision-system.js +278 -0
  64. package/dist/collision/collision-system.js.map +1 -0
  65. package/dist/collision/events/collision-emitter.d.ts +38 -0
  66. package/dist/collision/events/collision-emitter.d.ts.map +1 -0
  67. package/dist/collision/events/collision-emitter.js +47 -0
  68. package/dist/collision/events/collision-emitter.js.map +1 -0
  69. package/dist/collision/index.d.ts +13 -0
  70. package/dist/collision/index.d.ts.map +1 -0
  71. package/dist/collision/index.js +11 -0
  72. package/dist/collision/index.js.map +1 -0
  73. package/dist/collision/narrowphase/detector.d.ts +26 -0
  74. package/dist/collision/narrowphase/detector.d.ts.map +1 -0
  75. package/dist/collision/narrowphase/detector.js +70 -0
  76. package/dist/collision/narrowphase/detector.js.map +1 -0
  77. package/dist/collision/narrowphase/shapes.d.ts +91 -0
  78. package/dist/collision/narrowphase/shapes.d.ts.map +1 -0
  79. package/dist/collision/narrowphase/shapes.js +52 -0
  80. package/dist/collision/narrowphase/shapes.js.map +1 -0
  81. package/dist/collision/physics/physics-body.d.ts +38 -0
  82. package/dist/collision/physics/physics-body.d.ts.map +1 -0
  83. package/dist/collision/physics/physics-body.js +53 -0
  84. package/dist/collision/physics/physics-body.js.map +1 -0
  85. package/dist/collision/physics/physics-system.d.ts +23 -0
  86. package/dist/collision/physics/physics-system.d.ts.map +1 -0
  87. package/dist/collision/physics/physics-system.js +86 -0
  88. package/dist/collision/physics/physics-system.js.map +1 -0
  89. package/dist/collision/physics/resolver.d.ts +16 -0
  90. package/dist/collision/physics/resolver.d.ts.map +1 -0
  91. package/dist/collision/physics/resolver.js +91 -0
  92. package/dist/collision/physics/resolver.js.map +1 -0
  93. package/dist/collision/types.d.ts +22 -0
  94. package/dist/collision/types.d.ts.map +1 -0
  95. package/dist/collision/types.js +2 -0
  96. package/dist/collision/types.js.map +1 -0
  97. package/dist/core/game-config.d.ts +34 -0
  98. package/dist/core/game-config.d.ts.map +1 -0
  99. package/dist/core/game-config.js +31 -0
  100. package/dist/core/game-config.js.map +1 -0
  101. package/dist/core/game.d.ts +86 -0
  102. package/dist/core/game.d.ts.map +1 -0
  103. package/dist/core/game.js +166 -0
  104. package/dist/core/game.js.map +1 -0
  105. package/dist/core/index.d.ts +6 -0
  106. package/dist/core/index.d.ts.map +1 -0
  107. package/dist/core/index.js +6 -0
  108. package/dist/core/index.js.map +1 -0
  109. package/dist/core/scene-manager.d.ts +28 -0
  110. package/dist/core/scene-manager.d.ts.map +1 -0
  111. package/dist/core/scene-manager.js +65 -0
  112. package/dist/core/scene-manager.js.map +1 -0
  113. package/dist/core/scene.d.ts +43 -0
  114. package/dist/core/scene.d.ts.map +1 -0
  115. package/dist/core/scene.js +48 -0
  116. package/dist/core/scene.js.map +1 -0
  117. package/dist/core/theme.d.ts +63 -0
  118. package/dist/core/theme.d.ts.map +1 -0
  119. package/dist/core/theme.js +59 -0
  120. package/dist/core/theme.js.map +1 -0
  121. package/dist/errors/animation.d.ts +24 -0
  122. package/dist/errors/animation.d.ts.map +1 -0
  123. package/dist/errors/animation.js +29 -0
  124. package/dist/errors/animation.js.map +1 -0
  125. package/dist/errors/assets.d.ts +34 -0
  126. package/dist/errors/assets.d.ts.map +1 -0
  127. package/dist/errors/assets.js +41 -0
  128. package/dist/errors/assets.js.map +1 -0
  129. package/dist/errors/base.d.ts +12 -0
  130. package/dist/errors/base.d.ts.map +1 -0
  131. package/dist/errors/base.js +15 -0
  132. package/dist/errors/base.js.map +1 -0
  133. package/dist/errors/env.d.ts +24 -0
  134. package/dist/errors/env.d.ts.map +1 -0
  135. package/dist/errors/env.js +29 -0
  136. package/dist/errors/env.js.map +1 -0
  137. package/dist/errors/hook.d.ts +46 -0
  138. package/dist/errors/hook.d.ts.map +1 -0
  139. package/dist/errors/hook.js +55 -0
  140. package/dist/errors/hook.js.map +1 -0
  141. package/dist/errors/index.d.ts +11 -0
  142. package/dist/errors/index.d.ts.map +1 -0
  143. package/dist/errors/index.js +11 -0
  144. package/dist/errors/index.js.map +1 -0
  145. package/dist/errors/jsx.d.ts +26 -0
  146. package/dist/errors/jsx.d.ts.map +1 -0
  147. package/dist/errors/jsx.js +45 -0
  148. package/dist/errors/jsx.js.map +1 -0
  149. package/dist/errors/lifecycle.d.ts +35 -0
  150. package/dist/errors/lifecycle.d.ts.map +1 -0
  151. package/dist/errors/lifecycle.js +42 -0
  152. package/dist/errors/lifecycle.js.map +1 -0
  153. package/dist/errors/math.d.ts +24 -0
  154. package/dist/errors/math.d.ts.map +1 -0
  155. package/dist/errors/math.js +34 -0
  156. package/dist/errors/math.js.map +1 -0
  157. package/dist/errors/node.d.ts +68 -0
  158. package/dist/errors/node.d.ts.map +1 -0
  159. package/dist/errors/node.js +87 -0
  160. package/dist/errors/node.js.map +1 -0
  161. package/dist/errors/scene.d.ts +35 -0
  162. package/dist/errors/scene.d.ts.map +1 -0
  163. package/dist/errors/scene.js +42 -0
  164. package/dist/errors/scene.js.map +1 -0
  165. package/dist/events/event.d.ts +106 -0
  166. package/dist/events/event.d.ts.map +1 -0
  167. package/dist/events/event.js +125 -0
  168. package/dist/events/event.js.map +1 -0
  169. package/dist/events/index.d.ts +2 -0
  170. package/dist/events/index.d.ts.map +1 -0
  171. package/dist/events/index.js +2 -0
  172. package/dist/events/index.js.map +1 -0
  173. package/dist/events/types.d.ts +20 -0
  174. package/dist/events/types.d.ts.map +1 -0
  175. package/dist/events/types.js +2 -0
  176. package/dist/events/types.js.map +1 -0
  177. package/dist/hooks/context.d.ts +15 -0
  178. package/dist/hooks/context.d.ts.map +1 -0
  179. package/dist/hooks/context.js +26 -0
  180. package/dist/hooks/context.js.map +1 -0
  181. package/dist/hooks/deriveds/by-nodes/index.d.ts +7 -0
  182. package/dist/hooks/deriveds/by-nodes/index.d.ts.map +1 -0
  183. package/dist/hooks/deriveds/by-nodes/index.js +7 -0
  184. package/dist/hooks/deriveds/by-nodes/index.js.map +1 -0
  185. package/dist/hooks/deriveds/by-nodes/use-animation.d.ts +44 -0
  186. package/dist/hooks/deriveds/by-nodes/use-animation.d.ts.map +1 -0
  187. package/dist/hooks/deriveds/by-nodes/use-animation.js +61 -0
  188. package/dist/hooks/deriveds/by-nodes/use-animation.js.map +1 -0
  189. package/dist/hooks/deriveds/by-nodes/use-audio.d.ts +33 -0
  190. package/dist/hooks/deriveds/by-nodes/use-audio.d.ts.map +1 -0
  191. package/dist/hooks/deriveds/by-nodes/use-audio.js +43 -0
  192. package/dist/hooks/deriveds/by-nodes/use-audio.js.map +1 -0
  193. package/dist/hooks/deriveds/by-nodes/use-clickable.d.ts +32 -0
  194. package/dist/hooks/deriveds/by-nodes/use-clickable.d.ts.map +1 -0
  195. package/dist/hooks/deriveds/by-nodes/use-clickable.js +43 -0
  196. package/dist/hooks/deriveds/by-nodes/use-clickable.js.map +1 -0
  197. package/dist/hooks/deriveds/by-nodes/use-collider.d.ts +35 -0
  198. package/dist/hooks/deriveds/by-nodes/use-collider.d.ts.map +1 -0
  199. package/dist/hooks/deriveds/by-nodes/use-collider.js +55 -0
  200. package/dist/hooks/deriveds/by-nodes/use-collider.js.map +1 -0
  201. package/dist/hooks/deriveds/by-nodes/use-ray-cast.d.ts +35 -0
  202. package/dist/hooks/deriveds/by-nodes/use-ray-cast.d.ts.map +1 -0
  203. package/dist/hooks/deriveds/by-nodes/use-ray-cast.js +47 -0
  204. package/dist/hooks/deriveds/by-nodes/use-ray-cast.js.map +1 -0
  205. package/dist/hooks/deriveds/by-nodes/use-timer.d.ts +34 -0
  206. package/dist/hooks/deriveds/by-nodes/use-timer.d.ts.map +1 -0
  207. package/dist/hooks/deriveds/by-nodes/use-timer.js +48 -0
  208. package/dist/hooks/deriveds/by-nodes/use-timer.js.map +1 -0
  209. package/dist/hooks/deriveds/index.d.ts +5 -0
  210. package/dist/hooks/deriveds/index.d.ts.map +1 -0
  211. package/dist/hooks/deriveds/index.js +5 -0
  212. package/dist/hooks/deriveds/index.js.map +1 -0
  213. package/dist/hooks/deriveds/use-condition.d.ts +37 -0
  214. package/dist/hooks/deriveds/use-condition.d.ts.map +1 -0
  215. package/dist/hooks/deriveds/use-condition.js +47 -0
  216. package/dist/hooks/deriveds/use-condition.js.map +1 -0
  217. package/dist/hooks/deriveds/use-match.d.ts +26 -0
  218. package/dist/hooks/deriveds/use-match.d.ts.map +1 -0
  219. package/dist/hooks/deriveds/use-match.js +38 -0
  220. package/dist/hooks/deriveds/use-match.js.map +1 -0
  221. package/dist/hooks/deriveds/use-partial-node.d.ts +22 -0
  222. package/dist/hooks/deriveds/use-partial-node.d.ts.map +1 -0
  223. package/dist/hooks/deriveds/use-partial-node.js +25 -0
  224. package/dist/hooks/deriveds/use-partial-node.js.map +1 -0
  225. package/dist/hooks/deriveds/use-when.d.ts +28 -0
  226. package/dist/hooks/deriveds/use-when.d.ts.map +1 -0
  227. package/dist/hooks/deriveds/use-when.js +35 -0
  228. package/dist/hooks/deriveds/use-when.js.map +1 -0
  229. package/dist/hooks/index.d.ts +16 -0
  230. package/dist/hooks/index.d.ts.map +1 -0
  231. package/dist/hooks/index.js +16 -0
  232. package/dist/hooks/index.js.map +1 -0
  233. package/dist/hooks/use-child.d.ts +24 -0
  234. package/dist/hooks/use-child.d.ts.map +1 -0
  235. package/dist/hooks/use-child.js +37 -0
  236. package/dist/hooks/use-child.js.map +1 -0
  237. package/dist/hooks/use-computed.d.ts +28 -0
  238. package/dist/hooks/use-computed.d.ts.map +1 -0
  239. package/dist/hooks/use-computed.js +41 -0
  240. package/dist/hooks/use-computed.js.map +1 -0
  241. package/dist/hooks/use-context.d.ts +58 -0
  242. package/dist/hooks/use-context.d.ts.map +1 -0
  243. package/dist/hooks/use-context.js +77 -0
  244. package/dist/hooks/use-context.js.map +1 -0
  245. package/dist/hooks/use-effect.d.ts +24 -0
  246. package/dist/hooks/use-effect.d.ts.map +1 -0
  247. package/dist/hooks/use-effect.js +63 -0
  248. package/dist/hooks/use-effect.js.map +1 -0
  249. package/dist/hooks/use-event.d.ts +29 -0
  250. package/dist/hooks/use-event.d.ts.map +1 -0
  251. package/dist/hooks/use-event.js +30 -0
  252. package/dist/hooks/use-event.js.map +1 -0
  253. package/dist/hooks/use-game.d.ts +17 -0
  254. package/dist/hooks/use-game.d.ts.map +1 -0
  255. package/dist/hooks/use-game.js +35 -0
  256. package/dist/hooks/use-game.js.map +1 -0
  257. package/dist/hooks/use-mount.d.ts +21 -0
  258. package/dist/hooks/use-mount.d.ts.map +1 -0
  259. package/dist/hooks/use-mount.js +33 -0
  260. package/dist/hooks/use-mount.js.map +1 -0
  261. package/dist/hooks/use-node.d.ts +42 -0
  262. package/dist/hooks/use-node.d.ts.map +1 -0
  263. package/dist/hooks/use-node.js +63 -0
  264. package/dist/hooks/use-node.js.map +1 -0
  265. package/dist/hooks/use-ref.d.ts +27 -0
  266. package/dist/hooks/use-ref.d.ts.map +1 -0
  267. package/dist/hooks/use-ref.js +33 -0
  268. package/dist/hooks/use-ref.js.map +1 -0
  269. package/dist/hooks/use-script.d.ts +33 -0
  270. package/dist/hooks/use-script.d.ts.map +1 -0
  271. package/dist/hooks/use-script.js +40 -0
  272. package/dist/hooks/use-script.js.map +1 -0
  273. package/dist/hooks/use-signal.d.ts +25 -0
  274. package/dist/hooks/use-signal.d.ts.map +1 -0
  275. package/dist/hooks/use-signal.js +36 -0
  276. package/dist/hooks/use-signal.js.map +1 -0
  277. package/dist/hooks/use-spawn.d.ts +27 -0
  278. package/dist/hooks/use-spawn.d.ts.map +1 -0
  279. package/dist/hooks/use-spawn.js +39 -0
  280. package/dist/hooks/use-spawn.js.map +1 -0
  281. package/dist/hooks/use-trigger.d.ts +51 -0
  282. package/dist/hooks/use-trigger.d.ts.map +1 -0
  283. package/dist/hooks/use-trigger.js +68 -0
  284. package/dist/hooks/use-trigger.js.map +1 -0
  285. package/dist/index.d.ts +11 -0
  286. package/dist/index.d.ts.map +1 -0
  287. package/dist/index.js +11 -0
  288. package/dist/index.js.map +1 -0
  289. package/dist/input/input.d.ts +46 -0
  290. package/dist/input/input.d.ts.map +1 -0
  291. package/dist/input/input.js +159 -0
  292. package/dist/input/input.js.map +1 -0
  293. package/dist/jsx/components/fragment.d.ts +3 -0
  294. package/dist/jsx/components/fragment.d.ts.map +1 -0
  295. package/dist/jsx/components/fragment.js +7 -0
  296. package/dist/jsx/components/fragment.js.map +1 -0
  297. package/dist/jsx/components/game.d.ts +21 -0
  298. package/dist/jsx/components/game.d.ts.map +1 -0
  299. package/dist/jsx/components/game.js +17 -0
  300. package/dist/jsx/components/game.js.map +1 -0
  301. package/dist/jsx/components/index.d.ts +5 -0
  302. package/dist/jsx/components/index.d.ts.map +1 -0
  303. package/dist/jsx/components/index.js +5 -0
  304. package/dist/jsx/components/index.js.map +1 -0
  305. package/dist/jsx/components/list.d.ts +88 -0
  306. package/dist/jsx/components/list.d.ts.map +1 -0
  307. package/dist/jsx/components/list.js +93 -0
  308. package/dist/jsx/components/list.js.map +1 -0
  309. package/dist/jsx/components/scene.d.ts +40 -0
  310. package/dist/jsx/components/scene.d.ts.map +1 -0
  311. package/dist/jsx/components/scene.js +20 -0
  312. package/dist/jsx/components/scene.js.map +1 -0
  313. package/dist/jsx/index.d.ts +5 -0
  314. package/dist/jsx/index.d.ts.map +1 -0
  315. package/dist/jsx/index.js +5 -0
  316. package/dist/jsx/index.js.map +1 -0
  317. package/dist/jsx/jsx.d.ts +3 -0
  318. package/dist/jsx/jsx.d.ts.map +1 -0
  319. package/dist/jsx/jsx.js +4 -0
  320. package/dist/jsx/jsx.js.map +1 -0
  321. package/dist/jsx/render/game.d.ts +41 -0
  322. package/dist/jsx/render/game.d.ts.map +1 -0
  323. package/dist/jsx/render/game.js +86 -0
  324. package/dist/jsx/render/game.js.map +1 -0
  325. package/dist/jsx/render/index.d.ts +3 -0
  326. package/dist/jsx/render/index.d.ts.map +1 -0
  327. package/dist/jsx/render/index.js +3 -0
  328. package/dist/jsx/render/index.js.map +1 -0
  329. package/dist/jsx/render/to-nodes.d.ts +10 -0
  330. package/dist/jsx/render/to-nodes.d.ts.map +1 -0
  331. package/dist/jsx/render/to-nodes.js +52 -0
  332. package/dist/jsx/render/to-nodes.js.map +1 -0
  333. package/dist/jsx/render/types/class-component.d.ts +4 -0
  334. package/dist/jsx/render/types/class-component.d.ts.map +1 -0
  335. package/dist/jsx/render/types/class-component.js +8 -0
  336. package/dist/jsx/render/types/class-component.js.map +1 -0
  337. package/dist/jsx/render/types/func-components.d.ts +4 -0
  338. package/dist/jsx/render/types/func-components.d.ts.map +1 -0
  339. package/dist/jsx/render/types/func-components.js +8 -0
  340. package/dist/jsx/render/types/func-components.js.map +1 -0
  341. package/dist/jsx/render/types/instrinsic-elements.d.ts +6 -0
  342. package/dist/jsx/render/types/instrinsic-elements.d.ts.map +1 -0
  343. package/dist/jsx/render/types/instrinsic-elements.js +41 -0
  344. package/dist/jsx/render/types/instrinsic-elements.js.map +1 -0
  345. package/dist/jsx/types.d.ts +41 -0
  346. package/dist/jsx/types.d.ts.map +1 -0
  347. package/dist/jsx/types.js +2 -0
  348. package/dist/jsx/types.js.map +1 -0
  349. package/dist/jsx/utils.d.ts +4 -0
  350. package/dist/jsx/utils.d.ts.map +1 -0
  351. package/dist/jsx/utils.js +15 -0
  352. package/dist/jsx/utils.js.map +1 -0
  353. package/dist/jsx-runtime.d.ts +6 -0
  354. package/dist/jsx-runtime.d.ts.map +1 -0
  355. package/dist/jsx-runtime.js +6 -0
  356. package/dist/jsx-runtime.js.map +1 -0
  357. package/dist/math/index.d.ts +3 -0
  358. package/dist/math/index.d.ts.map +1 -0
  359. package/dist/math/index.js +2 -0
  360. package/dist/math/index.js.map +1 -0
  361. package/dist/math/types.d.ts +13 -0
  362. package/dist/math/types.d.ts.map +1 -0
  363. package/dist/math/types.js +2 -0
  364. package/dist/math/types.js.map +1 -0
  365. package/dist/math/vector2.d.ts +145 -0
  366. package/dist/math/vector2.d.ts.map +1 -0
  367. package/dist/math/vector2.js +164 -0
  368. package/dist/math/vector2.js.map +1 -0
  369. package/dist/nodes/_node.d.ts +283 -0
  370. package/dist/nodes/_node.d.ts.map +1 -0
  371. package/dist/nodes/_node.js +371 -0
  372. package/dist/nodes/_node.js.map +1 -0
  373. package/dist/nodes/animation-player.d.ts +208 -0
  374. package/dist/nodes/animation-player.d.ts.map +1 -0
  375. package/dist/nodes/animation-player.js +249 -0
  376. package/dist/nodes/animation-player.js.map +1 -0
  377. package/dist/nodes/audio-player.d.ts +128 -0
  378. package/dist/nodes/audio-player.d.ts.map +1 -0
  379. package/dist/nodes/audio-player.js +173 -0
  380. package/dist/nodes/audio-player.js.map +1 -0
  381. package/dist/nodes/group.d.ts +55 -0
  382. package/dist/nodes/group.d.ts.map +1 -0
  383. package/dist/nodes/group.js +54 -0
  384. package/dist/nodes/group.js.map +1 -0
  385. package/dist/nodes/index.d.ts +8 -0
  386. package/dist/nodes/index.d.ts.map +1 -0
  387. package/dist/nodes/index.js +7 -0
  388. package/dist/nodes/index.js.map +1 -0
  389. package/dist/nodes/lib/enum.d.ts +42 -0
  390. package/dist/nodes/lib/enum.d.ts.map +1 -0
  391. package/dist/nodes/lib/enum.js +43 -0
  392. package/dist/nodes/lib/enum.js.map +1 -0
  393. package/dist/nodes/lib/index.d.ts +5 -0
  394. package/dist/nodes/lib/index.d.ts.map +1 -0
  395. package/dist/nodes/lib/index.js +5 -0
  396. package/dist/nodes/lib/index.js.map +1 -0
  397. package/dist/nodes/lib/registry.d.ts +43 -0
  398. package/dist/nodes/lib/registry.d.ts.map +1 -0
  399. package/dist/nodes/lib/registry.js +46 -0
  400. package/dist/nodes/lib/registry.js.map +1 -0
  401. package/dist/nodes/lib/types.d.ts +89 -0
  402. package/dist/nodes/lib/types.d.ts.map +1 -0
  403. package/dist/nodes/lib/types.js +2 -0
  404. package/dist/nodes/lib/types.js.map +1 -0
  405. package/dist/nodes/lib/utils.d.ts +35 -0
  406. package/dist/nodes/lib/utils.d.ts.map +1 -0
  407. package/dist/nodes/lib/utils.js +58 -0
  408. package/dist/nodes/lib/utils.js.map +1 -0
  409. package/dist/nodes/node2d/_node2d.d.ts +59 -0
  410. package/dist/nodes/node2d/_node2d.d.ts.map +1 -0
  411. package/dist/nodes/node2d/_node2d.js +57 -0
  412. package/dist/nodes/node2d/_node2d.js.map +1 -0
  413. package/dist/nodes/node2d/camera.d.ts +64 -0
  414. package/dist/nodes/node2d/camera.d.ts.map +1 -0
  415. package/dist/nodes/node2d/camera.js +72 -0
  416. package/dist/nodes/node2d/camera.js.map +1 -0
  417. package/dist/nodes/node2d/clickable.d.ts +96 -0
  418. package/dist/nodes/node2d/clickable.d.ts.map +1 -0
  419. package/dist/nodes/node2d/clickable.js +117 -0
  420. package/dist/nodes/node2d/clickable.js.map +1 -0
  421. package/dist/nodes/node2d/collider.d.ts +96 -0
  422. package/dist/nodes/node2d/collider.d.ts.map +1 -0
  423. package/dist/nodes/node2d/collider.js +116 -0
  424. package/dist/nodes/node2d/collider.js.map +1 -0
  425. package/dist/nodes/node2d/index.d.ts +12 -0
  426. package/dist/nodes/node2d/index.d.ts.map +1 -0
  427. package/dist/nodes/node2d/index.js +11 -0
  428. package/dist/nodes/node2d/index.js.map +1 -0
  429. package/dist/nodes/node2d/lib/index.d.ts +2 -0
  430. package/dist/nodes/node2d/lib/index.d.ts.map +1 -0
  431. package/dist/nodes/node2d/lib/index.js +2 -0
  432. package/dist/nodes/node2d/lib/index.js.map +1 -0
  433. package/dist/nodes/node2d/lib/utils.d.ts +4 -0
  434. package/dist/nodes/node2d/lib/utils.d.ts.map +1 -0
  435. package/dist/nodes/node2d/lib/utils.js +14 -0
  436. package/dist/nodes/node2d/lib/utils.js.map +1 -0
  437. package/dist/nodes/node2d/ray-cast.d.ts +115 -0
  438. package/dist/nodes/node2d/ray-cast.d.ts.map +1 -0
  439. package/dist/nodes/node2d/ray-cast.js +129 -0
  440. package/dist/nodes/node2d/ray-cast.js.map +1 -0
  441. package/dist/nodes/node2d/rectangle.d.ts +87 -0
  442. package/dist/nodes/node2d/rectangle.d.ts.map +1 -0
  443. package/dist/nodes/node2d/rectangle.js +60 -0
  444. package/dist/nodes/node2d/rectangle.js.map +1 -0
  445. package/dist/nodes/node2d/rigid-body.d.ts +65 -0
  446. package/dist/nodes/node2d/rigid-body.d.ts.map +1 -0
  447. package/dist/nodes/node2d/rigid-body.js +56 -0
  448. package/dist/nodes/node2d/rigid-body.js.map +1 -0
  449. package/dist/nodes/node2d/sprite.d.ts +285 -0
  450. package/dist/nodes/node2d/sprite.d.ts.map +1 -0
  451. package/dist/nodes/node2d/sprite.js +226 -0
  452. package/dist/nodes/node2d/sprite.js.map +1 -0
  453. package/dist/nodes/node2d/text.d.ts +62 -0
  454. package/dist/nodes/node2d/text.d.ts.map +1 -0
  455. package/dist/nodes/node2d/text.js +52 -0
  456. package/dist/nodes/node2d/text.js.map +1 -0
  457. package/dist/nodes/node2d/transform.d.ts +32 -0
  458. package/dist/nodes/node2d/transform.d.ts.map +1 -0
  459. package/dist/nodes/node2d/transform.js +30 -0
  460. package/dist/nodes/node2d/transform.js.map +1 -0
  461. package/dist/nodes/timer.d.ts +107 -0
  462. package/dist/nodes/timer.d.ts.map +1 -0
  463. package/dist/nodes/timer.js +108 -0
  464. package/dist/nodes/timer.js.map +1 -0
  465. package/dist/reactivity/index.d.ts +5 -0
  466. package/dist/reactivity/index.d.ts.map +1 -0
  467. package/dist/reactivity/index.js +5 -0
  468. package/dist/reactivity/index.js.map +1 -0
  469. package/dist/reactivity/reactive.d.ts +4 -0
  470. package/dist/reactivity/reactive.d.ts.map +1 -0
  471. package/dist/reactivity/reactive.js +50 -0
  472. package/dist/reactivity/reactive.js.map +1 -0
  473. package/dist/reactivity/register.d.ts +7 -0
  474. package/dist/reactivity/register.d.ts.map +1 -0
  475. package/dist/reactivity/register.js +18 -0
  476. package/dist/reactivity/register.js.map +1 -0
  477. package/dist/reactivity/signal.d.ts +126 -0
  478. package/dist/reactivity/signal.d.ts.map +1 -0
  479. package/dist/reactivity/signal.js +152 -0
  480. package/dist/reactivity/signal.js.map +1 -0
  481. package/dist/reactivity/types.d.ts +31 -0
  482. package/dist/reactivity/types.d.ts.map +1 -0
  483. package/dist/reactivity/types.js +2 -0
  484. package/dist/reactivity/types.js.map +1 -0
  485. package/dist/scripts/index.d.ts +2 -0
  486. package/dist/scripts/index.d.ts.map +1 -0
  487. package/dist/scripts/index.js +2 -0
  488. package/dist/scripts/index.js.map +1 -0
  489. package/dist/scripts/script.d.ts +80 -0
  490. package/dist/scripts/script.d.ts.map +1 -0
  491. package/dist/scripts/script.js +75 -0
  492. package/dist/scripts/script.js.map +1 -0
  493. package/dist/utils/dpr.d.ts +2 -0
  494. package/dist/utils/dpr.d.ts.map +1 -0
  495. package/dist/utils/dpr.js +14 -0
  496. package/dist/utils/dpr.js.map +1 -0
  497. package/dist/utils/ternaries.d.ts +6 -0
  498. package/dist/utils/ternaries.d.ts.map +1 -0
  499. package/dist/utils/ternaries.js +17 -0
  500. package/dist/utils/ternaries.js.map +1 -0
  501. package/package.json +56 -0
@@ -0,0 +1,103 @@
1
+ import { linear } from './easing.js';
2
+ /**
3
+ * Creates a tween that interpolates a numeric property on a target object.
4
+ *
5
+ * @example
6
+ * ```ts
7
+ * import { tween, easeOutQuad } from 'dinix/animation'
8
+ *
9
+ * const controller = tween({
10
+ * target: sprite,
11
+ * prop: 'opacity',
12
+ * from: 0,
13
+ * to: 1,
14
+ * duration: 0.5,
15
+ * easing: easeOutQuad,
16
+ * onComplete: () => console.log('fade in done'),
17
+ * })
18
+ *
19
+ * // Later:
20
+ * controller.pause()
21
+ * controller.resume()
22
+ * ```
23
+ */
24
+ export function tween(options) {
25
+ const { target, prop, from, to, duration, easing = linear, onUpdate, onComplete } = options;
26
+ let elapsed = 0;
27
+ let playing = true;
28
+ let rafId = 0;
29
+ let lastTime = 0;
30
+ const step = (time) => {
31
+ if (!playing)
32
+ return;
33
+ if (lastTime === 0)
34
+ lastTime = time;
35
+ const dt = (time - lastTime) / 1000;
36
+ lastTime = time;
37
+ elapsed += dt;
38
+ const t = Math.min(elapsed / duration, 1);
39
+ const easedT = easing(t);
40
+ const value = from + (to - from) * easedT;
41
+ target[prop] = value;
42
+ onUpdate?.(value);
43
+ if (t >= 1) {
44
+ onComplete?.();
45
+ return;
46
+ }
47
+ rafId = requestAnimationFrame(step);
48
+ };
49
+ rafId = requestAnimationFrame(step);
50
+ return {
51
+ get isPlaying() {
52
+ return playing;
53
+ },
54
+ get progress() {
55
+ return Math.min(elapsed / duration, 1);
56
+ },
57
+ pause() {
58
+ playing = false;
59
+ cancelAnimationFrame(rafId);
60
+ },
61
+ resume() {
62
+ if (playing)
63
+ return;
64
+ playing = true;
65
+ lastTime = 0;
66
+ rafId = requestAnimationFrame(step);
67
+ },
68
+ stop() {
69
+ playing = false;
70
+ cancelAnimationFrame(rafId);
71
+ elapsed = 0;
72
+ },
73
+ };
74
+ }
75
+ /**
76
+ * Creates a tween that updates a callback with interpolated values.
77
+ * Useful for animating values without a target object.
78
+ *
79
+ * @example
80
+ * ```ts
81
+ * import { tweenValue } from 'dinix/animation'
82
+ *
83
+ * tweenValue({
84
+ * from: 0,
85
+ * to: 100,
86
+ * duration: 1,
87
+ * onUpdate: (value) => console.log(value),
88
+ * })
89
+ * ```
90
+ */
91
+ export function tweenValue(options) {
92
+ const holder = { v: 0 };
93
+ const { onUpdate: userOnUpdate, ...rest } = options;
94
+ return tween({
95
+ target: holder,
96
+ prop: 'v',
97
+ ...rest,
98
+ onUpdate: (value) => {
99
+ userOnUpdate?.(value);
100
+ },
101
+ });
102
+ }
103
+ //# sourceMappingURL=tween.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tween.js","sourceRoot":"","sources":["../../src/animation/tween.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAA;AAwCpC;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,MAAM,UAAU,KAAK,CAAI,OAAwB;IAC/C,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,IAAI,EAAE,EAAE,EAAE,QAAQ,EAAE,MAAM,GAAG,MAAM,EAAE,QAAQ,EAAE,UAAU,EAAE,GAAG,OAAO,CAAA;IAE3F,IAAI,OAAO,GAAG,CAAC,CAAA;IACf,IAAI,OAAO,GAAG,IAAI,CAAA;IAClB,IAAI,KAAK,GAAG,CAAC,CAAA;IACb,IAAI,QAAQ,GAAG,CAAC,CAAA;IAEhB,MAAM,IAAI,GAAG,CAAC,IAAY,EAAE,EAAE;QAC5B,IAAI,CAAC,OAAO;YAAE,OAAM;QAEpB,IAAI,QAAQ,KAAK,CAAC;YAAE,QAAQ,GAAG,IAAI,CAAA;QACnC,MAAM,EAAE,GAAG,CAAC,IAAI,GAAG,QAAQ,CAAC,GAAG,IAAI,CAAA;QACnC,QAAQ,GAAG,IAAI,CAAA;QAEf,OAAO,IAAI,EAAE,CAAA;QAEb,MAAM,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,OAAO,GAAG,QAAQ,EAAE,CAAC,CAAC,CAAA;QACzC,MAAM,MAAM,GAAG,MAAM,CAAC,CAAC,CAAC,CAAA;QACxB,MAAM,KAAK,GAAG,IAAI,GAAG,CAAC,EAAE,GAAG,IAAI,CAAC,GAAG,MAAM,CAAA;QAEzC,MAAM,CAAC,IAAI,CAAC,GAAG,KAAuB,CAAA;QACtC,QAAQ,EAAE,CAAC,KAAK,CAAC,CAAA;QAEjB,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;YACX,UAAU,EAAE,EAAE,CAAA;YACd,OAAM;QACR,CAAC;QAED,KAAK,GAAG,qBAAqB,CAAC,IAAI,CAAC,CAAA;IACrC,CAAC,CAAA;IAED,KAAK,GAAG,qBAAqB,CAAC,IAAI,CAAC,CAAA;IAEnC,OAAO;QACL,IAAI,SAAS;YACX,OAAO,OAAO,CAAA;QAChB,CAAC;QACD,IAAI,QAAQ;YACV,OAAO,IAAI,CAAC,GAAG,CAAC,OAAO,GAAG,QAAQ,EAAE,CAAC,CAAC,CAAA;QACxC,CAAC;QACD,KAAK;YACH,OAAO,GAAG,KAAK,CAAA;YACf,oBAAoB,CAAC,KAAK,CAAC,CAAA;QAC7B,CAAC;QACD,MAAM;YACJ,IAAI,OAAO;gBAAE,OAAM;YACnB,OAAO,GAAG,IAAI,CAAA;YACd,QAAQ,GAAG,CAAC,CAAA;YACZ,KAAK,GAAG,qBAAqB,CAAC,IAAI,CAAC,CAAA;QACrC,CAAC;QACD,IAAI;YACF,OAAO,GAAG,KAAK,CAAA;YACf,oBAAoB,CAAC,KAAK,CAAC,CAAA;YAC3B,OAAO,GAAG,CAAC,CAAA;QACb,CAAC;KACF,CAAA;AACH,CAAC;AAED;;;;;;;;;;;;;;;GAeG;AACH,MAAM,UAAU,UAAU,CACxB,OAAsE;IAEtE,MAAM,MAAM,GAA2B,EAAE,CAAC,EAAE,CAAC,EAAE,CAAA;IAC/C,MAAM,EAAE,QAAQ,EAAE,YAAY,EAAE,GAAG,IAAI,EAAE,GAAG,OAAO,CAAA;IACnD,OAAO,KAAK,CAAC;QACX,MAAM,EAAE,MAAM;QACd,IAAI,EAAE,GAAG;QACT,GAAG,IAAI;QACP,QAAQ,EAAE,CAAC,KAAK,EAAE,EAAE;YAClB,YAAY,EAAE,CAAC,KAAK,CAAC,CAAA;QACvB,CAAC;KACF,CAAC,CAAA;AACJ,CAAC"}
@@ -0,0 +1,6 @@
1
+ export { Texture, getTexture } from './texture.js';
2
+ export { loadTexture, unloadTexture } from './load-texture.js';
3
+ export { loadSound, getSound, unloadSound } from './load-sound.js';
4
+ export { loadBatch, loadBatchAsset } from './loader.js';
5
+ export type { LoaderOptions, AssetType } from './loader.js';
6
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/assets/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAA;AAClD,OAAO,EAAE,WAAW,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAA;AAC9D,OAAO,EAAE,SAAS,EAAE,QAAQ,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAA;AAClE,OAAO,EAAE,SAAS,EAAE,cAAc,EAAE,MAAM,aAAa,CAAA;AACvD,YAAY,EAAE,aAAa,EAAE,SAAS,EAAE,MAAM,aAAa,CAAA"}
@@ -0,0 +1,5 @@
1
+ export { Texture, getTexture } from './texture.js';
2
+ export { loadTexture, unloadTexture } from './load-texture.js';
3
+ export { loadSound, getSound, unloadSound } from './load-sound.js';
4
+ export { loadBatch, loadBatchAsset } from './loader.js';
5
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/assets/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAA;AAClD,OAAO,EAAE,WAAW,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAA;AAC9D,OAAO,EAAE,SAAS,EAAE,QAAQ,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAA;AAClE,OAAO,EAAE,SAAS,EAAE,cAAc,EAAE,MAAM,aAAa,CAAA"}
@@ -0,0 +1,17 @@
1
+ /**
2
+ * The **`loadSound`** function loads an audio file and returns a symbol ID.
3
+ * @param url Audio file URL
4
+ * @returns A symbol ID referencing the loaded audio buffer
5
+ */
6
+ export declare function loadSound(url: string): Promise<symbol>;
7
+ /**
8
+ * Returns an `AudioBuffer` by its symbol ID.
9
+ * @param id The symbol ID returned by `loadSound`
10
+ */
11
+ export declare function getSound(id: symbol): AudioBuffer;
12
+ /**
13
+ * Unloads a sound from memory.
14
+ * @param id The sound symbol ID to unload
15
+ */
16
+ export declare function unloadSound(id: symbol): void;
17
+ //# sourceMappingURL=load-sound.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"load-sound.d.ts","sourceRoot":"","sources":["../../src/assets/load-sound.ts"],"names":[],"mappings":"AAKA;;;;GAIG;AACH,wBAAsB,SAAS,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAU5D;AAED;;;GAGG;AACH,wBAAgB,QAAQ,CAAC,EAAE,EAAE,MAAM,GAAG,WAAW,CAIhD;AAED;;;GAGG;AACH,wBAAgB,WAAW,CAAC,EAAE,EAAE,MAAM,GAAG,IAAI,CAE5C"}
@@ -0,0 +1,35 @@
1
+ import { getAudioContext } from '../audio/audio-context.js';
2
+ import { SoundNotFoundError } from '../errors/assets.js';
3
+ const sounds = new Map();
4
+ /**
5
+ * The **`loadSound`** function loads an audio file and returns a symbol ID.
6
+ * @param url Audio file URL
7
+ * @returns A symbol ID referencing the loaded audio buffer
8
+ */
9
+ export async function loadSound(url) {
10
+ const ctx = getAudioContext();
11
+ const response = await fetch(url);
12
+ const arrayBuffer = await response.arrayBuffer();
13
+ const audioBuffer = await ctx.decodeAudioData(arrayBuffer);
14
+ const id = Symbol(url);
15
+ sounds.set(id, audioBuffer);
16
+ return id;
17
+ }
18
+ /**
19
+ * Returns an `AudioBuffer` by its symbol ID.
20
+ * @param id The symbol ID returned by `loadSound`
21
+ */
22
+ export function getSound(id) {
23
+ const buffer = sounds.get(id);
24
+ if (buffer == null)
25
+ throw new SoundNotFoundError(id.toString());
26
+ return buffer;
27
+ }
28
+ /**
29
+ * Unloads a sound from memory.
30
+ * @param id The sound symbol ID to unload
31
+ */
32
+ export function unloadSound(id) {
33
+ sounds.delete(id);
34
+ }
35
+ //# sourceMappingURL=load-sound.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"load-sound.js","sourceRoot":"","sources":["../../src/assets/load-sound.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,2BAA2B,CAAA;AAC3D,OAAO,EAAE,kBAAkB,EAAE,MAAM,qBAAqB,CAAA;AAExD,MAAM,MAAM,GAAG,IAAI,GAAG,EAAuB,CAAA;AAE7C;;;;GAIG;AACH,MAAM,CAAC,KAAK,UAAU,SAAS,CAAC,GAAW;IACzC,MAAM,GAAG,GAAG,eAAe,EAAE,CAAA;IAC7B,MAAM,QAAQ,GAAG,MAAM,KAAK,CAAC,GAAG,CAAC,CAAA;IACjC,MAAM,WAAW,GAAG,MAAM,QAAQ,CAAC,WAAW,EAAE,CAAA;IAChD,MAAM,WAAW,GAAG,MAAM,GAAG,CAAC,eAAe,CAAC,WAAW,CAAC,CAAA;IAE1D,MAAM,EAAE,GAAG,MAAM,CAAC,GAAG,CAAC,CAAA;IACtB,MAAM,CAAC,GAAG,CAAC,EAAE,EAAE,WAAW,CAAC,CAAA;IAE3B,OAAO,EAAE,CAAA;AACX,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,QAAQ,CAAC,EAAU;IACjC,MAAM,MAAM,GAAG,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC,CAAA;IAC7B,IAAI,MAAM,IAAI,IAAI;QAAE,MAAM,IAAI,kBAAkB,CAAC,EAAE,CAAC,QAAQ,EAAE,CAAC,CAAA;IAC/D,OAAO,MAAM,CAAA;AACf,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,WAAW,CAAC,EAAU;IACpC,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC,CAAA;AACnB,CAAC"}
@@ -0,0 +1,12 @@
1
+ /**
2
+ * The **`loadTexture`** function loads a single texture.
3
+ * @param url Image URL
4
+ * @returns A symbol ID referencing the loaded texture
5
+ */
6
+ export declare function loadTexture(url: string): Promise<symbol>;
7
+ /**
8
+ * Unloads a texture from memory.
9
+ * @param id The texture symbol ID to unload
10
+ */
11
+ export declare function unloadTexture(id: symbol): void;
12
+ //# sourceMappingURL=load-texture.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"load-texture.d.ts","sourceRoot":"","sources":["../../src/assets/load-texture.ts"],"names":[],"mappings":"AAEA;;;;GAIG;AACH,wBAAsB,WAAW,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CA+B9D;AAED;;;GAGG;AACH,wBAAgB,aAAa,CAAC,EAAE,EAAE,MAAM,GAAG,IAAI,CAE9C"}
@@ -0,0 +1,40 @@
1
+ import { Texture, textures } from './texture.js';
2
+ /**
3
+ * The **`loadTexture`** function loads a single texture.
4
+ * @param url Image URL
5
+ * @returns A symbol ID referencing the loaded texture
6
+ */
7
+ export async function loadTexture(url) {
8
+ const entry = [...textures.entries()].find(([_, val]) => val.image.src === url);
9
+ if (entry != null)
10
+ return entry[0];
11
+ const id = Symbol(url);
12
+ const image = new Image();
13
+ await new Promise((resolve, reject) => {
14
+ const removeEvents = () => {
15
+ image.removeEventListener('load', onLoaded);
16
+ image.removeEventListener('error', onError);
17
+ };
18
+ const onLoaded = () => {
19
+ removeEvents();
20
+ resolve();
21
+ };
22
+ const onError = (err) => {
23
+ removeEvents();
24
+ reject(err);
25
+ };
26
+ image.addEventListener('load', onLoaded);
27
+ image.addEventListener('error', onError);
28
+ image.src = url;
29
+ });
30
+ textures.set(id, new Texture(image));
31
+ return id;
32
+ }
33
+ /**
34
+ * Unloads a texture from memory.
35
+ * @param id The texture symbol ID to unload
36
+ */
37
+ export function unloadTexture(id) {
38
+ textures.delete(id);
39
+ }
40
+ //# sourceMappingURL=load-texture.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"load-texture.js","sourceRoot":"","sources":["../../src/assets/load-texture.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,cAAc,CAAA;AAEhD;;;;GAIG;AACH,MAAM,CAAC,KAAK,UAAU,WAAW,CAAC,GAAW;IAC3C,MAAM,KAAK,GAAG,CAAC,GAAG,QAAQ,CAAC,OAAO,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,EAAE,GAAG,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,KAAK,GAAG,CAAC,CAAA;IAC/E,IAAI,KAAK,IAAI,IAAI;QAAE,OAAO,KAAK,CAAC,CAAC,CAAC,CAAA;IAElC,MAAM,EAAE,GAAG,MAAM,CAAC,GAAG,CAAC,CAAA;IACtB,MAAM,KAAK,GAAG,IAAI,KAAK,EAAE,CAAA;IAEzB,MAAM,IAAI,OAAO,CAAO,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;QAC1C,MAAM,YAAY,GAAG,GAAG,EAAE;YACxB,KAAK,CAAC,mBAAmB,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAA;YAC3C,KAAK,CAAC,mBAAmB,CAAC,OAAO,EAAE,OAAO,CAAC,CAAA;QAC7C,CAAC,CAAA;QAED,MAAM,QAAQ,GAAG,GAAG,EAAE;YACpB,YAAY,EAAE,CAAA;YACd,OAAO,EAAE,CAAA;QACX,CAAC,CAAA;QACD,MAAM,OAAO,GAAG,CAAC,GAAe,EAAE,EAAE;YAClC,YAAY,EAAE,CAAA;YACd,MAAM,CAAC,GAAG,CAAC,CAAA;QACb,CAAC,CAAA;QAED,KAAK,CAAC,gBAAgB,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAA;QACxC,KAAK,CAAC,gBAAgB,CAAC,OAAO,EAAE,OAAO,CAAC,CAAA;QAExC,KAAK,CAAC,GAAG,GAAG,GAAG,CAAA;IACjB,CAAC,CAAC,CAAA;IAEF,QAAQ,CAAC,GAAG,CAAC,EAAE,EAAE,IAAI,OAAO,CAAC,KAAK,CAAC,CAAC,CAAA;IAEpC,OAAO,EAAE,CAAA;AACX,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,aAAa,CAAC,EAAU;IACtC,QAAQ,CAAC,MAAM,CAAC,EAAE,CAAC,CAAA;AACrB,CAAC"}
@@ -0,0 +1,59 @@
1
+ /**
2
+ * Options for batch loading.
3
+ */
4
+ export interface LoaderOptions {
5
+ /**
6
+ * Callback invoked as assets finish loading.
7
+ * @param loaded Number of assets loaded so far
8
+ * @param total Total number of assets to load
9
+ */
10
+ onProgress?: (loaded: number, total: number) => void;
11
+ }
12
+ /**
13
+ * Asset type for `loadBatchAsset`.
14
+ */
15
+ export type AssetType = 'texture' | 'sound';
16
+ /**
17
+ * Loads multiple assets in parallel with progress tracking.
18
+ * Each loader is a function that returns a promise.
19
+ *
20
+ * @param loaders Array of loader functions
21
+ * @param options Loading options
22
+ * @returns Array of results in the same order as the input loaders
23
+ *
24
+ * @example
25
+ * ```ts
26
+ * const [bg, player] = await loadBatch([
27
+ * () => loadTexture('/assets/bg.png'),
28
+ * () => loadSound('/assets/shoot.ogg'),
29
+ * ], {
30
+ * onProgress: (loaded, total) => console.log(`${loaded}/${total}`),
31
+ * })
32
+ * ```
33
+ */
34
+ export declare function loadBatch<T>(loaders: (() => Promise<T>)[], options?: LoaderOptions): Promise<T[]>;
35
+ /**
36
+ * Loads multiple assets of the same type in parallel with progress tracking.
37
+ *
38
+ * @param type Asset type: `'texture'` or `'sound'`
39
+ * @param urls Array of URLs to load
40
+ * @param options Loading options
41
+ * @returns Array of symbol IDs in the same order as the input URLs
42
+ *
43
+ * @example
44
+ * ```ts
45
+ * const [bg, player] = await loadBatchAsset('texture', [
46
+ * '/assets/bg.png',
47
+ * '/assets/player.png',
48
+ * ], {
49
+ * onProgress: (loaded, total) => console.log(`${loaded}/${total}`),
50
+ * })
51
+ *
52
+ * const [shoot, hit] = await loadBatchAsset('sound', [
53
+ * '/assets/shoot.ogg',
54
+ * '/assets/hit.ogg',
55
+ * ])
56
+ * ```
57
+ */
58
+ export declare function loadBatchAsset(type: AssetType, urls: string[], options?: LoaderOptions): Promise<symbol[]>;
59
+ //# sourceMappingURL=loader.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"loader.d.ts","sourceRoot":"","sources":["../../src/assets/loader.ts"],"names":[],"mappings":"AAGA;;GAEG;AACH,MAAM,WAAW,aAAa;IAC5B;;;;OAIG;IACH,UAAU,CAAC,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,KAAK,IAAI,CAAA;CACrD;AAED;;GAEG;AACH,MAAM,MAAM,SAAS,GAAG,SAAS,GAAG,OAAO,CAAA;AAE3C;;;;;;;;;;;;;;;;;GAiBG;AACH,wBAAsB,SAAS,CAAC,CAAC,EAC/B,OAAO,EAAE,CAAC,MAAM,OAAO,CAAC,CAAC,CAAC,CAAC,EAAE,EAC7B,OAAO,CAAC,EAAE,aAAa,GACtB,OAAO,CAAC,CAAC,EAAE,CAAC,CAYd;AAED;;;;;;;;;;;;;;;;;;;;;;GAsBG;AACH,wBAAsB,cAAc,CAClC,IAAI,EAAE,SAAS,EACf,IAAI,EAAE,MAAM,EAAE,EACd,OAAO,CAAC,EAAE,aAAa,GACtB,OAAO,CAAC,MAAM,EAAE,CAAC,CAanB"}
@@ -0,0 +1,65 @@
1
+ import { loadTexture } from './load-texture.js';
2
+ import { loadSound } from './load-sound.js';
3
+ /**
4
+ * Loads multiple assets in parallel with progress tracking.
5
+ * Each loader is a function that returns a promise.
6
+ *
7
+ * @param loaders Array of loader functions
8
+ * @param options Loading options
9
+ * @returns Array of results in the same order as the input loaders
10
+ *
11
+ * @example
12
+ * ```ts
13
+ * const [bg, player] = await loadBatch([
14
+ * () => loadTexture('/assets/bg.png'),
15
+ * () => loadSound('/assets/shoot.ogg'),
16
+ * ], {
17
+ * onProgress: (loaded, total) => console.log(`${loaded}/${total}`),
18
+ * })
19
+ * ```
20
+ */
21
+ export async function loadBatch(loaders, options) {
22
+ let loaded = 0;
23
+ const total = loaders.length;
24
+ return Promise.all(loaders.map(async (fn) => {
25
+ const result = await fn();
26
+ loaded++;
27
+ options?.onProgress?.(loaded, total);
28
+ return result;
29
+ }));
30
+ }
31
+ /**
32
+ * Loads multiple assets of the same type in parallel with progress tracking.
33
+ *
34
+ * @param type Asset type: `'texture'` or `'sound'`
35
+ * @param urls Array of URLs to load
36
+ * @param options Loading options
37
+ * @returns Array of symbol IDs in the same order as the input URLs
38
+ *
39
+ * @example
40
+ * ```ts
41
+ * const [bg, player] = await loadBatchAsset('texture', [
42
+ * '/assets/bg.png',
43
+ * '/assets/player.png',
44
+ * ], {
45
+ * onProgress: (loaded, total) => console.log(`${loaded}/${total}`),
46
+ * })
47
+ *
48
+ * const [shoot, hit] = await loadBatchAsset('sound', [
49
+ * '/assets/shoot.ogg',
50
+ * '/assets/hit.ogg',
51
+ * ])
52
+ * ```
53
+ */
54
+ export async function loadBatchAsset(type, urls, options) {
55
+ const loader = type === 'texture' ? loadTexture : loadSound;
56
+ let loaded = 0;
57
+ const total = urls.length;
58
+ return Promise.all(urls.map(async (url) => {
59
+ const id = await loader(url);
60
+ loaded++;
61
+ options?.onProgress?.(loaded, total);
62
+ return id;
63
+ }));
64
+ }
65
+ //# sourceMappingURL=loader.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"loader.js","sourceRoot":"","sources":["../../src/assets/loader.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAA;AAC/C,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAA;AAmB3C;;;;;;;;;;;;;;;;;GAiBG;AACH,MAAM,CAAC,KAAK,UAAU,SAAS,CAC7B,OAA6B,EAC7B,OAAuB;IAEvB,IAAI,MAAM,GAAG,CAAC,CAAA;IACd,MAAM,KAAK,GAAG,OAAO,CAAC,MAAM,CAAA;IAE5B,OAAO,OAAO,CAAC,GAAG,CAChB,OAAO,CAAC,GAAG,CAAC,KAAK,EAAE,EAAE,EAAE,EAAE;QACvB,MAAM,MAAM,GAAG,MAAM,EAAE,EAAE,CAAA;QACzB,MAAM,EAAE,CAAA;QACR,OAAO,EAAE,UAAU,EAAE,CAAC,MAAM,EAAE,KAAK,CAAC,CAAA;QACpC,OAAO,MAAM,CAAA;IACf,CAAC,CAAC,CACH,CAAA;AACH,CAAC;AAED;;;;;;;;;;;;;;;;;;;;;;GAsBG;AACH,MAAM,CAAC,KAAK,UAAU,cAAc,CAClC,IAAe,EACf,IAAc,EACd,OAAuB;IAEvB,MAAM,MAAM,GAAG,IAAI,KAAK,SAAS,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,SAAS,CAAA;IAC3D,IAAI,MAAM,GAAG,CAAC,CAAA;IACd,MAAM,KAAK,GAAG,IAAI,CAAC,MAAM,CAAA;IAEzB,OAAO,OAAO,CAAC,GAAG,CAChB,IAAI,CAAC,GAAG,CAAC,KAAK,EAAE,GAAG,EAAE,EAAE;QACrB,MAAM,EAAE,GAAG,MAAM,MAAM,CAAC,GAAG,CAAC,CAAA;QAC5B,MAAM,EAAE,CAAA;QACR,OAAO,EAAE,UAAU,EAAE,CAAC,MAAM,EAAE,KAAK,CAAC,CAAA;QACpC,OAAO,EAAE,CAAA;IACX,CAAC,CAAC,CACH,CAAA;AACH,CAAC"}
@@ -0,0 +1,36 @@
1
+ import { Vector2 } from '../math/vector2.js';
2
+ export declare class Texture {
3
+ /** A loaded image */
4
+ image: HTMLImageElement;
5
+ /** The **`width`** of the texture. */
6
+ width: number;
7
+ /** The **`height`** of the texture. */
8
+ height: number;
9
+ constructor(
10
+ /** A loaded image */
11
+ image: HTMLImageElement);
12
+ /**
13
+ * The **`draw`** method draws the texture in the `canvas`.
14
+ * @param options Texture draw options
15
+ */
16
+ draw(options: TextureDrawOptions): void;
17
+ }
18
+ interface TextureDrawOptions {
19
+ /** Position to draw */
20
+ position: Vector2;
21
+ /** Size of the texture */
22
+ sourceSize?: Vector2 | undefined;
23
+ /** Size of the result texture */
24
+ displaySize?: Vector2 | undefined;
25
+ /** Offset of the texture */
26
+ margin?: Vector2 | undefined;
27
+ }
28
+ export declare const textures: Map<symbol, Texture>;
29
+ /**
30
+ * The **`getTexture`** function returns a texture by id.
31
+ * @param id Texture Id
32
+ * @returns A Texture
33
+ */
34
+ export declare function getTexture(id: symbol): Texture;
35
+ export {};
36
+ //# sourceMappingURL=texture.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"texture.d.ts","sourceRoot":"","sources":["../../src/assets/texture.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,OAAO,EAAE,MAAM,oBAAoB,CAAA;AAE5C,qBAAa,OAAO;IAOhB,qBAAqB;IACd,KAAK,EAAE,gBAAgB;IAPhC,sCAAsC;IACtC,KAAK,EAAE,MAAM,CAAA;IACb,uCAAuC;IACvC,MAAM,EAAE,MAAM,CAAA;;IAGZ,qBAAqB;IACd,KAAK,EAAE,gBAAgB;IAMhC;;;OAGG;IACH,IAAI,CAAC,OAAO,EAAE,kBAAkB;CA8BjC;AAED,UAAU,kBAAkB;IAC1B,uBAAuB;IACvB,QAAQ,EAAE,OAAO,CAAA;IACjB,0BAA0B;IAC1B,UAAU,CAAC,EAAE,OAAO,GAAG,SAAS,CAAA;IAChC,iCAAiC;IACjC,WAAW,CAAC,EAAE,OAAO,GAAG,SAAS,CAAA;IACjC,4BAA4B;IAC5B,MAAM,CAAC,EAAE,OAAO,GAAG,SAAS,CAAA;CAC7B;AAED,eAAO,MAAM,QAAQ,sBAA6B,CAAA;AAElD;;;;GAIG;AACH,wBAAgB,UAAU,CAAC,EAAE,EAAE,MAAM,WAMpC"}
@@ -0,0 +1,49 @@
1
+ import { GameConfig } from '../core/game-config.js';
2
+ import { TextureNotFoundError } from '../errors/assets.js';
3
+ import { Vector2 } from '../math/vector2.js';
4
+ export class Texture {
5
+ image;
6
+ /** The **`width`** of the texture. */
7
+ width;
8
+ /** The **`height`** of the texture. */
9
+ height;
10
+ constructor(
11
+ /** A loaded image */
12
+ image) {
13
+ this.image = image;
14
+ this.width = image.width;
15
+ this.height = image.height;
16
+ }
17
+ /**
18
+ * The **`draw`** method draws the texture in the `canvas`.
19
+ * @param options Texture draw options
20
+ */
21
+ draw(options) {
22
+ const width = options.sourceSize?.x ?? this.width;
23
+ const height = options.sourceSize?.y ?? this.height;
24
+ const rWidth = options.displaySize?.x ?? width;
25
+ const rHeight = options.displaySize?.y ?? height;
26
+ const flipX = rWidth !== Math.abs(rWidth);
27
+ const flipY = rHeight !== Math.abs(rHeight);
28
+ const scaleX = flipX ? -1 : 1;
29
+ const scaleY = flipY ? -1 : 1;
30
+ const pos = options.position.toMultiplied(new Vector2(scaleX, scaleY));
31
+ GameConfig.ctx.save();
32
+ GameConfig.ctx.scale(scaleX, scaleY);
33
+ GameConfig.ctx.drawImage(this.image, options.margin?.x ?? 0, options.margin?.y ?? 0, width, height, pos.x, pos.y, rWidth, rHeight);
34
+ GameConfig.ctx.restore();
35
+ }
36
+ }
37
+ export const textures = new Map();
38
+ /**
39
+ * The **`getTexture`** function returns a texture by id.
40
+ * @param id Texture Id
41
+ * @returns A Texture
42
+ */
43
+ export function getTexture(id) {
44
+ const texture = textures.get(id);
45
+ if (texture == null)
46
+ throw new TextureNotFoundError(id.toString());
47
+ return texture;
48
+ }
49
+ //# sourceMappingURL=texture.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"texture.js","sourceRoot":"","sources":["../../src/assets/texture.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,wBAAwB,CAAA;AACnD,OAAO,EAAE,oBAAoB,EAAE,MAAM,qBAAqB,CAAA;AAC1D,OAAO,EAAE,OAAO,EAAE,MAAM,oBAAoB,CAAA;AAE5C,MAAM,OAAO,OAAO;IAQT;IAPT,sCAAsC;IACtC,KAAK,CAAQ;IACb,uCAAuC;IACvC,MAAM,CAAQ;IAEd;IACE,qBAAqB;IACd,KAAuB;QAAvB,UAAK,GAAL,KAAK,CAAkB;QAE9B,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC,KAAK,CAAA;QACxB,IAAI,CAAC,MAAM,GAAG,KAAK,CAAC,MAAM,CAAA;IAC5B,CAAC;IAED;;;OAGG;IACH,IAAI,CAAC,OAA2B;QAC9B,MAAM,KAAK,GAAG,OAAO,CAAC,UAAU,EAAE,CAAC,IAAI,IAAI,CAAC,KAAK,CAAA;QACjD,MAAM,MAAM,GAAG,OAAO,CAAC,UAAU,EAAE,CAAC,IAAI,IAAI,CAAC,MAAM,CAAA;QAEnD,MAAM,MAAM,GAAG,OAAO,CAAC,WAAW,EAAE,CAAC,IAAI,KAAK,CAAA;QAC9C,MAAM,OAAO,GAAG,OAAO,CAAC,WAAW,EAAE,CAAC,IAAI,MAAM,CAAA;QAEhD,MAAM,KAAK,GAAG,MAAM,KAAK,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,CAAA;QACzC,MAAM,KAAK,GAAG,OAAO,KAAK,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,CAAA;QAE3C,MAAM,MAAM,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAA;QAC7B,MAAM,MAAM,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAA;QAE7B,MAAM,GAAG,GAAG,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAC,IAAI,OAAO,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAAA;QAEtE,UAAU,CAAC,GAAG,CAAC,IAAI,EAAE,CAAA;QACrB,UAAU,CAAC,GAAG,CAAC,KAAK,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;QACpC,UAAU,CAAC,GAAG,CAAC,SAAS,CACtB,IAAI,CAAC,KAAK,EACV,OAAO,CAAC,MAAM,EAAE,CAAC,IAAI,CAAC,EACtB,OAAO,CAAC,MAAM,EAAE,CAAC,IAAI,CAAC,EACtB,KAAK,EACL,MAAM,EACN,GAAG,CAAC,CAAC,EACL,GAAG,CAAC,CAAC,EACL,MAAM,EACN,OAAO,CACR,CAAA;QACD,UAAU,CAAC,GAAG,CAAC,OAAO,EAAE,CAAA;IAC1B,CAAC;CACF;AAaD,MAAM,CAAC,MAAM,QAAQ,GAAG,IAAI,GAAG,EAAmB,CAAA;AAElD;;;;GAIG;AACH,MAAM,UAAU,UAAU,CAAC,EAAU;IACnC,MAAM,OAAO,GAAG,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC,CAAA;IAEhC,IAAI,OAAO,IAAI,IAAI;QAAE,MAAM,IAAI,oBAAoB,CAAC,EAAE,CAAC,QAAQ,EAAE,CAAC,CAAA;IAElE,OAAO,OAAO,CAAA;AAChB,CAAC"}
@@ -0,0 +1,14 @@
1
+ /**
2
+ * Returns the shared `AudioContext`, creating it lazily on first call.
3
+ * The context starts in `suspended` state and must be resumed after a user gesture.
4
+ *
5
+ * @example
6
+ * ```ts
7
+ * const audioCtx = getAudioContext()
8
+ * if (audioCtx.state === 'suspended') {
9
+ * await audioCtx.resume()
10
+ * }
11
+ * ```
12
+ */
13
+ export declare function getAudioContext(): AudioContext;
14
+ //# sourceMappingURL=audio-context.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"audio-context.d.ts","sourceRoot":"","sources":["../../src/audio/audio-context.ts"],"names":[],"mappings":"AAEA;;;;;;;;;;;GAWG;AACH,wBAAgB,eAAe,IAAI,YAAY,CAK9C"}
@@ -0,0 +1,20 @@
1
+ let ctx = null;
2
+ /**
3
+ * Returns the shared `AudioContext`, creating it lazily on first call.
4
+ * The context starts in `suspended` state and must be resumed after a user gesture.
5
+ *
6
+ * @example
7
+ * ```ts
8
+ * const audioCtx = getAudioContext()
9
+ * if (audioCtx.state === 'suspended') {
10
+ * await audioCtx.resume()
11
+ * }
12
+ * ```
13
+ */
14
+ export function getAudioContext() {
15
+ if (ctx == null) {
16
+ ctx = new AudioContext();
17
+ }
18
+ return ctx;
19
+ }
20
+ //# sourceMappingURL=audio-context.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"audio-context.js","sourceRoot":"","sources":["../../src/audio/audio-context.ts"],"names":[],"mappings":"AAAA,IAAI,GAAG,GAAwB,IAAI,CAAA;AAEnC;;;;;;;;;;;GAWG;AACH,MAAM,UAAU,eAAe;IAC7B,IAAI,GAAG,IAAI,IAAI,EAAE,CAAC;QAChB,GAAG,GAAG,IAAI,YAAY,EAAE,CAAA;IAC1B,CAAC;IACD,OAAO,GAAG,CAAA;AACZ,CAAC"}
@@ -0,0 +1,2 @@
1
+ export { getAudioContext } from './audio-context.js';
2
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/audio/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAA"}
@@ -0,0 +1,2 @@
1
+ export { getAudioContext } from './audio-context.js';
2
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/audio/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAA"}
@@ -0,0 +1,32 @@
1
+ import type { Collider } from '../../nodes/node2d/collider.js';
2
+ import type { CollisionBounds } from '../types.js';
3
+ /**
4
+ * The **`SpatialHash`** class is a broadphase spatial partitioning structure.
5
+ * It divides the game world into a grid of cells and tracks which colliders occupy each cell.
6
+ * This allows the collision system to quickly narrow down potential collision pairs.
7
+ */
8
+ export declare class SpatialHash {
9
+ #private;
10
+ /**
11
+ * Creates a new `SpatialHash` with the given cell size.
12
+ * @param cellSize The size of each grid cell in pixels. Defaults to 64.
13
+ */
14
+ constructor(cellSize?: number);
15
+ /**
16
+ * The **`clear`** method removes all colliders from the grid.
17
+ * Called automatically before each broadphase rebuild.
18
+ */
19
+ clear(): void;
20
+ /**
21
+ * The **`insert`** method adds a collider to all grid cells it overlaps.
22
+ * @param collider The collider to insert into the spatial hash.
23
+ */
24
+ insert(collider: Collider): void;
25
+ /**
26
+ * The **`query`** method returns all colliders that overlap with the given bounds.
27
+ * @param bounds The bounding box to query.
28
+ * @returns A set of colliders that may intersect the bounds.
29
+ */
30
+ query(bounds: CollisionBounds): Set<Collider>;
31
+ }
32
+ //# sourceMappingURL=spatial-hash.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"spatial-hash.d.ts","sourceRoot":"","sources":["../../../src/collision/broadphase/spatial-hash.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,gCAAgC,CAAA;AAC9D,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,aAAa,CAAA;AAElD;;;;GAIG;AACH,qBAAa,WAAW;;IAItB;;;OAGG;gBACS,QAAQ,SAAK;IAIzB;;;OAGG;IACH,KAAK;IAIL;;;OAGG;IACH,MAAM,CAAC,QAAQ,EAAE,QAAQ;IAoBzB;;;;OAIG;IACH,KAAK,CAAC,MAAM,EAAE,eAAe,GAAG,GAAG,CAAC,QAAQ,CAAC;CAwC9C"}