1681-engine 0.0.0-stage → 0.5.8

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 (1014) hide show
  1. package/CHANGELOG.md +304 -0
  2. package/LICENSE +21 -0
  3. package/README.md +164 -2
  4. package/dist/1681-engine.js +417 -0
  5. package/dist/1681-engine.js.map +1 -0
  6. package/dist/ambient/ColorGrade.js +41 -0
  7. package/dist/ambient/ColorGrade.js.map +1 -0
  8. package/dist/ambient/DayClock.js +57 -0
  9. package/dist/ambient/DayClock.js.map +1 -0
  10. package/dist/ambient/WeatherLayer.js +91 -0
  11. package/dist/ambient/WeatherLayer.js.map +1 -0
  12. package/dist/ambient/grade.js +13 -0
  13. package/dist/ambient/grade.js.map +1 -0
  14. package/dist/ambient/weather.js +52 -0
  15. package/dist/ambient/weather.js.map +1 -0
  16. package/dist/anim/AnimStateMachine.js +164 -0
  17. package/dist/anim/AnimStateMachine.js.map +1 -0
  18. package/dist/anim/Animator.js +67 -0
  19. package/dist/anim/Animator.js.map +1 -0
  20. package/dist/anim/animStateCompile.js +113 -0
  21. package/dist/anim/animStateCompile.js.map +1 -0
  22. package/dist/anim/animStateSystem.js +17 -0
  23. package/dist/anim/animStateSystem.js.map +1 -0
  24. package/dist/anim/animationSystem.js +15 -0
  25. package/dist/anim/animationSystem.js.map +1 -0
  26. package/dist/anim/asepriteSlices.js +22 -0
  27. package/dist/anim/asepriteSlices.js.map +1 -0
  28. package/dist/anim/asepriteTags.js +35 -0
  29. package/dist/anim/asepriteTags.js.map +1 -0
  30. package/dist/anim/parseAseprite.js +83 -0
  31. package/dist/anim/parseAseprite.js.map +1 -0
  32. package/dist/assets/AssetLoader.js +104 -0
  33. package/dist/assets/AssetLoader.js.map +1 -0
  34. package/dist/assets/loadAseprite.js +50 -0
  35. package/dist/assets/loadAseprite.js.map +1 -0
  36. package/dist/assets/takeCleanerWorker-DTcI_Jqr.js +31 -0
  37. package/dist/assets/takeCleanerWorker-DTcI_Jqr.js.map +1 -0
  38. package/dist/audio/Footsteps.js +26 -0
  39. package/dist/audio/Footsteps.js.map +1 -0
  40. package/dist/audio/MusicPlayer.js +78 -0
  41. package/dist/audio/MusicPlayer.js.map +1 -0
  42. package/dist/audio/SoundEngine.js +119 -0
  43. package/dist/audio/SoundEngine.js.map +1 -0
  44. package/dist/audio/cleanTake.js +30 -0
  45. package/dist/audio/cleanTake.js.map +1 -0
  46. package/dist/audio/music/ElementVoice.js +35 -0
  47. package/dist/audio/music/ElementVoice.js.map +1 -0
  48. package/dist/audio/music/GraphVoice.js +39 -0
  49. package/dist/audio/music/GraphVoice.js.map +1 -0
  50. package/dist/audio/music/MusicChannel.js +58 -0
  51. package/dist/audio/music/MusicChannel.js.map +1 -0
  52. package/dist/audio/music/musicVoice.js +13 -0
  53. package/dist/audio/music/musicVoice.js.map +1 -0
  54. package/dist/audio/sampleBank.js +82 -0
  55. package/dist/audio/sampleBank.js.map +1 -0
  56. package/dist/audio/soundTable.js +9 -0
  57. package/dist/audio/soundTable.js.map +1 -0
  58. package/dist/audio/synth.js +36 -0
  59. package/dist/audio/synth.js.map +1 -0
  60. package/dist/core/BitmapLabel.js +49 -0
  61. package/dist/core/BitmapLabel.js.map +1 -0
  62. package/dist/core/Camera.js +150 -0
  63. package/dist/core/Camera.js.map +1 -0
  64. package/dist/core/Clock.js +30 -0
  65. package/dist/core/Clock.js.map +1 -0
  66. package/dist/core/Graphics.js +69 -0
  67. package/dist/core/Graphics.js.map +1 -0
  68. package/dist/core/Group.js +29 -0
  69. package/dist/core/Group.js.map +1 -0
  70. package/dist/core/Image.js +51 -0
  71. package/dist/core/Image.js.map +1 -0
  72. package/dist/core/ObjectFactory.js +55 -0
  73. package/dist/core/ObjectFactory.js.map +1 -0
  74. package/dist/core/Pointer.js +58 -0
  75. package/dist/core/Pointer.js.map +1 -0
  76. package/dist/core/Rectangle.js +51 -0
  77. package/dist/core/Rectangle.js.map +1 -0
  78. package/dist/core/Stage.js +86 -0
  79. package/dist/core/Stage.js.map +1 -0
  80. package/dist/core/Text.js +22 -0
  81. package/dist/core/Text.js.map +1 -0
  82. package/dist/core/TextureRegistry.js +111 -0
  83. package/dist/core/TextureRegistry.js.map +1 -0
  84. package/dist/core/Timeline.js +211 -0
  85. package/dist/core/Timeline.js.map +1 -0
  86. package/dist/core/TimelineBuilder.js +73 -0
  87. package/dist/core/TimelineBuilder.js.map +1 -0
  88. package/dist/core/TimelineChild.js +84 -0
  89. package/dist/core/TimelineChild.js.map +1 -0
  90. package/dist/core/Tweener.js +136 -0
  91. package/dist/core/Tweener.js.map +1 -0
  92. package/dist/core/atlas.js +38 -0
  93. package/dist/core/atlas.js.map +1 -0
  94. package/dist/core/atlasPlan.js +22 -0
  95. package/dist/core/atlasPlan.js.map +1 -0
  96. package/dist/core/eases.js +21 -0
  97. package/dist/core/eases.js.map +1 -0
  98. package/dist/core/gameObject.js +115 -0
  99. package/dist/core/gameObject.js.map +1 -0
  100. package/dist/core/pixiPatches.js +18 -0
  101. package/dist/core/pixiPatches.js.map +1 -0
  102. package/dist/core/timelinePlace.js +24 -0
  103. package/dist/core/timelinePlace.js.map +1 -0
  104. package/dist/core/tweenProps.js +12 -0
  105. package/dist/core/tweenProps.js.map +1 -0
  106. package/dist/debug/DebugOverlay.js +94 -0
  107. package/dist/debug/DebugOverlay.js.map +1 -0
  108. package/dist/debug/DrawCallCounter.js +41 -0
  109. package/dist/debug/DrawCallCounter.js.map +1 -0
  110. package/dist/debug/ErrorLog.js +22 -0
  111. package/dist/debug/ErrorLog.js.map +1 -0
  112. package/dist/debug/FrameStats.js +42 -0
  113. package/dist/debug/FrameStats.js.map +1 -0
  114. package/dist/debug/inspectWorld.js +29 -0
  115. package/dist/debug/inspectWorld.js.map +1 -0
  116. package/dist/diagnostics/ErrorDeduper.js +27 -0
  117. package/dist/diagnostics/ErrorDeduper.js.map +1 -0
  118. package/dist/diagnostics/FrameSampler.js +42 -0
  119. package/dist/diagnostics/FrameSampler.js.map +1 -0
  120. package/dist/diagnostics/bootWatch.js +21 -0
  121. package/dist/diagnostics/bootWatch.js.map +1 -0
  122. package/dist/diagnostics/captureErrors.js +27 -0
  123. package/dist/diagnostics/captureErrors.js.map +1 -0
  124. package/dist/diagnostics/contextLoss.js +25 -0
  125. package/dist/diagnostics/contextLoss.js.map +1 -0
  126. package/dist/diagnostics/frameStats.js +31 -0
  127. package/dist/diagnostics/frameStats.js.map +1 -0
  128. package/dist/diagnostics/gpuInfo.js +22 -0
  129. package/dist/diagnostics/gpuInfo.js.map +1 -0
  130. package/dist/diagnostics/renderGuard.js +24 -0
  131. package/dist/diagnostics/renderGuard.js.map +1 -0
  132. package/dist/ecs/SparseSet.js +55 -0
  133. package/dist/ecs/SparseSet.js.map +1 -0
  134. package/dist/ecs/World.js +307 -0
  135. package/dist/ecs/World.js.map +1 -0
  136. package/dist/ecs/fields.js +26 -0
  137. package/dist/ecs/fields.js.map +1 -0
  138. package/dist/engine/Engine.js +82 -0
  139. package/dist/engine/Engine.js.map +1 -0
  140. package/dist/engine/FixedLoop.js +37 -0
  141. package/dist/engine/FixedLoop.js.map +1 -0
  142. package/dist/engine/Scene.js +79 -0
  143. package/dist/engine/Scene.js.map +1 -0
  144. package/dist/engine/SceneManager.js +73 -0
  145. package/dist/engine/SceneManager.js.map +1 -0
  146. package/dist/events/EventBus.js +42 -0
  147. package/dist/events/EventBus.js.map +1 -0
  148. package/dist/fx/FloatingText.js +72 -0
  149. package/dist/fx/FloatingText.js.map +1 -0
  150. package/dist/fx/hitStop.js +28 -0
  151. package/dist/fx/hitStop.js.map +1 -0
  152. package/dist/fx/viewCull.js +10 -0
  153. package/dist/fx/viewCull.js.map +1 -0
  154. package/dist/i18n/Translator.js +72 -0
  155. package/dist/i18n/Translator.js.map +1 -0
  156. package/dist/i18n/extractStrings.js +58 -0
  157. package/dist/i18n/extractStrings.js.map +1 -0
  158. package/dist/i18n/formatMessage.js +19 -0
  159. package/dist/i18n/formatMessage.js.map +1 -0
  160. package/dist/input/Actions.js +131 -0
  161. package/dist/input/Actions.js.map +1 -0
  162. package/dist/input/AimGesture.js +75 -0
  163. package/dist/input/AimGesture.js.map +1 -0
  164. package/dist/input/Keyboard.js +54 -0
  165. package/dist/input/Keyboard.js.map +1 -0
  166. package/dist/input/Keymap.js +171 -0
  167. package/dist/input/Keymap.js.map +1 -0
  168. package/dist/input/TargetLock.js +73 -0
  169. package/dist/input/TargetLock.js.map +1 -0
  170. package/dist/input/aimAxis.js +8 -0
  171. package/dist/input/aimAxis.js.map +1 -0
  172. package/dist/input/keyChord.js +29 -0
  173. package/dist/input/keyChord.js.map +1 -0
  174. package/dist/input/longPress.js +32 -0
  175. package/dist/input/longPress.js.map +1 -0
  176. package/dist/input/stickAxis.js +23 -0
  177. package/dist/input/stickAxis.js.map +1 -0
  178. package/dist/input/touchDetect.js +7 -0
  179. package/dist/input/touchDetect.js.map +1 -0
  180. package/dist/light/LightLayer.js +84 -0
  181. package/dist/light/LightLayer.js.map +1 -0
  182. package/dist/nav/MinHeap.js +39 -0
  183. package/dist/nav/MinHeap.js.map +1 -0
  184. package/dist/nav/findPath.js +78 -0
  185. package/dist/nav/findPath.js.map +1 -0
  186. package/dist/nav/navGrid.js +36 -0
  187. package/dist/nav/navGrid.js.map +1 -0
  188. package/dist/nav/nearestOpen.js +19 -0
  189. package/dist/nav/nearestOpen.js.map +1 -0
  190. package/dist/nav/straightenPath.js +51 -0
  191. package/dist/nav/straightenPath.js.map +1 -0
  192. package/dist/net/Connection.js +84 -0
  193. package/dist/net/Connection.js.map +1 -0
  194. package/dist/net/InterpolationBuffer.js +57 -0
  195. package/dist/net/InterpolationBuffer.js.map +1 -0
  196. package/dist/net/PredictedMover.js +61 -0
  197. package/dist/net/PredictedMover.js.map +1 -0
  198. package/dist/net/Room.js +92 -0
  199. package/dist/net/Room.js.map +1 -0
  200. package/dist/net/RoomHost.js +101 -0
  201. package/dist/net/RoomHost.js.map +1 -0
  202. package/dist/net/cadence.js +22 -0
  203. package/dist/net/cadence.js.map +1 -0
  204. package/dist/net/constants.js +11 -0
  205. package/dist/net/constants.js.map +1 -0
  206. package/dist/net/lobby/LobbyClient.js +124 -0
  207. package/dist/net/lobby/LobbyClient.js.map +1 -0
  208. package/dist/net/lobby/LobbyHost.js +366 -0
  209. package/dist/net/lobby/LobbyHost.js.map +1 -0
  210. package/dist/net/lobby/LobbyRooms.js +66 -0
  211. package/dist/net/lobby/LobbyRooms.js.map +1 -0
  212. package/dist/net/lobby/Matchmaker.js +106 -0
  213. package/dist/net/lobby/Matchmaker.js.map +1 -0
  214. package/dist/net/movement.js +83 -0
  215. package/dist/net/movement.js.map +1 -0
  216. package/dist/net/protocol.js +11 -0
  217. package/dist/net/protocol.js.map +1 -0
  218. package/dist/net/serverClock.js +22 -0
  219. package/dist/net/serverClock.js.map +1 -0
  220. package/dist/net/snapshotCodec.js +92 -0
  221. package/dist/net/snapshotCodec.js.map +1 -0
  222. package/dist/parallax/Parallax.js +32 -0
  223. package/dist/parallax/Parallax.js.map +1 -0
  224. package/dist/parallax/ParallaxLayer.js +70 -0
  225. package/dist/parallax/ParallaxLayer.js.map +1 -0
  226. package/dist/parallax/parallaxMath.js +27 -0
  227. package/dist/parallax/parallaxMath.js.map +1 -0
  228. package/dist/particles/Emitter.js +108 -0
  229. package/dist/particles/Emitter.js.map +1 -0
  230. package/dist/particles/ParticleBudget.js +32 -0
  231. package/dist/particles/ParticleBudget.js.map +1 -0
  232. package/dist/particles/ParticleSim.js +60 -0
  233. package/dist/particles/ParticleSim.js.map +1 -0
  234. package/dist/particles/particleCurves.js +48 -0
  235. package/dist/particles/particleCurves.js.map +1 -0
  236. package/dist/particles/particleSampling.js +30 -0
  237. package/dist/particles/particleSampling.js.map +1 -0
  238. package/dist/physics/Body.js +202 -0
  239. package/dist/physics/Body.js.map +1 -0
  240. package/dist/physics/BroadPhase.js +56 -0
  241. package/dist/physics/BroadPhase.js.map +1 -0
  242. package/dist/physics/Contact.js +76 -0
  243. package/dist/physics/Contact.js.map +1 -0
  244. package/dist/physics/ContactSolver.js +70 -0
  245. package/dist/physics/ContactSolver.js.map +1 -0
  246. package/dist/physics/PhysicsWorld.js +221 -0
  247. package/dist/physics/PhysicsWorld.js.map +1 -0
  248. package/dist/physics/SpatialHash.js +39 -0
  249. package/dist/physics/SpatialHash.js.map +1 -0
  250. package/dist/physics/collide.js +76 -0
  251. package/dist/physics/collide.js.map +1 -0
  252. package/dist/physics/collidePolygon.js +94 -0
  253. package/dist/physics/collidePolygon.js.map +1 -0
  254. package/dist/physics/contactReport.js +14 -0
  255. package/dist/physics/contactReport.js.map +1 -0
  256. package/dist/physics/drawColliders.js +31 -0
  257. package/dist/physics/drawColliders.js.map +1 -0
  258. package/dist/physics/physicsSystem.js +8 -0
  259. package/dist/physics/physicsSystem.js.map +1 -0
  260. package/dist/physics/polygon.js +80 -0
  261. package/dist/physics/polygon.js.map +1 -0
  262. package/dist/physics/raycast.js +62 -0
  263. package/dist/physics/raycast.js.map +1 -0
  264. package/dist/physics/syncToBody.js +19 -0
  265. package/dist/physics/syncToBody.js.map +1 -0
  266. package/dist/physics/tileBodies.js +59 -0
  267. package/dist/physics/tileBodies.js.map +1 -0
  268. package/dist/physics/types.js +8 -0
  269. package/dist/physics/types.js.map +1 -0
  270. package/dist/pixel/Darkness.js +166 -0
  271. package/dist/pixel/Darkness.js.map +1 -0
  272. package/dist/pixel/DitherVignette.js +57 -0
  273. package/dist/pixel/DitherVignette.js.map +1 -0
  274. package/dist/pixel/Evaporation.js +85 -0
  275. package/dist/pixel/Evaporation.js.map +1 -0
  276. package/dist/pixel/NightShade.js +34 -0
  277. package/dist/pixel/NightShade.js.map +1 -0
  278. package/dist/pixel/PixelLayer.js +211 -0
  279. package/dist/pixel/PixelLayer.js.map +1 -0
  280. package/dist/pixel/SwayProp.js +75 -0
  281. package/dist/pixel/SwayProp.js.map +1 -0
  282. package/dist/pixel/lights.js +44 -0
  283. package/dist/pixel/lights.js.map +1 -0
  284. package/dist/pixel/nineSlice.js +62 -0
  285. package/dist/pixel/nineSlice.js.map +1 -0
  286. package/dist/pixel/paintLayer.js +36 -0
  287. package/dist/pixel/paintLayer.js.map +1 -0
  288. package/dist/pixel/palette.js +57 -0
  289. package/dist/pixel/palette.js.map +1 -0
  290. package/dist/pixel/pixel.js +278 -0
  291. package/dist/pixel/pixel.js.map +1 -0
  292. package/dist/pixel/pixelPaint.js +194 -0
  293. package/dist/pixel/pixelPaint.js.map +1 -0
  294. package/dist/pixel/pixelTone.js +164 -0
  295. package/dist/pixel/pixelTone.js.map +1 -0
  296. package/dist/pixel/propKit.js +41 -0
  297. package/dist/pixel/propKit.js.map +1 -0
  298. package/dist/pixel/ramp.js +102 -0
  299. package/dist/pixel/ramp.js.map +1 -0
  300. package/dist/pixel/selout.js +35 -0
  301. package/dist/pixel/selout.js.map +1 -0
  302. package/dist/pixel/spritePixels.js +59 -0
  303. package/dist/pixel/spritePixels.js.map +1 -0
  304. package/dist/pixel/swayRig.js +87 -0
  305. package/dist/pixel/swayRig.js.map +1 -0
  306. package/dist/pixel/vignetteMask.js +24 -0
  307. package/dist/pixel/vignetteMask.js.map +1 -0
  308. package/dist/pixel/weatherArt.js +61 -0
  309. package/dist/pixel/weatherArt.js.map +1 -0
  310. package/dist/pixel.js +90 -0
  311. package/dist/pixel.js.map +1 -0
  312. package/dist/platform/touch.js +33 -0
  313. package/dist/platform/touch.js.map +1 -0
  314. package/dist/postfx/BloomFilter.js +65 -0
  315. package/dist/postfx/BloomFilter.js.map +1 -0
  316. package/dist/postfx/ChromaticAberrationFilter.js +25 -0
  317. package/dist/postfx/ChromaticAberrationFilter.js.map +1 -0
  318. package/dist/postfx/ColorAdjustFilter.js +76 -0
  319. package/dist/postfx/ColorAdjustFilter.js.map +1 -0
  320. package/dist/postfx/CrtFilter.js +42 -0
  321. package/dist/postfx/CrtFilter.js.map +1 -0
  322. package/dist/postfx/PixelateFilter.js +27 -0
  323. package/dist/postfx/PixelateFilter.js.map +1 -0
  324. package/dist/postfx/PostFx.js +123 -0
  325. package/dist/postfx/PostFx.js.map +1 -0
  326. package/dist/postfx/ShockwaveFilter.js +49 -0
  327. package/dist/postfx/ShockwaveFilter.js.map +1 -0
  328. package/dist/postfx/VignetteFilter.js +37 -0
  329. package/dist/postfx/VignetteFilter.js.map +1 -0
  330. package/dist/postfx/fxAnimator.js +38 -0
  331. package/dist/postfx/fxAnimator.js.map +1 -0
  332. package/dist/postfx/fxShader.js +128 -0
  333. package/dist/postfx/fxShader.js.map +1 -0
  334. package/dist/postfx.js +26 -0
  335. package/dist/postfx.js.map +1 -0
  336. package/dist/react/ChoiceDialog.js +51 -0
  337. package/dist/react/ChoiceDialog.js.map +1 -0
  338. package/dist/react/ConfirmDialog.js +53 -0
  339. package/dist/react/ConfirmDialog.js.map +1 -0
  340. package/dist/react/Glyph.js +63 -0
  341. package/dist/react/Glyph.js.map +1 -0
  342. package/dist/react/Modal.js +38 -0
  343. package/dist/react/Modal.js.map +1 -0
  344. package/dist/react/Panel.js +24 -0
  345. package/dist/react/Panel.js.map +1 -0
  346. package/dist/react/PixelImage.js +24 -0
  347. package/dist/react/PixelImage.js.map +1 -0
  348. package/dist/react/Select.js +99 -0
  349. package/dist/react/Select.js.map +1 -0
  350. package/dist/react/Slider.js +62 -0
  351. package/dist/react/Slider.js.map +1 -0
  352. package/dist/react/SplitPane.js +24 -0
  353. package/dist/react/SplitPane.js.map +1 -0
  354. package/dist/react/TabStrip.js +32 -0
  355. package/dist/react/TabStrip.js.map +1 -0
  356. package/dist/react/TitleTips.js +42 -0
  357. package/dist/react/TitleTips.js.map +1 -0
  358. package/dist/react/Tooltip.js +28 -0
  359. package/dist/react/Tooltip.js.map +1 -0
  360. package/dist/react/UiProvider.js +50 -0
  361. package/dist/react/UiProvider.js.map +1 -0
  362. package/dist/react/baseCss.js +222 -0
  363. package/dist/react/baseCss.js.map +1 -0
  364. package/dist/react/choiceStore.js +23 -0
  365. package/dist/react/choiceStore.js.map +1 -0
  366. package/dist/react/classNames.js +19 -0
  367. package/dist/react/classNames.js.map +1 -0
  368. package/dist/react/confirmStore.js +30 -0
  369. package/dist/react/confirmStore.js.map +1 -0
  370. package/dist/react/labels.js +18 -0
  371. package/dist/react/labels.js.map +1 -0
  372. package/dist/react/placement.js +49 -0
  373. package/dist/react/placement.js.map +1 -0
  374. package/dist/react/useFillSheet.js +23 -0
  375. package/dist/react/useFillSheet.js.map +1 -0
  376. package/dist/react/useFitToViewport.js +29 -0
  377. package/dist/react/useFitToViewport.js.map +1 -0
  378. package/dist/react/usePicked.js +13 -0
  379. package/dist/react/usePicked.js.map +1 -0
  380. package/dist/react/useStore.js +9 -0
  381. package/dist/react/useStore.js.map +1 -0
  382. package/dist/react/useViewport.js +17 -0
  383. package/dist/react/useViewport.js.map +1 -0
  384. package/dist/react.js +78 -0
  385. package/dist/react.js.map +1 -0
  386. package/dist/rig/PosePlayer.js +92 -0
  387. package/dist/rig/PosePlayer.js.map +1 -0
  388. package/dist/rig/RigView.js +125 -0
  389. package/dist/rig/RigView.js.map +1 -0
  390. package/dist/rig/Skeleton.js +31 -0
  391. package/dist/rig/Skeleton.js.map +1 -0
  392. package/dist/rig/humanoid.js +6 -0
  393. package/dist/rig/humanoid.js.map +1 -0
  394. package/dist/rig/humanoid.json.js +30 -0
  395. package/dist/rig/humanoid.json.js.map +1 -0
  396. package/dist/rig/humanoidPoses.js +30 -0
  397. package/dist/rig/humanoidPoses.js.map +1 -0
  398. package/dist/rig/poseMath.js +54 -0
  399. package/dist/rig/poseMath.js.map +1 -0
  400. package/dist/rig/poses.json.js +150 -0
  401. package/dist/rig/poses.json.js.map +1 -0
  402. package/dist/save/Autosaver.js +54 -0
  403. package/dist/save/Autosaver.js.map +1 -0
  404. package/dist/save/MemoryBackend.js +19 -0
  405. package/dist/save/MemoryBackend.js.map +1 -0
  406. package/dist/save/SaveStore.js +103 -0
  407. package/dist/save/SaveStore.js.map +1 -0
  408. package/dist/save/WebStorageBackend.js +27 -0
  409. package/dist/save/WebStorageBackend.js.map +1 -0
  410. package/dist/save/checksum.js +10 -0
  411. package/dist/save/checksum.js.map +1 -0
  412. package/dist/save/migrateSave.js +27 -0
  413. package/dist/save/migrateSave.js.map +1 -0
  414. package/dist/settings.js +27 -0
  415. package/dist/settings.js.map +1 -0
  416. package/dist/tilemap/TilemapView.js +69 -0
  417. package/dist/tilemap/TilemapView.js.map +1 -0
  418. package/dist/tilemap/collision.js +25 -0
  419. package/dist/tilemap/collision.js.map +1 -0
  420. package/dist/tilemap/tiled.js +138 -0
  421. package/dist/tilemap/tiled.js.map +1 -0
  422. package/dist/transitions/CrossfadeTransition.js +24 -0
  423. package/dist/transitions/CrossfadeTransition.js.map +1 -0
  424. package/dist/transitions/DitherWipeTransition.js +70 -0
  425. package/dist/transitions/DitherWipeTransition.js.map +1 -0
  426. package/dist/transitions/FadeTransition.js +34 -0
  427. package/dist/transitions/FadeTransition.js.map +1 -0
  428. package/dist/transitions/Letterbox.js +42 -0
  429. package/dist/transitions/Letterbox.js.map +1 -0
  430. package/dist/transitions/ditherMask.js +15 -0
  431. package/dist/transitions/ditherMask.js.map +1 -0
  432. package/dist/transitions/transitionTo.js +28 -0
  433. package/dist/transitions/transitionTo.js.map +1 -0
  434. package/dist/transitions/tweenDone.js +15 -0
  435. package/dist/transitions/tweenDone.js.map +1 -0
  436. package/dist/types/ambient/ColorGrade.d.ts +41 -0
  437. package/dist/types/ambient/ColorGrade.d.ts.map +1 -0
  438. package/dist/types/ambient/DayClock.d.ts +80 -0
  439. package/dist/types/ambient/DayClock.d.ts.map +1 -0
  440. package/dist/types/ambient/WeatherLayer.d.ts +78 -0
  441. package/dist/types/ambient/WeatherLayer.d.ts.map +1 -0
  442. package/dist/types/ambient/grade.d.ts +22 -0
  443. package/dist/types/ambient/grade.d.ts.map +1 -0
  444. package/dist/types/ambient/weather.d.ts +49 -0
  445. package/dist/types/ambient/weather.d.ts.map +1 -0
  446. package/dist/types/anim/AnimStateMachine.d.ts +80 -0
  447. package/dist/types/anim/AnimStateMachine.d.ts.map +1 -0
  448. package/dist/types/anim/Animator.d.ts +50 -0
  449. package/dist/types/anim/Animator.d.ts.map +1 -0
  450. package/dist/types/anim/animStateCompile.d.ts +52 -0
  451. package/dist/types/anim/animStateCompile.d.ts.map +1 -0
  452. package/dist/types/anim/animStateSystem.d.ts +10 -0
  453. package/dist/types/anim/animStateSystem.d.ts.map +1 -0
  454. package/dist/types/anim/animStateTypes.d.ts +50 -0
  455. package/dist/types/anim/animStateTypes.d.ts.map +1 -0
  456. package/dist/types/anim/animationSystem.d.ts +13 -0
  457. package/dist/types/anim/animationSystem.d.ts.map +1 -0
  458. package/dist/types/anim/asepriteSlices.d.ts +19 -0
  459. package/dist/types/anim/asepriteSlices.d.ts.map +1 -0
  460. package/dist/types/anim/asepriteTags.d.ts +16 -0
  461. package/dist/types/anim/asepriteTags.d.ts.map +1 -0
  462. package/dist/types/anim/asepriteTypes.d.ts +159 -0
  463. package/dist/types/anim/asepriteTypes.d.ts.map +1 -0
  464. package/dist/types/anim/parseAseprite.d.ts +21 -0
  465. package/dist/types/anim/parseAseprite.d.ts.map +1 -0
  466. package/dist/types/assets/AssetLoader.d.ts +85 -0
  467. package/dist/types/assets/AssetLoader.d.ts.map +1 -0
  468. package/dist/types/assets/loadAseprite.d.ts +27 -0
  469. package/dist/types/assets/loadAseprite.d.ts.map +1 -0
  470. package/dist/types/audio/Footsteps.d.ts +33 -0
  471. package/dist/types/audio/Footsteps.d.ts.map +1 -0
  472. package/dist/types/audio/MusicPlayer.d.ts +65 -0
  473. package/dist/types/audio/MusicPlayer.d.ts.map +1 -0
  474. package/dist/types/audio/SoundEngine.d.ts +42 -0
  475. package/dist/types/audio/SoundEngine.d.ts.map +1 -0
  476. package/dist/types/audio/cleanTake.d.ts +3 -0
  477. package/dist/types/audio/cleanTake.d.ts.map +1 -0
  478. package/dist/types/audio/music/ElementVoice.d.ts +14 -0
  479. package/dist/types/audio/music/ElementVoice.d.ts.map +1 -0
  480. package/dist/types/audio/music/GraphVoice.d.ts +22 -0
  481. package/dist/types/audio/music/GraphVoice.d.ts.map +1 -0
  482. package/dist/types/audio/music/MusicChannel.d.ts +35 -0
  483. package/dist/types/audio/music/MusicChannel.d.ts.map +1 -0
  484. package/dist/types/audio/music/musicVoice.d.ts +26 -0
  485. package/dist/types/audio/music/musicVoice.d.ts.map +1 -0
  486. package/dist/types/audio/sampleBank.d.ts +27 -0
  487. package/dist/types/audio/sampleBank.d.ts.map +1 -0
  488. package/dist/types/audio/soundTable.d.ts +14 -0
  489. package/dist/types/audio/soundTable.d.ts.map +1 -0
  490. package/dist/types/audio/synth.d.ts +34 -0
  491. package/dist/types/audio/synth.d.ts.map +1 -0
  492. package/dist/types/audio/takeCleanerWorker.d.ts +2 -0
  493. package/dist/types/audio/takeCleanerWorker.d.ts.map +1 -0
  494. package/dist/types/core/BitmapLabel.d.ts +36 -0
  495. package/dist/types/core/BitmapLabel.d.ts.map +1 -0
  496. package/dist/types/core/Camera.d.ts +115 -0
  497. package/dist/types/core/Camera.d.ts.map +1 -0
  498. package/dist/types/core/Clock.d.ts +11 -0
  499. package/dist/types/core/Clock.d.ts.map +1 -0
  500. package/dist/types/core/Graphics.d.ts +37 -0
  501. package/dist/types/core/Graphics.d.ts.map +1 -0
  502. package/dist/types/core/Group.d.ts +15 -0
  503. package/dist/types/core/Group.d.ts.map +1 -0
  504. package/dist/types/core/Image.d.ts +25 -0
  505. package/dist/types/core/Image.d.ts.map +1 -0
  506. package/dist/types/core/ObjectFactory.d.ts +34 -0
  507. package/dist/types/core/ObjectFactory.d.ts.map +1 -0
  508. package/dist/types/core/Pointer.d.ts +27 -0
  509. package/dist/types/core/Pointer.d.ts.map +1 -0
  510. package/dist/types/core/Rectangle.d.ts +26 -0
  511. package/dist/types/core/Rectangle.d.ts.map +1 -0
  512. package/dist/types/core/Stage.d.ts +58 -0
  513. package/dist/types/core/Stage.d.ts.map +1 -0
  514. package/dist/types/core/Text.d.ts +22 -0
  515. package/dist/types/core/Text.d.ts.map +1 -0
  516. package/dist/types/core/TextureRegistry.d.ts +51 -0
  517. package/dist/types/core/TextureRegistry.d.ts.map +1 -0
  518. package/dist/types/core/Timeline.d.ts +115 -0
  519. package/dist/types/core/Timeline.d.ts.map +1 -0
  520. package/dist/types/core/TimelineBuilder.d.ts +53 -0
  521. package/dist/types/core/TimelineBuilder.d.ts.map +1 -0
  522. package/dist/types/core/TimelineChild.d.ts +51 -0
  523. package/dist/types/core/TimelineChild.d.ts.map +1 -0
  524. package/dist/types/core/Tweener.d.ts +70 -0
  525. package/dist/types/core/Tweener.d.ts.map +1 -0
  526. package/dist/types/core/atlas.d.ts +16 -0
  527. package/dist/types/core/atlas.d.ts.map +1 -0
  528. package/dist/types/core/atlasPlan.d.ts +34 -0
  529. package/dist/types/core/atlasPlan.d.ts.map +1 -0
  530. package/dist/types/core/eases.d.ts +3 -0
  531. package/dist/types/core/eases.d.ts.map +1 -0
  532. package/dist/types/core/gameObject.d.ts +42 -0
  533. package/dist/types/core/gameObject.d.ts.map +1 -0
  534. package/dist/types/core/pixiPatches.d.ts +9 -0
  535. package/dist/types/core/pixiPatches.d.ts.map +1 -0
  536. package/dist/types/core/timelinePlace.d.ts +23 -0
  537. package/dist/types/core/timelinePlace.d.ts.map +1 -0
  538. package/dist/types/core/tweenProps.d.ts +8 -0
  539. package/dist/types/core/tweenProps.d.ts.map +1 -0
  540. package/dist/types/core/types.d.ts +4 -0
  541. package/dist/types/core/types.d.ts.map +1 -0
  542. package/dist/types/debug/DebugOverlay.d.ts +63 -0
  543. package/dist/types/debug/DebugOverlay.d.ts.map +1 -0
  544. package/dist/types/debug/DrawCallCounter.d.ts +20 -0
  545. package/dist/types/debug/DrawCallCounter.d.ts.map +1 -0
  546. package/dist/types/debug/ErrorLog.d.ts +20 -0
  547. package/dist/types/debug/ErrorLog.d.ts.map +1 -0
  548. package/dist/types/debug/FrameStats.d.ts +21 -0
  549. package/dist/types/debug/FrameStats.d.ts.map +1 -0
  550. package/dist/types/debug/inspectWorld.d.ts +14 -0
  551. package/dist/types/debug/inspectWorld.d.ts.map +1 -0
  552. package/dist/types/diagnostics/ErrorDeduper.d.ts +17 -0
  553. package/dist/types/diagnostics/ErrorDeduper.d.ts.map +1 -0
  554. package/dist/types/diagnostics/FrameSampler.d.ts +37 -0
  555. package/dist/types/diagnostics/FrameSampler.d.ts.map +1 -0
  556. package/dist/types/diagnostics/bootWatch.d.ts +25 -0
  557. package/dist/types/diagnostics/bootWatch.d.ts.map +1 -0
  558. package/dist/types/diagnostics/captureErrors.d.ts +24 -0
  559. package/dist/types/diagnostics/captureErrors.d.ts.map +1 -0
  560. package/dist/types/diagnostics/contextLoss.d.ts +35 -0
  561. package/dist/types/diagnostics/contextLoss.d.ts.map +1 -0
  562. package/dist/types/diagnostics/frameStats.d.ts +30 -0
  563. package/dist/types/diagnostics/frameStats.d.ts.map +1 -0
  564. package/dist/types/diagnostics/gpuInfo.d.ts +9 -0
  565. package/dist/types/diagnostics/gpuInfo.d.ts.map +1 -0
  566. package/dist/types/diagnostics/renderGuard.d.ts +12 -0
  567. package/dist/types/diagnostics/renderGuard.d.ts.map +1 -0
  568. package/dist/types/ecs/SparseSet.d.ts +25 -0
  569. package/dist/types/ecs/SparseSet.d.ts.map +1 -0
  570. package/dist/types/ecs/World.d.ts +137 -0
  571. package/dist/types/ecs/World.d.ts.map +1 -0
  572. package/dist/types/ecs/fields.d.ts +34 -0
  573. package/dist/types/ecs/fields.d.ts.map +1 -0
  574. package/dist/types/engine/Engine.d.ts +80 -0
  575. package/dist/types/engine/Engine.d.ts.map +1 -0
  576. package/dist/types/engine/FixedLoop.d.ts +32 -0
  577. package/dist/types/engine/FixedLoop.d.ts.map +1 -0
  578. package/dist/types/engine/Scene.d.ts +67 -0
  579. package/dist/types/engine/Scene.d.ts.map +1 -0
  580. package/dist/types/engine/SceneManager.d.ts +36 -0
  581. package/dist/types/engine/SceneManager.d.ts.map +1 -0
  582. package/dist/types/events/EventBus.d.ts +20 -0
  583. package/dist/types/events/EventBus.d.ts.map +1 -0
  584. package/dist/types/fx/FloatingText.d.ts +71 -0
  585. package/dist/types/fx/FloatingText.d.ts.map +1 -0
  586. package/dist/types/fx/hitStop.d.ts +20 -0
  587. package/dist/types/fx/hitStop.d.ts.map +1 -0
  588. package/dist/types/fx/viewCull.d.ts +14 -0
  589. package/dist/types/fx/viewCull.d.ts.map +1 -0
  590. package/dist/types/i18n/Translator.d.ts +52 -0
  591. package/dist/types/i18n/Translator.d.ts.map +1 -0
  592. package/dist/types/i18n/extractStrings.d.ts +25 -0
  593. package/dist/types/i18n/extractStrings.d.ts.map +1 -0
  594. package/dist/types/i18n/formatMessage.d.ts +10 -0
  595. package/dist/types/i18n/formatMessage.d.ts.map +1 -0
  596. package/dist/types/index.d.ts +149 -0
  597. package/dist/types/index.d.ts.map +1 -0
  598. package/dist/types/input/Actions.d.ts +94 -0
  599. package/dist/types/input/Actions.d.ts.map +1 -0
  600. package/dist/types/input/AimGesture.d.ts +106 -0
  601. package/dist/types/input/AimGesture.d.ts.map +1 -0
  602. package/dist/types/input/Keyboard.d.ts +30 -0
  603. package/dist/types/input/Keyboard.d.ts.map +1 -0
  604. package/dist/types/input/Keymap.d.ts +85 -0
  605. package/dist/types/input/Keymap.d.ts.map +1 -0
  606. package/dist/types/input/TargetLock.d.ts +56 -0
  607. package/dist/types/input/TargetLock.d.ts.map +1 -0
  608. package/dist/types/input/aimAxis.d.ts +9 -0
  609. package/dist/types/input/aimAxis.d.ts.map +1 -0
  610. package/dist/types/input/keyChord.d.ts +15 -0
  611. package/dist/types/input/keyChord.d.ts.map +1 -0
  612. package/dist/types/input/longPress.d.ts +21 -0
  613. package/dist/types/input/longPress.d.ts.map +1 -0
  614. package/dist/types/input/stickAxis.d.ts +26 -0
  615. package/dist/types/input/stickAxis.d.ts.map +1 -0
  616. package/dist/types/input/touchDetect.d.ts +18 -0
  617. package/dist/types/input/touchDetect.d.ts.map +1 -0
  618. package/dist/types/light/LightLayer.d.ts +65 -0
  619. package/dist/types/light/LightLayer.d.ts.map +1 -0
  620. package/dist/types/nav/MinHeap.d.ts +15 -0
  621. package/dist/types/nav/MinHeap.d.ts.map +1 -0
  622. package/dist/types/nav/findPath.d.ts +38 -0
  623. package/dist/types/nav/findPath.d.ts.map +1 -0
  624. package/dist/types/nav/navGrid.d.ts +48 -0
  625. package/dist/types/nav/navGrid.d.ts.map +1 -0
  626. package/dist/types/nav/nearestOpen.d.ts +8 -0
  627. package/dist/types/nav/nearestOpen.d.ts.map +1 -0
  628. package/dist/types/nav/straightenPath.d.ts +13 -0
  629. package/dist/types/nav/straightenPath.d.ts.map +1 -0
  630. package/dist/types/net/Connection.d.ts +66 -0
  631. package/dist/types/net/Connection.d.ts.map +1 -0
  632. package/dist/types/net/InterpolationBuffer.d.ts +36 -0
  633. package/dist/types/net/InterpolationBuffer.d.ts.map +1 -0
  634. package/dist/types/net/PredictedMover.d.ts +43 -0
  635. package/dist/types/net/PredictedMover.d.ts.map +1 -0
  636. package/dist/types/net/Room.d.ts +69 -0
  637. package/dist/types/net/Room.d.ts.map +1 -0
  638. package/dist/types/net/RoomHost.d.ts +74 -0
  639. package/dist/types/net/RoomHost.d.ts.map +1 -0
  640. package/dist/types/net/cadence.d.ts +22 -0
  641. package/dist/types/net/cadence.d.ts.map +1 -0
  642. package/dist/types/net/constants.d.ts +24 -0
  643. package/dist/types/net/constants.d.ts.map +1 -0
  644. package/dist/types/net/lobby/LobbyClient.d.ts +107 -0
  645. package/dist/types/net/lobby/LobbyClient.d.ts.map +1 -0
  646. package/dist/types/net/lobby/LobbyHost.d.ts +147 -0
  647. package/dist/types/net/lobby/LobbyHost.d.ts.map +1 -0
  648. package/dist/types/net/lobby/LobbyRooms.d.ts +56 -0
  649. package/dist/types/net/lobby/LobbyRooms.d.ts.map +1 -0
  650. package/dist/types/net/lobby/Matchmaker.d.ts +57 -0
  651. package/dist/types/net/lobby/Matchmaker.d.ts.map +1 -0
  652. package/dist/types/net/lobby/index.d.ts +6 -0
  653. package/dist/types/net/lobby/index.d.ts.map +1 -0
  654. package/dist/types/net/lobby/lobbyProtocol.d.ts +143 -0
  655. package/dist/types/net/lobby/lobbyProtocol.d.ts.map +1 -0
  656. package/dist/types/net/movement.d.ts +50 -0
  657. package/dist/types/net/movement.d.ts.map +1 -0
  658. package/dist/types/net/protocol.d.ts +59 -0
  659. package/dist/types/net/protocol.d.ts.map +1 -0
  660. package/dist/types/net/serverClock.d.ts +14 -0
  661. package/dist/types/net/serverClock.d.ts.map +1 -0
  662. package/dist/types/net/snapshotCodec.d.ts +55 -0
  663. package/dist/types/net/snapshotCodec.d.ts.map +1 -0
  664. package/dist/types/parallax/Parallax.d.ts +37 -0
  665. package/dist/types/parallax/Parallax.d.ts.map +1 -0
  666. package/dist/types/parallax/ParallaxLayer.d.ts +80 -0
  667. package/dist/types/parallax/ParallaxLayer.d.ts.map +1 -0
  668. package/dist/types/parallax/parallaxMath.d.ts +50 -0
  669. package/dist/types/parallax/parallaxMath.d.ts.map +1 -0
  670. package/dist/types/particles/Emitter.d.ts +97 -0
  671. package/dist/types/particles/Emitter.d.ts.map +1 -0
  672. package/dist/types/particles/ParticleBudget.d.ts +28 -0
  673. package/dist/types/particles/ParticleBudget.d.ts.map +1 -0
  674. package/dist/types/particles/ParticleSim.d.ts +38 -0
  675. package/dist/types/particles/ParticleSim.d.ts.map +1 -0
  676. package/dist/types/particles/particleCurves.d.ts +21 -0
  677. package/dist/types/particles/particleCurves.d.ts.map +1 -0
  678. package/dist/types/particles/particleSampling.d.ts +20 -0
  679. package/dist/types/particles/particleSampling.d.ts.map +1 -0
  680. package/dist/types/physics/Body.d.ts +130 -0
  681. package/dist/types/physics/Body.d.ts.map +1 -0
  682. package/dist/types/physics/BroadPhase.d.ts +26 -0
  683. package/dist/types/physics/BroadPhase.d.ts.map +1 -0
  684. package/dist/types/physics/Contact.d.ts +62 -0
  685. package/dist/types/physics/Contact.d.ts.map +1 -0
  686. package/dist/types/physics/ContactSolver.d.ts +29 -0
  687. package/dist/types/physics/ContactSolver.d.ts.map +1 -0
  688. package/dist/types/physics/PhysicsWorld.d.ts +78 -0
  689. package/dist/types/physics/PhysicsWorld.d.ts.map +1 -0
  690. package/dist/types/physics/PhysicsWorldOptions.d.ts +24 -0
  691. package/dist/types/physics/PhysicsWorldOptions.d.ts.map +1 -0
  692. package/dist/types/physics/SpatialHash.d.ts +23 -0
  693. package/dist/types/physics/SpatialHash.d.ts.map +1 -0
  694. package/dist/types/physics/collide.d.ts +27 -0
  695. package/dist/types/physics/collide.d.ts.map +1 -0
  696. package/dist/types/physics/collidePolygon.d.ts +14 -0
  697. package/dist/types/physics/collidePolygon.d.ts.map +1 -0
  698. package/dist/types/physics/contactReport.d.ts +8 -0
  699. package/dist/types/physics/contactReport.d.ts.map +1 -0
  700. package/dist/types/physics/drawColliders.d.ts +43 -0
  701. package/dist/types/physics/drawColliders.d.ts.map +1 -0
  702. package/dist/types/physics/physicsSystem.d.ts +5 -0
  703. package/dist/types/physics/physicsSystem.d.ts.map +1 -0
  704. package/dist/types/physics/polygon.d.ts +28 -0
  705. package/dist/types/physics/polygon.d.ts.map +1 -0
  706. package/dist/types/physics/raycast.d.ts +19 -0
  707. package/dist/types/physics/raycast.d.ts.map +1 -0
  708. package/dist/types/physics/syncToBody.d.ts +16 -0
  709. package/dist/types/physics/syncToBody.d.ts.map +1 -0
  710. package/dist/types/physics/tileBodies.d.ts +36 -0
  711. package/dist/types/physics/tileBodies.d.ts.map +1 -0
  712. package/dist/types/physics/types.d.ts +116 -0
  713. package/dist/types/physics/types.d.ts.map +1 -0
  714. package/dist/types/pixel/Darkness.d.ts +78 -0
  715. package/dist/types/pixel/Darkness.d.ts.map +1 -0
  716. package/dist/types/pixel/DitherVignette.d.ts +35 -0
  717. package/dist/types/pixel/DitherVignette.d.ts.map +1 -0
  718. package/dist/types/pixel/Evaporation.d.ts +30 -0
  719. package/dist/types/pixel/Evaporation.d.ts.map +1 -0
  720. package/dist/types/pixel/NightShade.d.ts +38 -0
  721. package/dist/types/pixel/NightShade.d.ts.map +1 -0
  722. package/dist/types/pixel/PixelLayer.d.ts +85 -0
  723. package/dist/types/pixel/PixelLayer.d.ts.map +1 -0
  724. package/dist/types/pixel/SwayProp.d.ts +52 -0
  725. package/dist/types/pixel/SwayProp.d.ts.map +1 -0
  726. package/dist/types/pixel/index.d.ts +31 -0
  727. package/dist/types/pixel/index.d.ts.map +1 -0
  728. package/dist/types/pixel/lights.d.ts +34 -0
  729. package/dist/types/pixel/lights.d.ts.map +1 -0
  730. package/dist/types/pixel/nineSlice.d.ts +71 -0
  731. package/dist/types/pixel/nineSlice.d.ts.map +1 -0
  732. package/dist/types/pixel/paintLayer.d.ts +35 -0
  733. package/dist/types/pixel/paintLayer.d.ts.map +1 -0
  734. package/dist/types/pixel/palette.d.ts +58 -0
  735. package/dist/types/pixel/palette.d.ts.map +1 -0
  736. package/dist/types/pixel/pixel.d.ts +80 -0
  737. package/dist/types/pixel/pixel.d.ts.map +1 -0
  738. package/dist/types/pixel/pixelPaint.d.ts +43 -0
  739. package/dist/types/pixel/pixelPaint.d.ts.map +1 -0
  740. package/dist/types/pixel/pixelTone.d.ts +51 -0
  741. package/dist/types/pixel/pixelTone.d.ts.map +1 -0
  742. package/dist/types/pixel/propKit.d.ts +26 -0
  743. package/dist/types/pixel/propKit.d.ts.map +1 -0
  744. package/dist/types/pixel/ramp.d.ts +57 -0
  745. package/dist/types/pixel/ramp.d.ts.map +1 -0
  746. package/dist/types/pixel/selout.d.ts +3 -0
  747. package/dist/types/pixel/selout.d.ts.map +1 -0
  748. package/dist/types/pixel/spritePixels.d.ts +29 -0
  749. package/dist/types/pixel/spritePixels.d.ts.map +1 -0
  750. package/dist/types/pixel/swayRig.d.ts +72 -0
  751. package/dist/types/pixel/swayRig.d.ts.map +1 -0
  752. package/dist/types/pixel/vignetteMask.d.ts +16 -0
  753. package/dist/types/pixel/vignetteMask.d.ts.map +1 -0
  754. package/dist/types/pixel/weatherArt.d.ts +29 -0
  755. package/dist/types/pixel/weatherArt.d.ts.map +1 -0
  756. package/dist/types/platform/touch.d.ts +10 -0
  757. package/dist/types/platform/touch.d.ts.map +1 -0
  758. package/dist/types/postfx/BloomFilter.d.ts +33 -0
  759. package/dist/types/postfx/BloomFilter.d.ts.map +1 -0
  760. package/dist/types/postfx/ChromaticAberrationFilter.d.ts +11 -0
  761. package/dist/types/postfx/ChromaticAberrationFilter.d.ts.map +1 -0
  762. package/dist/types/postfx/ColorAdjustFilter.d.ts +32 -0
  763. package/dist/types/postfx/ColorAdjustFilter.d.ts.map +1 -0
  764. package/dist/types/postfx/CrtFilter.d.ts +16 -0
  765. package/dist/types/postfx/CrtFilter.d.ts.map +1 -0
  766. package/dist/types/postfx/PixelateFilter.d.ts +8 -0
  767. package/dist/types/postfx/PixelateFilter.d.ts.map +1 -0
  768. package/dist/types/postfx/PostFx.d.ts +92 -0
  769. package/dist/types/postfx/PostFx.d.ts.map +1 -0
  770. package/dist/types/postfx/ShockwaveFilter.d.ts +20 -0
  771. package/dist/types/postfx/ShockwaveFilter.d.ts.map +1 -0
  772. package/dist/types/postfx/VignetteFilter.d.ts +19 -0
  773. package/dist/types/postfx/VignetteFilter.d.ts.map +1 -0
  774. package/dist/types/postfx/fxAnimator.d.ts +32 -0
  775. package/dist/types/postfx/fxAnimator.d.ts.map +1 -0
  776. package/dist/types/postfx/fxShader.d.ts +49 -0
  777. package/dist/types/postfx/fxShader.d.ts.map +1 -0
  778. package/dist/types/postfx/index.d.ts +11 -0
  779. package/dist/types/postfx/index.d.ts.map +1 -0
  780. package/dist/types/react/ChoiceDialog.d.ts +8 -0
  781. package/dist/types/react/ChoiceDialog.d.ts.map +1 -0
  782. package/dist/types/react/ConfirmDialog.d.ts +9 -0
  783. package/dist/types/react/ConfirmDialog.d.ts.map +1 -0
  784. package/dist/types/react/Glyph.d.ts +54 -0
  785. package/dist/types/react/Glyph.d.ts.map +1 -0
  786. package/dist/types/react/Modal.d.ts +22 -0
  787. package/dist/types/react/Modal.d.ts.map +1 -0
  788. package/dist/types/react/Panel.d.ts +29 -0
  789. package/dist/types/react/Panel.d.ts.map +1 -0
  790. package/dist/types/react/PixelImage.d.ts +19 -0
  791. package/dist/types/react/PixelImage.d.ts.map +1 -0
  792. package/dist/types/react/Select.d.ts +27 -0
  793. package/dist/types/react/Select.d.ts.map +1 -0
  794. package/dist/types/react/Slider.d.ts +24 -0
  795. package/dist/types/react/Slider.d.ts.map +1 -0
  796. package/dist/types/react/SplitPane.d.ts +26 -0
  797. package/dist/types/react/SplitPane.d.ts.map +1 -0
  798. package/dist/types/react/TabStrip.d.ts +31 -0
  799. package/dist/types/react/TabStrip.d.ts.map +1 -0
  800. package/dist/types/react/TitleTips.d.ts +15 -0
  801. package/dist/types/react/TitleTips.d.ts.map +1 -0
  802. package/dist/types/react/Tooltip.d.ts +22 -0
  803. package/dist/types/react/Tooltip.d.ts.map +1 -0
  804. package/dist/types/react/UiProvider.d.ts +52 -0
  805. package/dist/types/react/UiProvider.d.ts.map +1 -0
  806. package/dist/types/react/baseCss.d.ts +27 -0
  807. package/dist/types/react/baseCss.d.ts.map +1 -0
  808. package/dist/types/react/choiceStore.d.ts +34 -0
  809. package/dist/types/react/choiceStore.d.ts.map +1 -0
  810. package/dist/types/react/classNames.d.ts +12 -0
  811. package/dist/types/react/classNames.d.ts.map +1 -0
  812. package/dist/types/react/confirmStore.d.ts +30 -0
  813. package/dist/types/react/confirmStore.d.ts.map +1 -0
  814. package/dist/types/react/index.d.ts +33 -0
  815. package/dist/types/react/index.d.ts.map +1 -0
  816. package/dist/types/react/labels.d.ts +24 -0
  817. package/dist/types/react/labels.d.ts.map +1 -0
  818. package/dist/types/react/placement.d.ts +59 -0
  819. package/dist/types/react/placement.d.ts.map +1 -0
  820. package/dist/types/react/useFillSheet.d.ts +9 -0
  821. package/dist/types/react/useFillSheet.d.ts.map +1 -0
  822. package/dist/types/react/useFitToViewport.d.ts +20 -0
  823. package/dist/types/react/useFitToViewport.d.ts.map +1 -0
  824. package/dist/types/react/usePicked.d.ts +9 -0
  825. package/dist/types/react/usePicked.d.ts.map +1 -0
  826. package/dist/types/react/useStore.d.ts +8 -0
  827. package/dist/types/react/useStore.d.ts.map +1 -0
  828. package/dist/types/react/useViewport.d.ts +4 -0
  829. package/dist/types/react/useViewport.d.ts.map +1 -0
  830. package/dist/types/rig/PosePlayer.d.ts +64 -0
  831. package/dist/types/rig/PosePlayer.d.ts.map +1 -0
  832. package/dist/types/rig/RigView.d.ts +68 -0
  833. package/dist/types/rig/RigView.d.ts.map +1 -0
  834. package/dist/types/rig/Skeleton.d.ts +14 -0
  835. package/dist/types/rig/Skeleton.d.ts.map +1 -0
  836. package/dist/types/rig/humanoid.d.ts +4 -0
  837. package/dist/types/rig/humanoid.d.ts.map +1 -0
  838. package/dist/types/rig/humanoidPoses.d.ts +117 -0
  839. package/dist/types/rig/humanoidPoses.d.ts.map +1 -0
  840. package/dist/types/rig/poseMath.d.ts +14 -0
  841. package/dist/types/rig/poseMath.d.ts.map +1 -0
  842. package/dist/types/rig/rigTypes.d.ts +82 -0
  843. package/dist/types/rig/rigTypes.d.ts.map +1 -0
  844. package/dist/types/save/Autosaver.d.ts +43 -0
  845. package/dist/types/save/Autosaver.d.ts.map +1 -0
  846. package/dist/types/save/MemoryBackend.d.ts +10 -0
  847. package/dist/types/save/MemoryBackend.d.ts.map +1 -0
  848. package/dist/types/save/SaveBackend.d.ts +14 -0
  849. package/dist/types/save/SaveBackend.d.ts.map +1 -0
  850. package/dist/types/save/SaveStore.d.ts +73 -0
  851. package/dist/types/save/SaveStore.d.ts.map +1 -0
  852. package/dist/types/save/WebStorageBackend.d.ts +14 -0
  853. package/dist/types/save/WebStorageBackend.d.ts.map +1 -0
  854. package/dist/types/save/checksum.d.ts +7 -0
  855. package/dist/types/save/checksum.d.ts.map +1 -0
  856. package/dist/types/save/migrateSave.d.ts +17 -0
  857. package/dist/types/save/migrateSave.d.ts.map +1 -0
  858. package/dist/types/settings.d.ts +25 -0
  859. package/dist/types/settings.d.ts.map +1 -0
  860. package/dist/types/tilemap/TilemapView.d.ts +42 -0
  861. package/dist/types/tilemap/TilemapView.d.ts.map +1 -0
  862. package/dist/types/tilemap/collision.d.ts +16 -0
  863. package/dist/types/tilemap/collision.d.ts.map +1 -0
  864. package/dist/types/tilemap/tiled.d.ts +104 -0
  865. package/dist/types/tilemap/tiled.d.ts.map +1 -0
  866. package/dist/types/transitions/CrossfadeTransition.d.ts +20 -0
  867. package/dist/types/transitions/CrossfadeTransition.d.ts.map +1 -0
  868. package/dist/types/transitions/DitherWipeTransition.d.ts +35 -0
  869. package/dist/types/transitions/DitherWipeTransition.d.ts.map +1 -0
  870. package/dist/types/transitions/FadeTransition.d.ts +20 -0
  871. package/dist/types/transitions/FadeTransition.d.ts.map +1 -0
  872. package/dist/types/transitions/Letterbox.d.ts +33 -0
  873. package/dist/types/transitions/Letterbox.d.ts.map +1 -0
  874. package/dist/types/transitions/Transition.d.ts +22 -0
  875. package/dist/types/transitions/Transition.d.ts.map +1 -0
  876. package/dist/types/transitions/ditherMask.d.ts +13 -0
  877. package/dist/types/transitions/ditherMask.d.ts.map +1 -0
  878. package/dist/types/transitions/transitionTo.d.ts +16 -0
  879. package/dist/types/transitions/transitionTo.d.ts.map +1 -0
  880. package/dist/types/transitions/tweenDone.d.ts +5 -0
  881. package/dist/types/transitions/tweenDone.d.ts.map +1 -0
  882. package/dist/types/ui/Bar.d.ts +41 -0
  883. package/dist/types/ui/Bar.d.ts.map +1 -0
  884. package/dist/types/ui/Button.d.ts +47 -0
  885. package/dist/types/ui/Button.d.ts.map +1 -0
  886. package/dist/types/ui/Dialog.d.ts +47 -0
  887. package/dist/types/ui/Dialog.d.ts.map +1 -0
  888. package/dist/types/ui/FocusManager.d.ts +53 -0
  889. package/dist/types/ui/FocusManager.d.ts.map +1 -0
  890. package/dist/types/ui/Label.d.ts +24 -0
  891. package/dist/types/ui/Label.d.ts.map +1 -0
  892. package/dist/types/ui/List.d.ts +23 -0
  893. package/dist/types/ui/List.d.ts.map +1 -0
  894. package/dist/types/ui/Panel.d.ts +38 -0
  895. package/dist/types/ui/Panel.d.ts.map +1 -0
  896. package/dist/types/ui/ScrollView.d.ts +56 -0
  897. package/dist/types/ui/ScrollView.d.ts.map +1 -0
  898. package/dist/types/ui/Slider.d.ts +47 -0
  899. package/dist/types/ui/Slider.d.ts.map +1 -0
  900. package/dist/types/ui/Stack.d.ts +16 -0
  901. package/dist/types/ui/Stack.d.ts.map +1 -0
  902. package/dist/types/ui/Toggle.d.ts +31 -0
  903. package/dist/types/ui/Toggle.d.ts.map +1 -0
  904. package/dist/types/ui/UiHost.d.ts +18 -0
  905. package/dist/types/ui/UiHost.d.ts.map +1 -0
  906. package/dist/types/ui/UiPointerGate.d.ts +17 -0
  907. package/dist/types/ui/UiPointerGate.d.ts.map +1 -0
  908. package/dist/types/ui/UiRoot.d.ts +73 -0
  909. package/dist/types/ui/UiRoot.d.ts.map +1 -0
  910. package/dist/types/ui/Widget.d.ts +56 -0
  911. package/dist/types/ui/Widget.d.ts.map +1 -0
  912. package/dist/types/ui/dom/DomOverlay.d.ts +52 -0
  913. package/dist/types/ui/dom/DomOverlay.d.ts.map +1 -0
  914. package/dist/types/ui/dom/DomWorldAnchors.d.ts +50 -0
  915. package/dist/types/ui/dom/DomWorldAnchors.d.ts.map +1 -0
  916. package/dist/types/ui/dom/InputShield.d.ts +20 -0
  917. package/dist/types/ui/dom/InputShield.d.ts.map +1 -0
  918. package/dist/types/ui/dom/createStore.d.ts +22 -0
  919. package/dist/types/ui/dom/createStore.d.ts.map +1 -0
  920. package/dist/types/ui/dom/shieldDecision.d.ts +34 -0
  921. package/dist/types/ui/dom/shieldDecision.d.ts.map +1 -0
  922. package/dist/types/ui/dom/worldToScreen.d.ts +24 -0
  923. package/dist/types/ui/dom/worldToScreen.d.ts.map +1 -0
  924. package/dist/types/ui/index.d.ts +38 -0
  925. package/dist/types/ui/index.d.ts.map +1 -0
  926. package/dist/types/ui/layout/anchor.d.ts +9 -0
  927. package/dist/types/ui/layout/anchor.d.ts.map +1 -0
  928. package/dist/types/ui/layout/barDrain.d.ts +25 -0
  929. package/dist/types/ui/layout/barDrain.d.ts.map +1 -0
  930. package/dist/types/ui/layout/fitToViewport.d.ts +32 -0
  931. package/dist/types/ui/layout/fitToViewport.d.ts.map +1 -0
  932. package/dist/types/ui/layout/focusNav.d.ts +13 -0
  933. package/dist/types/ui/layout/focusNav.d.ts.map +1 -0
  934. package/dist/types/ui/layout/geometry.d.ts +35 -0
  935. package/dist/types/ui/layout/geometry.d.ts.map +1 -0
  936. package/dist/types/ui/layout/listWidth.d.ts +13 -0
  937. package/dist/types/ui/layout/listWidth.d.ts.map +1 -0
  938. package/dist/types/ui/layout/placeTooltip.d.ts +23 -0
  939. package/dist/types/ui/layout/placeTooltip.d.ts.map +1 -0
  940. package/dist/types/ui/layout/scroll.d.ts +17 -0
  941. package/dist/types/ui/layout/scroll.d.ts.map +1 -0
  942. package/dist/types/ui/layout/slider.d.ts +7 -0
  943. package/dist/types/ui/layout/slider.d.ts.map +1 -0
  944. package/dist/types/ui/layout/stack.d.ts +26 -0
  945. package/dist/types/ui/layout/stack.d.ts.map +1 -0
  946. package/dist/types/ui/layout/wrapRow.d.ts +6 -0
  947. package/dist/types/ui/layout/wrapRow.d.ts.map +1 -0
  948. package/dist/ui/Bar.js +54 -0
  949. package/dist/ui/Bar.js.map +1 -0
  950. package/dist/ui/Button.js +58 -0
  951. package/dist/ui/Button.js.map +1 -0
  952. package/dist/ui/Dialog.js +56 -0
  953. package/dist/ui/Dialog.js.map +1 -0
  954. package/dist/ui/FocusManager.js +97 -0
  955. package/dist/ui/FocusManager.js.map +1 -0
  956. package/dist/ui/Label.js +36 -0
  957. package/dist/ui/Label.js.map +1 -0
  958. package/dist/ui/List.js +45 -0
  959. package/dist/ui/List.js.map +1 -0
  960. package/dist/ui/Panel.js +38 -0
  961. package/dist/ui/Panel.js.map +1 -0
  962. package/dist/ui/ScrollView.js +96 -0
  963. package/dist/ui/ScrollView.js.map +1 -0
  964. package/dist/ui/Slider.js +55 -0
  965. package/dist/ui/Slider.js.map +1 -0
  966. package/dist/ui/Stack.js +28 -0
  967. package/dist/ui/Stack.js.map +1 -0
  968. package/dist/ui/Toggle.js +37 -0
  969. package/dist/ui/Toggle.js.map +1 -0
  970. package/dist/ui/UiHost.js +9 -0
  971. package/dist/ui/UiHost.js.map +1 -0
  972. package/dist/ui/UiPointerGate.js +25 -0
  973. package/dist/ui/UiPointerGate.js.map +1 -0
  974. package/dist/ui/UiRoot.js +93 -0
  975. package/dist/ui/UiRoot.js.map +1 -0
  976. package/dist/ui/Widget.js +90 -0
  977. package/dist/ui/Widget.js.map +1 -0
  978. package/dist/ui/dom/DomOverlay.js +59 -0
  979. package/dist/ui/dom/DomOverlay.js.map +1 -0
  980. package/dist/ui/dom/DomWorldAnchors.js +59 -0
  981. package/dist/ui/dom/DomWorldAnchors.js.map +1 -0
  982. package/dist/ui/dom/InputShield.js +27 -0
  983. package/dist/ui/dom/InputShield.js.map +1 -0
  984. package/dist/ui/dom/createStore.js +42 -0
  985. package/dist/ui/dom/createStore.js.map +1 -0
  986. package/dist/ui/dom/shieldDecision.js +36 -0
  987. package/dist/ui/dom/shieldDecision.js.map +1 -0
  988. package/dist/ui/dom/worldToScreen.js +11 -0
  989. package/dist/ui/dom/worldToScreen.js.map +1 -0
  990. package/dist/ui/layout/anchor.js +20 -0
  991. package/dist/ui/layout/anchor.js.map +1 -0
  992. package/dist/ui/layout/barDrain.js +25 -0
  993. package/dist/ui/layout/barDrain.js.map +1 -0
  994. package/dist/ui/layout/fitToViewport.js +17 -0
  995. package/dist/ui/layout/fitToViewport.js.map +1 -0
  996. package/dist/ui/layout/focusNav.js +42 -0
  997. package/dist/ui/layout/focusNav.js.map +1 -0
  998. package/dist/ui/layout/geometry.js +21 -0
  999. package/dist/ui/layout/geometry.js.map +1 -0
  1000. package/dist/ui/layout/listWidth.js +10 -0
  1001. package/dist/ui/layout/listWidth.js.map +1 -0
  1002. package/dist/ui/layout/placeTooltip.js +28 -0
  1003. package/dist/ui/layout/placeTooltip.js.map +1 -0
  1004. package/dist/ui/layout/scroll.js +24 -0
  1005. package/dist/ui/layout/scroll.js.map +1 -0
  1006. package/dist/ui/layout/slider.js +20 -0
  1007. package/dist/ui/layout/slider.js.map +1 -0
  1008. package/dist/ui/layout/stack.js +27 -0
  1009. package/dist/ui/layout/stack.js.map +1 -0
  1010. package/dist/ui/layout/wrapRow.js +13 -0
  1011. package/dist/ui/layout/wrapRow.js.map +1 -0
  1012. package/dist/ui.js +85 -0
  1013. package/dist/ui.js.map +1 -0
  1014. package/package.json +115 -4
@@ -0,0 +1,97 @@
1
+ import { ParticleContainer, type Texture } from 'pixi.js';
2
+ import { type CameraLike } from '../fx/viewCull.js';
3
+ import { ParticleBudget } from './ParticleBudget.js';
4
+ import { type ColorCurve, type Curve } from './particleCurves.js';
5
+ import { type Range } from './particleSampling.js';
6
+ /** Where a new particle appears round the emitter: a disc, or a box centred on it. */
7
+ export type SpawnArea = {
8
+ readonly radius: number;
9
+ } | {
10
+ readonly width: number;
11
+ readonly height: number;
12
+ };
13
+ export interface EmitterOptions {
14
+ /** Every particle's texture. One emitter draws one texture (a frame of an atlas works: they share a source). */
15
+ texture: Texture;
16
+ /** Particles this emitter may hold at once (default 256). */
17
+ capacity?: number;
18
+ /** Particles a second while emitting (default 0: bursts only). */
19
+ rate?: number;
20
+ /** Seconds a particle lives (default 1). */
21
+ lifetime?: Range;
22
+ /** Starting speed, px/s (default [40, 80]). */
23
+ speed?: Range;
24
+ /** Direction of travel in radians (default -π/2, up the screen) and how far either way it may turn (default π). */
25
+ angle?: number;
26
+ spread?: number;
27
+ /** Px/s² added to velocity (default none). */
28
+ gravityX?: number;
29
+ gravityY?: number;
30
+ /** Share of speed lost per second (default 0). */
31
+ drag?: number;
32
+ /** Scale of the texture over life (default 1), and how much each particle's size may differ (0–1, default 0). */
33
+ size?: Curve;
34
+ sizeVariance?: number;
35
+ /** Opacity over life (default fading from 1 to 0). */
36
+ alpha?: Curve;
37
+ /** Tint over life, `0xrrggbb` (default white). */
38
+ tint?: ColorCurve;
39
+ /** Starting rotation and spin, radians and radians/s (default 0). */
40
+ rotation?: Range;
41
+ spin?: Range;
42
+ /** 'add' for glows, sparks and fire; 'normal' for smoke and debris (default 'normal'). */
43
+ blend?: 'normal' | 'add';
44
+ /** Where particles appear round the emitter (default its exact point). */
45
+ area?: SpawnArea;
46
+ /** World px beyond the screen within which the emitter still spawns and draws (default 64). */
47
+ cullMargin?: number;
48
+ /** Share of particles kept under reduced effects or the battery saver (default 0.35). */
49
+ thinFactor?: number;
50
+ /** The budget shared with other emitters (default the engine-wide `particleBudget`). */
51
+ budget?: ParticleBudget;
52
+ /** Random source (default `Math.random`); a seeded one makes an emitter replayable. */
53
+ random?: () => number;
54
+ }
55
+ /**
56
+ * A source of smooth sprite particles for any art style: sparks, smoke, dust, magic. Particles live in world
57
+ * coordinates, so moving the emitter (`x`, `y`) trails new ones behind it instead of dragging the old ones along.
58
+ *
59
+ * Drawn by one Pixi `ParticleContainer` (`view`): add it to a scene's `root`, and call `update(dt, camera)` once a
60
+ * frame. Particle objects are pooled and their colour is written straight into Pixi's packed field, so a steady
61
+ * emitter allocates nothing per frame. Spawning asks the shared `ParticleBudget` first, and off-screen emitters
62
+ * neither spawn nor draw.
63
+ */
64
+ export declare class Emitter {
65
+ readonly view: ParticleContainer;
66
+ x: number;
67
+ y: number;
68
+ /** Continuous emission on or off (bursts work either way). */
69
+ emitting: boolean;
70
+ private readonly sim;
71
+ private readonly pool;
72
+ private readonly budget;
73
+ private readonly random;
74
+ private readonly opts;
75
+ private carry;
76
+ private destroyed;
77
+ /** Set by the last `update`: whether the emitter's point was near the screen. */
78
+ private near;
79
+ constructor(options: EmitterOptions);
80
+ /** Particles alive now. */
81
+ get live(): number;
82
+ setPosition(x: number, y: number): this;
83
+ start(): this;
84
+ /** Stops emitting; the particles in the air live out their lives. */
85
+ stop(): this;
86
+ /** `count` particles at once, at the emitter or at (x, y). Thinned under reduced effects; skipped off screen. */
87
+ burst(count: number, x?: number, y?: number): void;
88
+ /** Advances by `dt` seconds. Pass the camera to skip spawning and drawing while everything is off screen. */
89
+ update(dt: number, camera?: CameraLike): void;
90
+ /** Every particle gone at once (a scene change, a cancelled effect). */
91
+ clear(): void;
92
+ destroy(): void;
93
+ private thin;
94
+ private emit;
95
+ private draw;
96
+ }
97
+ //# sourceMappingURL=Emitter.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Emitter.d.ts","sourceRoot":"","sources":["../../../src/particles/Emitter.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,28 @@
1
+ /**
2
+ * Particles alive across every emitter that shares this budget. An emitter asks before it spawns and gives back as
3
+ * its particles die, so a crowd of emitters at once costs no more than `limit`: ten explosions in one frame share the
4
+ * budget instead of adding up to a frame the GPU cannot finish. Under reduced effects or the battery saver the limit
5
+ * shrinks by `thinFactor`.
6
+ */
7
+ export declare class ParticleBudget {
8
+ /** Particles alive at once, for every emitter together. */
9
+ limit: number;
10
+ /** The share of `limit` left under reduced effects or the battery saver. */
11
+ thinFactor: number;
12
+ private used;
13
+ constructor(
14
+ /** Particles alive at once, for every emitter together. */
15
+ limit?: number,
16
+ /** The share of `limit` left under reduced effects or the battery saver. */
17
+ thinFactor?: number);
18
+ /** The limit as the settings stand now. */
19
+ get effectiveLimit(): number;
20
+ get live(): number;
21
+ /** Reserves up to `n` particles and returns how many were granted (0 when the budget is spent). */
22
+ take(n: number): number;
23
+ /** Returns `n` particles that died or were cleared. */
24
+ give(n: number): void;
25
+ }
26
+ /** The budget every emitter shares unless it is handed its own. */
27
+ export declare const particleBudget: ParticleBudget;
28
+ //# sourceMappingURL=ParticleBudget.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ParticleBudget.d.ts","sourceRoot":"","sources":["../../../src/particles/ParticleBudget.ts"],"names":[],"mappings":"AAEA;;;;;GAKG;AACH,qBAAa,cAAc;IAIvB,2DAA2D;IACpD,KAAK;IACZ,4EAA4E;IACrE,UAAU;IANnB,OAAO,CAAC,IAAI,CAAK;;IAGf,2DAA2D;IACpD,KAAK,SAAO;IACnB,4EAA4E;IACrE,UAAU,SAAO;IAG1B,2CAA2C;IAC3C,IAAI,cAAc,IAAI,MAAM,CAG3B;IAED,IAAI,IAAI,IAAI,MAAM,CAEjB;IAED,mGAAmG;IACnG,IAAI,CAAC,CAAC,EAAE,MAAM,GAAG,MAAM;IAMvB,uDAAuD;IACvD,IAAI,CAAC,CAAC,EAAE,MAAM,GAAG,IAAI;CAGtB;AAED,mEAAmE;AACnE,eAAO,MAAM,cAAc,gBAAuB,CAAC"}
@@ -0,0 +1,38 @@
1
+ /**
2
+ * The particles of one emitter as flat typed arrays (structure of arrays): position, velocity, age and lifetime,
3
+ * rotation and spin, and a per-particle random draw the curves can use. Pure, no Pixi: the emitter draws what this
4
+ * holds, and tests step it under node.
5
+ *
6
+ * Live particles are packed at indices `0 … count - 1`. A particle that dies is replaced by the last live one, so a
7
+ * step never leaves holes and never allocates; the order of particles is therefore not stable, which drawing does
8
+ * not need (every live index is written again each frame).
9
+ */
10
+ export declare class ParticleSim {
11
+ readonly capacity: number;
12
+ readonly x: Float32Array;
13
+ readonly y: Float32Array;
14
+ readonly vx: Float32Array;
15
+ readonly vy: Float32Array;
16
+ readonly age: Float32Array;
17
+ readonly life: Float32Array;
18
+ readonly rot: Float32Array;
19
+ readonly spin: Float32Array;
20
+ /** A random draw per particle (0–1), fixed for its life: size variance, flicker phase. */
21
+ readonly seed: Float32Array;
22
+ count: number;
23
+ constructor(capacity: number);
24
+ /** Adds a particle; returns its index, or -1 when the sim is full. `life` is in seconds. */
25
+ spawn(x: number, y: number, vx: number, vy: number, life: number, rot: number, spin: number, seed: number): number;
26
+ /**
27
+ * Advances every particle by `dt` seconds: gravity (px/s²) added to velocity, then drag, then position. Drag is
28
+ * the share of speed lost per second, applied as `exp(-drag × dt)` so it is the same at any frame rate. Returns how
29
+ * many particles died this step.
30
+ */
31
+ step(dt: number, gravityX: number, gravityY: number, drag: number): number;
32
+ /** The share of its life particle `i` has lived (0–1). */
33
+ progress(i: number): number;
34
+ /** Every particle gone; returns how many there were. */
35
+ clear(): number;
36
+ private removeAt;
37
+ }
38
+ //# sourceMappingURL=ParticleSim.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ParticleSim.d.ts","sourceRoot":"","sources":["../../../src/particles/ParticleSim.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AACH,qBAAa,WAAW;IAaV,QAAQ,CAAC,QAAQ,EAAE,MAAM;IAZrC,QAAQ,CAAC,CAAC,EAAE,YAAY,CAAC;IACzB,QAAQ,CAAC,CAAC,EAAE,YAAY,CAAC;IACzB,QAAQ,CAAC,EAAE,EAAE,YAAY,CAAC;IAC1B,QAAQ,CAAC,EAAE,EAAE,YAAY,CAAC;IAC1B,QAAQ,CAAC,GAAG,EAAE,YAAY,CAAC;IAC3B,QAAQ,CAAC,IAAI,EAAE,YAAY,CAAC;IAC5B,QAAQ,CAAC,GAAG,EAAE,YAAY,CAAC;IAC3B,QAAQ,CAAC,IAAI,EAAE,YAAY,CAAC;IAC5B,0FAA0F;IAC1F,QAAQ,CAAC,IAAI,EAAE,YAAY,CAAC;IAC5B,KAAK,SAAK;gBAEW,QAAQ,EAAE,MAAM;IAYrC,4FAA4F;IAC5F,KAAK,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,MAAM;IAelH;;;;OAIG;IACH,IAAI,CAAC,EAAE,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,MAAM;IAwB1E,0DAA0D;IAC1D,QAAQ,CAAC,CAAC,EAAE,MAAM,GAAG,MAAM;IAI3B,wDAAwD;IACxD,KAAK,IAAI,MAAM;IAMf,OAAO,CAAC,QAAQ;CAajB"}
@@ -0,0 +1,21 @@
1
+ /**
2
+ * Values that change over a particle's life, sampled at `t` from 0 (born) to 1 (gone). A curve is one of:
3
+ *
4
+ * - a number: the same the whole life;
5
+ * - `{ start, end }`: a straight line between the two;
6
+ * - keyframes `[[t, value], …]` sorted by `t`: straight lines between them, held flat before the first and after
7
+ * the last (a puff that swells fast then fades slowly is three keys, not a custom function).
8
+ *
9
+ * Pure and allocation-free: an emitter samples three curves per particle per frame.
10
+ */
11
+ export type Curve = number | {
12
+ readonly start: number;
13
+ readonly end: number;
14
+ } | readonly (readonly [t: number, value: number])[];
15
+ /** The same three shapes for colours (`0xrrggbb`), blended channel by channel. */
16
+ export type ColorCurve = Curve;
17
+ export declare function sampleCurve(curve: Curve, t: number): number;
18
+ export declare function sampleColor(curve: ColorCurve, t: number): number;
19
+ /** Two `0xrrggbb` colours mixed per channel, each channel rounded to a whole value. */
20
+ export declare function lerpColor(a: number, b: number, t: number): number;
21
+ //# sourceMappingURL=particleCurves.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"particleCurves.d.ts","sourceRoot":"","sources":["../../../src/particles/particleCurves.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AACH,MAAM,MAAM,KAAK,GAAG,MAAM,GAAG;IAAE,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAA;CAAE,GAAG,SAAS,CAAC,SAAS,CAAC,CAAC,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,CAAC,CAAC,EAAE,CAAC;AAEjI,kFAAkF;AAClF,MAAM,MAAM,UAAU,GAAG,KAAK,CAAC;AAE/B,wBAAgB,WAAW,CAAC,KAAK,EAAE,KAAK,EAAE,CAAC,EAAE,MAAM,GAAG,MAAM,CAgB3D;AAED,wBAAgB,WAAW,CAAC,KAAK,EAAE,UAAU,EAAE,CAAC,EAAE,MAAM,GAAG,MAAM,CAgBhE;AAED,uFAAuF;AACvF,wBAAgB,SAAS,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,GAAG,MAAM,CAMjE"}
@@ -0,0 +1,20 @@
1
+ /** A number picked at random between two (inclusive of the first), or a fixed one. */
2
+ export type Range = number | readonly [min: number, max: number];
3
+ /** A value of `range` for one random draw `r` in [0, 1). */
4
+ export declare function sampleRange(range: Range, r: number): number;
5
+ /** `base` turned by up to `spread` either way: `r` 0 gives `base - spread`, 0.5 gives `base`. */
6
+ export declare function spreadAngle(base: number, spread: number, r: number): number;
7
+ /**
8
+ * Whole particles due after `dt` seconds at `rate` a second, given the fraction `carry` left over from before. Kept
9
+ * as a fraction rather than rounded each frame, or 30 a second at 144 fps (0.21 a frame) would emit none at all.
10
+ * Returns the count in the integer part and the new carry in the fraction: `n = Math.floor(v)`, `carry = v - n`.
11
+ */
12
+ export declare function dueParticles(rate: number, dt: number, carry: number): number;
13
+ /**
14
+ * `n` scaled by `factor` (reduced effects), rounded at random so a burst of 3 at 0.35 still gives one particle about
15
+ * every time rather than never: the expected count stays `n × factor`.
16
+ */
17
+ export declare function scaleCount(n: number, factor: number, r: number): number;
18
+ /** A small seedable generator (mulberry32) for tests and replays; the emitter takes any `() => number`. */
19
+ export declare function seededRandom(seed: number): () => number;
20
+ //# sourceMappingURL=particleSampling.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"particleSampling.d.ts","sourceRoot":"","sources":["../../../src/particles/particleSampling.ts"],"names":[],"mappings":"AAAA,sFAAsF;AACtF,MAAM,MAAM,KAAK,GAAG,MAAM,GAAG,SAAS,CAAC,GAAG,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,CAAC,CAAC;AAEjE,4DAA4D;AAC5D,wBAAgB,WAAW,CAAC,KAAK,EAAE,KAAK,EAAE,CAAC,EAAE,MAAM,GAAG,MAAM,CAG3D;AAED,iGAAiG;AACjG,wBAAgB,WAAW,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,GAAG,MAAM,CAE3E;AAED;;;;GAIG;AACH,wBAAgB,YAAY,CAAC,IAAI,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,MAAM,CAG5E;AAED;;;GAGG;AACH,wBAAgB,UAAU,CAAC,CAAC,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,GAAG,MAAM,CAKvE;AAED,2GAA2G;AAC3G,wBAAgB,YAAY,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,MAAM,CASvD"}
@@ -0,0 +1,130 @@
1
+ import type { BodyOptions, BodyType, Shape } from './types.js';
2
+ /**
3
+ * A rigid body: plain data and a few helpers, no drawing. Positions are the shape's centre in world pixels, y down;
4
+ * velocities are px per second. Create bodies with `PhysicsWorld.add`, which also wakes them and puts them in the
5
+ * broad phase.
6
+ */
7
+ export declare class Body {
8
+ readonly id: number;
9
+ readonly type: BodyType;
10
+ shape: Shape;
11
+ x: number;
12
+ y: number;
13
+ /** Position at the start of the last world step: draw at `prev + (current - prev) × alpha`. */
14
+ prevX: number;
15
+ prevY: number;
16
+ vx: number;
17
+ vy: number;
18
+ /** Radians, clockwise on screen. */
19
+ angle: number;
20
+ /** Angle at the start of the last world step, for drawing between steps like `prevX`. */
21
+ prevAngle: number;
22
+ /** Radians per second. */
23
+ angularVelocity: number;
24
+ /** Contacts and torques turn it (`BodyOptions.rotates`). */
25
+ readonly rotates: boolean;
26
+ /** Turning lost per second, as a share. */
27
+ angularDamping: number;
28
+ /** Torque gathered for the next step, cleared after it. */
29
+ torque: number;
30
+ /** Moment of inertia about the centre (mass × px²); infinite for a body that does not rotate. */
31
+ readonly inertia: number;
32
+ readonly invInertia: number;
33
+ /** Force gathered for the next step (px·mass/s²), cleared after it. */
34
+ fx: number;
35
+ fy: number;
36
+ readonly mass: number;
37
+ readonly invMass: number;
38
+ restitution: number;
39
+ friction: number;
40
+ linearDamping: number;
41
+ gravityScale: number;
42
+ readonly sensor: boolean;
43
+ layer: number;
44
+ mask: number;
45
+ userData: unknown;
46
+ /** Box faces lying against more solid ground (`FACE_*` bits): never a contact normal, so seams do not snag. */
47
+ internalFaces: number;
48
+ /** A sleeping body is not integrated and is treated as immovable until something wakes it. */
49
+ awake: boolean;
50
+ /** Seconds spent below the world's sleep speed. */
51
+ restTime: number;
52
+ /** Standing on something: a solid contact whose normal points up at this body (refreshed every step). */
53
+ grounded: boolean;
54
+ /** What it stands on, while grounded. */
55
+ ground: Body | null;
56
+ groundNx: number;
57
+ groundNy: number;
58
+ minX: number;
59
+ minY: number;
60
+ maxX: number;
61
+ maxY: number;
62
+ /** @internal cosine and sine of `angle`, refreshed by `updateBounds`. */
63
+ cos: number;
64
+ sin: number;
65
+ /** @internal corners and outward face normals in world space (boxes and polygons), refreshed by `updateBounds`. */
66
+ readonly wx: Float64Array<ArrayBuffer>;
67
+ readonly wy: Float64Array<ArrayBuffer>;
68
+ readonly wnx: Float64Array<ArrayBuffer>;
69
+ readonly wny: Float64Array<ArrayBuffer>;
70
+ /** @internal how many of the above are in use (0 for a circle). */
71
+ corners: number;
72
+ /** @internal set by the world that holds it. */
73
+ inWorld: boolean;
74
+ /** @internal last ray that tested this body, so a ray crossing many cells tests it once. */
75
+ rayStamp: number;
76
+ constructor(options: BodyOptions);
77
+ get isDynamic(): boolean;
78
+ get isStatic(): boolean;
79
+ /** Moves by itself this step: an awake dynamic body or any kinematic one. */
80
+ get moving(): boolean;
81
+ /** Inverse mass as the solver sees it: a sleeping body holds still like ground. */
82
+ get solverInvMass(): number;
83
+ /** The smallest half size of the shape: how far it may move in one sub-step without passing through anything. */
84
+ get minHalfExtent(): number;
85
+ /** The furthest the shape reaches from the centre: how far a corner sweeps as the body turns. */
86
+ get maxExtent(): number;
87
+ /** A box at no angle: the cheap axis-aligned tests apply to it. */
88
+ get axisAligned(): boolean;
89
+ updateBounds(): void;
90
+ /** Box corners in local space (top, right, bottom, left faces), or in world space when the box sits at no angle. */
91
+ private setBoxCorners;
92
+ wake(): void;
93
+ setVelocity(vx: number, vy: number): void;
94
+ /**
95
+ * An instant change of momentum (a jump, a hit): velocity changes by `impulse / mass`. Given a world point
96
+ * (`px`, `py`) off the centre, a body that rotates is also set turning.
97
+ */
98
+ applyImpulse(ix: number, iy: number, px?: number, py?: number): void;
99
+ /** A force held for the next step (thrust, wind); it is cleared once the step has used it. At a world point, it also turns the body. */
100
+ applyForce(fx: number, fy: number, px?: number, py?: number): void;
101
+ /** A turning force held for the next step (mass × px² / s², clockwise on screen when positive). */
102
+ applyTorque(torque: number): void;
103
+ /** An instant change of spin: angular velocity changes by `impulse / inertia`. */
104
+ applyAngularImpulse(impulse: number): void;
105
+ /** Sets the spin (a kinematic body turns at it; a dynamic one that rotates starts at it). */
106
+ setAngularVelocity(w: number): void;
107
+ /** Velocity of the body's material at a world point: its own plus what its spin adds there. */
108
+ velocityAt(px: number, py: number): {
109
+ x: number;
110
+ y: number;
111
+ };
112
+ /**
113
+ * Puts the body somewhere without sweeping it there; the drawn position jumps too (no interpolation across it).
114
+ * A static body moved this way must be followed by `PhysicsWorld.staticsChanged()`.
115
+ */
116
+ setPosition(x: number, y: number, angle?: number): void;
117
+ /** Turns the body to `angle` without sweeping it there (like `setPosition`). */
118
+ setAngle(angle: number): void;
119
+ /** A world point in the body's own frame (before its turn). */
120
+ toLocal(px: number, py: number): {
121
+ x: number;
122
+ y: number;
123
+ };
124
+ /** A point of the body's own frame in the world. */
125
+ toWorld(lx: number, ly: number): {
126
+ x: number;
127
+ y: number;
128
+ };
129
+ }
130
+ //# sourceMappingURL=Body.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Body.d.ts","sourceRoot":"","sources":["../../../src/physics/Body.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,26 @@
1
+ import type { Body } from './Body.js';
2
+ import { SpatialHash } from './SpatialHash.js';
3
+ /**
4
+ * Two spatial hashes: static bodies, rebuilt only when they change (a level's ground is thousands of tiles merged
5
+ * into a few hundred boxes and never moves), and everything else, rebuilt every sub-step. Pairs are found from the
6
+ * moving side only: two sleeping or static bodies are never tested against each other.
7
+ */
8
+ export declare class BroadPhase {
9
+ private readonly margin;
10
+ readonly statics: SpatialHash;
11
+ readonly movers: SpatialHash;
12
+ private staticsDirty;
13
+ constructor(cellSize: number, margin: number);
14
+ markStaticsDirty(): void;
15
+ /** Re-lists every body; statics only if they changed. Bounds must be current. */
16
+ rebuild(bodies: readonly Body[]): void;
17
+ /**
18
+ * Calls `visit` once for every pair whose bounds (grown by the margin) overlap and in which at least one body
19
+ * moves. A pair sharing several cells is visited only from the cell holding the corner of their overlap, which
20
+ * needs no set of pairs seen.
21
+ */
22
+ pairs(bodies: readonly Body[], visit: (a: Body, b: Body) => void): void;
23
+ /** The pair overlaps and (cx, cy) is the cell of its overlap's top-left corner. */
24
+ private owns;
25
+ }
26
+ //# sourceMappingURL=BroadPhase.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"BroadPhase.d.ts","sourceRoot":"","sources":["../../../src/physics/BroadPhase.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,QAAQ,CAAC;AACnC,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAE5C;;;;GAIG;AACH,qBAAa,UAAU;IAOnB,OAAO,CAAC,QAAQ,CAAC,MAAM;IANzB,QAAQ,CAAC,OAAO,EAAE,WAAW,CAAC;IAC9B,QAAQ,CAAC,MAAM,EAAE,WAAW,CAAC;IAC7B,OAAO,CAAC,YAAY,CAAQ;gBAG1B,QAAQ,EAAE,MAAM,EACC,MAAM,EAAE,MAAM;IAMjC,gBAAgB,IAAI,IAAI;IAIxB,iFAAiF;IACjF,OAAO,CAAC,MAAM,EAAE,SAAS,IAAI,EAAE,GAAG,IAAI;IAUtC;;;;OAIG;IACH,KAAK,CAAC,MAAM,EAAE,SAAS,IAAI,EAAE,EAAE,KAAK,EAAE,CAAC,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,KAAK,IAAI,GAAG,IAAI;IA0BvE,mFAAmF;IACnF,OAAO,CAAC,IAAI;CAMb"}
@@ -0,0 +1,62 @@
1
+ import type { Body } from './Body.js';
2
+ import type { ContactInfo, Vec2 } from './types.js';
3
+ /** One point of a contact and the solver's terms for it. */
4
+ export declare class ContactPoint {
5
+ /** World position when measured, and the depth there (px, < 0 a gap). */
6
+ x: number;
7
+ y: number;
8
+ depth: number;
9
+ /** Which corners or faces made it: matched from step to step to carry the impulses over. */
10
+ id: number;
11
+ /** Accumulated normal and friction impulses. */
12
+ jn: number;
13
+ jt: number;
14
+ /** Per sub-step solver terms. */
15
+ massN: number;
16
+ massT: number;
17
+ target: number;
18
+ /** Offsets from each body's centre, refreshed every sub-step. */
19
+ rax: number;
20
+ ray: number;
21
+ rbx: number;
22
+ rby: number;
23
+ /** The point in each body's own frame when measured, so position correction can track its depth as they move and turn. */
24
+ lax: number;
25
+ lay: number;
26
+ lbx: number;
27
+ lby: number;
28
+ }
29
+ /**
30
+ * One touching pair, kept from step to step while they touch: the impulses it ended the last step with start the
31
+ * next one (warm starting), which is what lets a stack settle in a few solver iterations instead of shivering.
32
+ */
33
+ export declare class Contact implements ContactInfo {
34
+ readonly a: Body;
35
+ readonly b: Body;
36
+ readonly key: number;
37
+ nx: number;
38
+ ny: number;
39
+ depth: number;
40
+ /** One or two points; only the first `count` are in use. */
41
+ readonly pts: [ContactPoint, ContactPoint];
42
+ count: number;
43
+ mu: number;
44
+ /** Solved this sub-step (false when the pre-solve hook turned it off). */
45
+ enabled: boolean;
46
+ /** The world step and sub-step that last found it. */
47
+ seenStep: number;
48
+ seenSub: number;
49
+ /** Reported as touching (a `begin` went out and no `end` yet). */
50
+ reported: boolean;
51
+ constructor(a: Body, b: Body, key: number);
52
+ get sensor(): boolean;
53
+ /** Where the two touch, world px. */
54
+ get points(): Vec2[];
55
+ /** Accumulated normal impulse over the points: how hard the pair pressed together on the last sub-step. */
56
+ get normalImpulse(): number;
57
+ /** The other body of the pair. */
58
+ other(body: Body): Body;
59
+ /** A stable number for the pair, whichever order it is asked in. */
60
+ static keyOf(a: Body, b: Body): number;
61
+ }
62
+ //# sourceMappingURL=Contact.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Contact.d.ts","sourceRoot":"","sources":["../../../src/physics/Contact.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,QAAQ,CAAC;AACnC,OAAO,KAAK,EAAE,WAAW,EAAE,IAAI,EAAE,MAAM,SAAS,CAAC;AAEjD,4DAA4D;AAC5D,qBAAa,YAAY;IACvB,yEAAyE;IACzE,CAAC,SAAK;IACN,CAAC,SAAK;IACN,KAAK,SAAK;IACV,4FAA4F;IAC5F,EAAE,SAAK;IACP,gDAAgD;IAChD,EAAE,SAAK;IACP,EAAE,SAAK;IACP,iCAAiC;IACjC,KAAK,SAAK;IACV,KAAK,SAAK;IACV,MAAM,SAAK;IACX,iEAAiE;IACjE,GAAG,SAAK;IACR,GAAG,SAAK;IACR,GAAG,SAAK;IACR,GAAG,SAAK;IACR,0HAA0H;IAC1H,GAAG,SAAK;IACR,GAAG,SAAK;IACR,GAAG,SAAK;IACR,GAAG,SAAK;CACT;AAED;;;GAGG;AACH,qBAAa,OAAQ,YAAW,WAAW;IAiBvC,QAAQ,CAAC,CAAC,EAAE,IAAI;IAChB,QAAQ,CAAC,CAAC,EAAE,IAAI;IAChB,QAAQ,CAAC,GAAG,EAAE,MAAM;IAlBtB,EAAE,SAAK;IACP,EAAE,SAAK;IACP,KAAK,SAAK;IACV,4DAA4D;IAC5D,QAAQ,CAAC,GAAG,EAAE,CAAC,YAAY,EAAE,YAAY,CAAC,CAA4C;IACtF,KAAK,SAAK;IACV,EAAE,SAAK;IACP,0EAA0E;IAC1E,OAAO,UAAQ;IACf,sDAAsD;IACtD,QAAQ,SAAM;IACd,OAAO,SAAM;IACb,kEAAkE;IAClE,QAAQ,UAAS;gBAGN,CAAC,EAAE,IAAI,EACP,CAAC,EAAE,IAAI,EACP,GAAG,EAAE,MAAM;IAGtB,IAAI,MAAM,IAAI,OAAO,CAEpB;IAED,qCAAqC;IACrC,IAAI,MAAM,IAAI,IAAI,EAAE,CAInB;IAED,2GAA2G;IAC3G,IAAI,aAAa,IAAI,MAAM,CAI1B;IAED,kCAAkC;IAClC,KAAK,CAAC,IAAI,EAAE,IAAI,GAAG,IAAI;IAIvB,oEAAoE;IACpE,MAAM,CAAC,KAAK,CAAC,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,GAAG,MAAM;CAKvC"}
@@ -0,0 +1,29 @@
1
+ import type { Contact } from './Contact.js';
2
+ /** Tuning the solver reads; `PhysicsWorld` owns the values. */
3
+ export interface SolverSettings {
4
+ /** Approach speed (px/s) below which nothing bounces, so a resting body does not hop on gravity's own step. */
5
+ restitutionThreshold: number;
6
+ /** Overlap (px) left alone by position correction: a little keeps resting contacts alive and steady. */
7
+ slop: number;
8
+ /** Share of the remaining overlap removed per position iteration. */
9
+ correction: number;
10
+ /** The most one position iteration moves a pair apart (px), so a deep overlap is undone over a few steps, not flung. */
11
+ maxCorrection: number;
12
+ }
13
+ /**
14
+ * Sequential impulses: each contact point is a normal constraint (no approach, plus bounce) and a friction constraint
15
+ * clamped by its normal impulse (Coulomb), applied at the point so a body that rotates is turned by it. Penetration
16
+ * is not fed back into the velocities (no Baumgarte energy): it is removed afterwards by moving positions and angles
17
+ * only, tracked as the bodies move (a "split impulse" in its simplest form), so resting bodies do not bounce off their
18
+ * own correction. Bodies that do not rotate have no inverse inertia, and every angular term drops out.
19
+ */
20
+ export declare class ContactSolver {
21
+ private readonly settings;
22
+ constructor(settings: SolverSettings);
23
+ /** Mass, friction and the velocity target of every enabled contact point; then the impulses carried over from the last sub-step are applied (warm start). */
24
+ prepare(contacts: readonly Contact[], dt: number): void;
25
+ solveVelocities(contacts: readonly Contact[]): void;
26
+ /** Pushes overlapping pairs apart along their normals, by position (and angle) only. */
27
+ solvePositions(contacts: readonly Contact[]): void;
28
+ }
29
+ //# sourceMappingURL=ContactSolver.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ContactSolver.d.ts","sourceRoot":"","sources":["../../../src/physics/ContactSolver.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,OAAO,EAAgB,MAAM,WAAW,CAAC;AAEvD,+DAA+D;AAC/D,MAAM,WAAW,cAAc;IAC7B,+GAA+G;IAC/G,oBAAoB,EAAE,MAAM,CAAC;IAC7B,wGAAwG;IACxG,IAAI,EAAE,MAAM,CAAC;IACb,qEAAqE;IACrE,UAAU,EAAE,MAAM,CAAC;IACnB,wHAAwH;IACxH,aAAa,EAAE,MAAM,CAAC;CACvB;AAOD;;;;;;GAMG;AACH,qBAAa,aAAa;IACZ,OAAO,CAAC,QAAQ,CAAC,QAAQ;gBAAR,QAAQ,EAAE,cAAc;IAErD,6JAA6J;IAC7J,OAAO,CAAC,QAAQ,EAAE,SAAS,OAAO,EAAE,EAAE,EAAE,EAAE,MAAM,GAAG,IAAI;IA0CvD,eAAe,CAAC,QAAQ,EAAE,SAAS,OAAO,EAAE,GAAG,IAAI;IAiCnD,wFAAwF;IACxF,cAAc,CAAC,QAAQ,EAAE,SAAS,OAAO,EAAE,GAAG,IAAI;CA0CnD"}
@@ -0,0 +1,78 @@
1
+ import { EventBus } from '../events/EventBus.js';
2
+ import { Body } from './Body.js';
3
+ import { Contact } from './Contact.js';
4
+ import type { PhysicsWorldOptions } from './PhysicsWorldOptions.js';
5
+ import type { BodyOptions, ContactInfo, PhysicsEvents, RayHit, RaycastOptions } from './types.js';
6
+ /**
7
+ * A rigid-body world for platformers and physics toys: dynamic, static and kinematic circles, boxes and convex
8
+ * polygons, turned by contacts when made with `rotates: true`, stepped at a fixed dt (`physicsSystem` runs it as a
9
+ * `fixed` system). Each step: forces and gravity (semi-implicit Euler), broad phase, narrow phase, sequential impulses
10
+ * with warm starting, then positions, then overlap removed by moving positions. Fast bodies are handled by
11
+ * sub-stepping, not swept tests.
12
+ *
13
+ * Not deterministic across machines: the solver's results depend on body order and floating point, which is fine for
14
+ * a single player's world but not for one a server must replay (use `net/movement` for that).
15
+ */
16
+ export declare class PhysicsWorld {
17
+ gravityX: number;
18
+ gravityY: number;
19
+ readonly events: EventBus<PhysicsEvents>;
20
+ /** Called for each touching solid pair every sub-step; returning false skips its response this sub-step (one-way platforms). */
21
+ preSolve: ((contact: Contact) => boolean) | null;
22
+ private readonly list;
23
+ private readonly broad;
24
+ private readonly solver;
25
+ private readonly contacts;
26
+ private readonly active;
27
+ private readonly manifold;
28
+ private readonly removals;
29
+ private readonly settings;
30
+ private readonly velocityIterations;
31
+ private readonly positionIterations;
32
+ private readonly maxSubsteps;
33
+ private readonly maxSpeed;
34
+ private readonly margin;
35
+ private readonly groundNormal;
36
+ private readonly allowSleep;
37
+ private readonly sleepSpeed;
38
+ private readonly sleepTime;
39
+ private stepCount;
40
+ private subCount;
41
+ private stepping;
42
+ constructor(options?: PhysicsWorldOptions);
43
+ /** Adds a body (or makes one from options) and returns it. */
44
+ add(body: Body | BodyOptions): Body;
45
+ addAll(bodies: Iterable<Body>): void;
46
+ /** Takes a body out; its contacts end (with `end` events). During a step it waits until the step is over. */
47
+ remove(body: Body): void;
48
+ /** Call after moving, resizing or retyping a static body by hand. */
49
+ staticsChanged(): void;
50
+ get bodyCount(): number;
51
+ /**
52
+ * Every body in the world, in the order added: for tools (a debug drawing, an inspector) that would otherwise keep
53
+ * a second list beside the world's. Read it, never hold it across a step: adding and removing change it in place.
54
+ */
55
+ get bodies(): readonly Body[];
56
+ /** Advances the world by `dt` seconds; call it with the fixed step (`FixedLoop.stepSeconds`). */
57
+ step(dt: number): void;
58
+ /** The first body on the segment from (x0, y0) to (x1, y1). Bodies the ray starts inside are skipped. */
59
+ raycast(x0: number, y0: number, x1: number, y1: number, options?: RaycastOptions): RayHit | null;
60
+ /** The pairs touching `body` after the last step (sensors' overlaps included). */
61
+ contactsOf(body: Body, out?: ContactInfo[]): ContactInfo[];
62
+ /** Whether `body` stood on something at the end of the last step (also `body.grounded`). */
63
+ isGrounded(body: Body): boolean;
64
+ private substepsFor;
65
+ private substep;
66
+ private readonly visitPair;
67
+ /**
68
+ * Copies the narrow phase's points into the contact, carrying each point's impulses over from the last sub-step
69
+ * when the same feature touches again (`warm`: the pair touched on the last sub-step).
70
+ */
71
+ private takeManifold;
72
+ /** A sleeping body wakes when something meets it faster than the sleep speed (a kinematic platform always does). */
73
+ private wakeOnImpact;
74
+ private updateSleep;
75
+ /** Ends pairs no longer touching, starts new ones, refreshes `grounded`, then emits the events. */
76
+ private finishContacts;
77
+ }
78
+ //# sourceMappingURL=PhysicsWorld.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"PhysicsWorld.d.ts","sourceRoot":"","sources":["../../../src/physics/PhysicsWorld.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,24 @@
1
+ import type { SolverSettings } from './ContactSolver.js';
2
+ /** Tuning for a `PhysicsWorld`; every field has a default fit for a platformer in pixels. */
3
+ export interface PhysicsWorldOptions extends Partial<SolverSettings> {
4
+ /** Px/s² (default 0, 980: y grows downwards, so positive y falls). */
5
+ gravityX?: number;
6
+ gravityY?: number;
7
+ /** Broad-phase cell size, px (default 64): about the size of a typical body or a few tiles. */
8
+ cellSize?: number;
9
+ velocityIterations?: number;
10
+ positionIterations?: number;
11
+ /** A step is split so no body moves more than its own smallest half size per sub-step, up to this many (default 16). */
12
+ maxSubsteps?: number;
13
+ /** No body moves faster than this, px/s (default 4000): the bound that makes the sub-steps above enough. */
14
+ maxSpeed?: number;
15
+ /** Gap (px) at which a pair already counts as touching (default 0.5). */
16
+ contactMargin?: number;
17
+ /** A contact normal with an upward share above this grounds a body (default 0.7, ground up to ~45°). */
18
+ groundNormal?: number;
19
+ /** Let bodies at rest stop being simulated until something touches them (default false). */
20
+ allowSleep?: boolean;
21
+ sleepSpeed?: number;
22
+ sleepTime?: number;
23
+ }
24
+ //# sourceMappingURL=PhysicsWorldOptions.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"PhysicsWorldOptions.d.ts","sourceRoot":"","sources":["../../../src/physics/PhysicsWorldOptions.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,iBAAiB,CAAC;AAEtD,6FAA6F;AAC7F,MAAM,WAAW,mBAAoB,SAAQ,OAAO,CAAC,cAAc,CAAC;IAClE,sEAAsE;IACtE,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,+FAA+F;IAC/F,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAC5B,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAC5B,wHAAwH;IACxH,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,4GAA4G;IAC5G,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,yEAAyE;IACzE,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,wGAAwG;IACxG,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,4FAA4F;IAC5F,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB"}