@thunderclap-engine/engine 0.0.0-stage → 1.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (566) hide show
  1. package/CHANGELOG.md +390 -0
  2. package/LICENSE +21 -0
  3. package/README.md +333 -2
  4. package/dist/analytics/analytics.d.ts +80 -0
  5. package/dist/analytics/analytics.js +129 -0
  6. package/dist/analytics/index.d.ts +1 -0
  7. package/dist/analytics/index.js +1 -0
  8. package/dist/anim/aim.d.ts +43 -0
  9. package/dist/anim/aim.js +157 -0
  10. package/dist/anim/clip.d.ts +98 -0
  11. package/dist/anim/clip.js +282 -0
  12. package/dist/anim/compress.d.ts +65 -0
  13. package/dist/anim/compress.js +339 -0
  14. package/dist/anim/foot-ik.d.ts +74 -0
  15. package/dist/anim/foot-ik.js +241 -0
  16. package/dist/anim/graph.d.ts +153 -0
  17. package/dist/anim/graph.js +532 -0
  18. package/dist/anim/ik.d.ts +105 -0
  19. package/dist/anim/ik.js +435 -0
  20. package/dist/anim/index.d.ts +36 -0
  21. package/dist/anim/index.js +21 -0
  22. package/dist/anim/match.d.ts +66 -0
  23. package/dist/anim/match.js +153 -0
  24. package/dist/anim/mixer.d.ts +113 -0
  25. package/dist/anim/mixer.js +314 -0
  26. package/dist/anim/morph.d.ts +41 -0
  27. package/dist/anim/morph.js +94 -0
  28. package/dist/anim/pose.d.ts +74 -0
  29. package/dist/anim/pose.js +254 -0
  30. package/dist/anim/quat.d.ts +44 -0
  31. package/dist/anim/quat.js +187 -0
  32. package/dist/anim/retarget.d.ts +97 -0
  33. package/dist/anim/retarget.js +366 -0
  34. package/dist/anim/root-motion.d.ts +44 -0
  35. package/dist/anim/root-motion.js +224 -0
  36. package/dist/anim/skin-pose.d.ts +39 -0
  37. package/dist/anim/skin-pose.js +53 -0
  38. package/dist/anim/socket.d.ts +47 -0
  39. package/dist/anim/socket.js +84 -0
  40. package/dist/anim/spring-chain.d.ts +73 -0
  41. package/dist/anim/spring-chain.js +294 -0
  42. package/dist/assets/atlas.d.ts +90 -0
  43. package/dist/assets/atlas.js +212 -0
  44. package/dist/assets/baked.d.ts +33 -0
  45. package/dist/assets/baked.js +38 -0
  46. package/dist/assets/bundle.d.ts +88 -0
  47. package/dist/assets/bundle.js +464 -0
  48. package/dist/assets/cache.d.ts +56 -0
  49. package/dist/assets/cache.js +123 -0
  50. package/dist/assets/gltf-load.d.ts +252 -0
  51. package/dist/assets/gltf-load.js +661 -0
  52. package/dist/assets/gltf-skin.d.ts +36 -0
  53. package/dist/assets/gltf-skin.js +109 -0
  54. package/dist/assets/gltf.d.ts +706 -0
  55. package/dist/assets/gltf.js +1376 -0
  56. package/dist/assets/index.d.ts +20 -0
  57. package/dist/assets/index.js +10 -0
  58. package/dist/assets/ktx2.d.ts +71 -0
  59. package/dist/assets/ktx2.js +213 -0
  60. package/dist/assets/manifest.d.ts +79 -0
  61. package/dist/assets/manifest.js +7 -0
  62. package/dist/assets/meshopt.d.ts +23 -0
  63. package/dist/assets/meshopt.js +403 -0
  64. package/dist/audio/audio.d.ts +733 -0
  65. package/dist/audio/audio.js +2013 -0
  66. package/dist/audio/dsp.d.ts +61 -0
  67. package/dist/audio/dsp.js +159 -0
  68. package/dist/audio/duck.d.ts +44 -0
  69. package/dist/audio/duck.js +101 -0
  70. package/dist/audio/envelope.d.ts +53 -0
  71. package/dist/audio/envelope.js +106 -0
  72. package/dist/audio/index.d.ts +13 -0
  73. package/dist/audio/index.js +14 -0
  74. package/dist/audio/music.d.ts +113 -0
  75. package/dist/audio/music.js +548 -0
  76. package/dist/audio/occlusion.d.ts +55 -0
  77. package/dist/audio/occlusion.js +61 -0
  78. package/dist/audio/persist.d.ts +23 -0
  79. package/dist/audio/persist.js +27 -0
  80. package/dist/audio/recipes.d.ts +55 -0
  81. package/dist/audio/recipes.js +227 -0
  82. package/dist/audio/send.d.ts +41 -0
  83. package/dist/audio/send.js +118 -0
  84. package/dist/audio/sprites.d.ts +59 -0
  85. package/dist/audio/sprites.js +43 -0
  86. package/dist/audio/synth.d.ts +103 -0
  87. package/dist/audio/synth.js +197 -0
  88. package/dist/audio/variations.d.ts +25 -0
  89. package/dist/audio/variations.js +55 -0
  90. package/dist/audio/zones.d.ts +100 -0
  91. package/dist/audio/zones.js +167 -0
  92. package/dist/core/detached-surface.d.ts +44 -0
  93. package/dist/core/detached-surface.js +104 -0
  94. package/dist/core/events.d.ts +24 -0
  95. package/dist/core/events.js +43 -0
  96. package/dist/core/game.d.ts +409 -0
  97. package/dist/core/game.js +530 -0
  98. package/dist/core/hash.d.ts +24 -0
  99. package/dist/core/hash.js +49 -0
  100. package/dist/core/index.d.ts +17 -0
  101. package/dist/core/index.js +9 -0
  102. package/dist/core/loop.d.ts +113 -0
  103. package/dist/core/loop.js +185 -0
  104. package/dist/core/math.d.ts +58 -0
  105. package/dist/core/math.js +210 -0
  106. package/dist/core/noise.d.ts +40 -0
  107. package/dist/core/noise.js +247 -0
  108. package/dist/core/pool.d.ts +42 -0
  109. package/dist/core/pool.js +85 -0
  110. package/dist/core/random.d.ts +61 -0
  111. package/dist/core/random.js +199 -0
  112. package/dist/core/scene.d.ts +79 -0
  113. package/dist/core/scene.js +195 -0
  114. package/dist/core/timer.d.ts +66 -0
  115. package/dist/core/timer.js +286 -0
  116. package/dist/fx/billboard-wgsl.d.ts +29 -0
  117. package/dist/fx/billboard-wgsl.js +158 -0
  118. package/dist/fx/billboard.d.ts +249 -0
  119. package/dist/fx/billboard.js +702 -0
  120. package/dist/fx/debug-draw.d.ts +127 -0
  121. package/dist/fx/debug-draw.js +523 -0
  122. package/dist/fx/debug-wgsl.d.ts +7 -0
  123. package/dist/fx/debug-wgsl.js +32 -0
  124. package/dist/fx/decals-wgsl.d.ts +15 -0
  125. package/dist/fx/decals-wgsl.js +173 -0
  126. package/dist/fx/decals.d.ts +216 -0
  127. package/dist/fx/decals.js +607 -0
  128. package/dist/fx/effect.d.ts +129 -0
  129. package/dist/fx/effect.js +349 -0
  130. package/dist/fx/effects/hit-spark.json +48 -0
  131. package/dist/fx/effects/index.d.ts +8 -0
  132. package/dist/fx/effects/index.js +9 -0
  133. package/dist/fx/effects/magic-aura.json +47 -0
  134. package/dist/fx/effects/smoke-puff.json +34 -0
  135. package/dist/fx/emit-surface.d.ts +40 -0
  136. package/dist/fx/emit-surface.js +124 -0
  137. package/dist/fx/flicker.d.ts +30 -0
  138. package/dist/fx/flicker.js +42 -0
  139. package/dist/fx/index.d.ts +31 -0
  140. package/dist/fx/index.js +20 -0
  141. package/dist/fx/particles-wgsl.d.ts +57 -0
  142. package/dist/fx/particles-wgsl.js +828 -0
  143. package/dist/fx/particles.d.ts +566 -0
  144. package/dist/fx/particles.js +1533 -0
  145. package/dist/fx/random.d.ts +15 -0
  146. package/dist/fx/random.js +20 -0
  147. package/dist/fx/sky-wgsl.d.ts +23 -0
  148. package/dist/fx/sky-wgsl.js +127 -0
  149. package/dist/fx/sky.d.ts +96 -0
  150. package/dist/fx/sky.js +175 -0
  151. package/dist/fx/text-atlas.d.ts +143 -0
  152. package/dist/fx/text-atlas.js +327 -0
  153. package/dist/fx/trail-wgsl.d.ts +11 -0
  154. package/dist/fx/trail-wgsl.js +42 -0
  155. package/dist/fx/trail.d.ts +194 -0
  156. package/dist/fx/trail.js +555 -0
  157. package/dist/fx/water-wgsl.d.ts +34 -0
  158. package/dist/fx/water-wgsl.js +197 -0
  159. package/dist/fx/water.d.ts +176 -0
  160. package/dist/fx/water.js +371 -0
  161. package/dist/geom/collide/bvh.d.ts +151 -0
  162. package/dist/geom/collide/bvh.js +493 -0
  163. package/dist/geom/collide/debug.d.ts +14 -0
  164. package/dist/geom/collide/debug.js +74 -0
  165. package/dist/geom/collide/grid.d.ts +26 -0
  166. package/dist/geom/collide/grid.js +91 -0
  167. package/dist/geom/collide/index.d.ts +8 -0
  168. package/dist/geom/collide/index.js +8 -0
  169. package/dist/geom/collide/queries.d.ts +70 -0
  170. package/dist/geom/collide/queries.js +583 -0
  171. package/dist/geom/collide/serialize.d.ts +14 -0
  172. package/dist/geom/collide/serialize.js +145 -0
  173. package/dist/geom/collide/shapes.d.ts +161 -0
  174. package/dist/geom/collide/shapes.js +686 -0
  175. package/dist/geom/collide/slide.d.ts +66 -0
  176. package/dist/geom/collide/slide.js +375 -0
  177. package/dist/geom/collide/tile-slide.d.ts +88 -0
  178. package/dist/geom/collide/tile-slide.js +255 -0
  179. package/dist/geom/geometry.d.ts +95 -0
  180. package/dist/geom/geometry.js +322 -0
  181. package/dist/geom/heightfield.d.ts +72 -0
  182. package/dist/geom/heightfield.js +295 -0
  183. package/dist/geom/hull.d.ts +27 -0
  184. package/dist/geom/hull.js +279 -0
  185. package/dist/geom/index.d.ts +35 -0
  186. package/dist/geom/index.js +23 -0
  187. package/dist/geom/iso.d.ts +74 -0
  188. package/dist/geom/iso.js +89 -0
  189. package/dist/geom/lod.d.ts +29 -0
  190. package/dist/geom/lod.js +27 -0
  191. package/dist/geom/ops.d.ts +47 -0
  192. package/dist/geom/ops.js +285 -0
  193. package/dist/geom/primitives.d.ts +97 -0
  194. package/dist/geom/primitives.js +359 -0
  195. package/dist/geom/shapes.d.ts +43 -0
  196. package/dist/geom/shapes.js +88 -0
  197. package/dist/geom/simplify.d.ts +38 -0
  198. package/dist/geom/simplify.js +519 -0
  199. package/dist/geom/split.d.ts +37 -0
  200. package/dist/geom/split.js +413 -0
  201. package/dist/geom/sweep.d.ts +83 -0
  202. package/dist/geom/sweep.js +534 -0
  203. package/dist/geom/tangents.d.ts +16 -0
  204. package/dist/geom/tangents.js +124 -0
  205. package/dist/geom/triangulate.d.ts +19 -0
  206. package/dist/geom/triangulate.js +147 -0
  207. package/dist/host/default.d.ts +10 -0
  208. package/dist/host/default.js +10 -0
  209. package/dist/host/index.d.ts +4 -0
  210. package/dist/host/index.js +3 -0
  211. package/dist/host/types.d.ts +144 -0
  212. package/dist/host/types.js +1 -0
  213. package/dist/host/web-links.d.ts +38 -0
  214. package/dist/host/web-links.js +110 -0
  215. package/dist/host/web.d.ts +30 -0
  216. package/dist/host/web.js +216 -0
  217. package/dist/host/xr.d.ts +24 -0
  218. package/dist/host/xr.js +59 -0
  219. package/dist/i18n/i18n.d.ts +59 -0
  220. package/dist/i18n/i18n.js +241 -0
  221. package/dist/i18n/index.d.ts +3 -0
  222. package/dist/i18n/index.js +3 -0
  223. package/dist/i18n/message.d.ts +72 -0
  224. package/dist/i18n/message.js +369 -0
  225. package/dist/i18n/negotiate.d.ts +17 -0
  226. package/dist/i18n/negotiate.js +58 -0
  227. package/dist/index.d.ts +7 -0
  228. package/dist/index.js +1 -0
  229. package/dist/input/bindings.d.ts +31 -0
  230. package/dist/input/bindings.js +141 -0
  231. package/dist/input/clock.d.ts +44 -0
  232. package/dist/input/clock.js +49 -0
  233. package/dist/input/follow.d.ts +133 -0
  234. package/dist/input/follow.js +218 -0
  235. package/dist/input/gestures.d.ts +281 -0
  236. package/dist/input/gestures.js +662 -0
  237. package/dist/input/glyphs.d.ts +35 -0
  238. package/dist/input/glyphs.js +216 -0
  239. package/dist/input/gyro.d.ts +85 -0
  240. package/dist/input/gyro.js +140 -0
  241. package/dist/input/index.d.ts +19 -0
  242. package/dist/input/index.js +16 -0
  243. package/dist/input/input.d.ts +543 -0
  244. package/dist/input/input.js +1492 -0
  245. package/dist/input/look.d.ts +327 -0
  246. package/dist/input/look.js +681 -0
  247. package/dist/input/magnify.d.ts +177 -0
  248. package/dist/input/magnify.js +131 -0
  249. package/dist/input/pointer-dispatch.d.ts +138 -0
  250. package/dist/input/pointer-dispatch.js +180 -0
  251. package/dist/input/pointer-router.d.ts +204 -0
  252. package/dist/input/pointer-router.js +533 -0
  253. package/dist/input/pointer-sources.d.ts +164 -0
  254. package/dist/input/pointer-sources.js +306 -0
  255. package/dist/input/rays.d.ts +138 -0
  256. package/dist/input/rays.js +615 -0
  257. package/dist/input/record.d.ts +209 -0
  258. package/dist/input/record.js +601 -0
  259. package/dist/input/touch-zones.d.ts +147 -0
  260. package/dist/input/touch-zones.js +300 -0
  261. package/dist/input/types.d.ts +158 -0
  262. package/dist/input/types.js +1 -0
  263. package/dist/input/xr-source.d.ts +53 -0
  264. package/dist/input/xr-source.js +164 -0
  265. package/dist/nav/astar.d.ts +45 -0
  266. package/dist/nav/astar.js +182 -0
  267. package/dist/nav/corridor.d.ts +40 -0
  268. package/dist/nav/corridor.js +95 -0
  269. package/dist/nav/crowd.d.ts +94 -0
  270. package/dist/nav/crowd.js +624 -0
  271. package/dist/nav/flow.d.ts +61 -0
  272. package/dist/nav/flow.js +193 -0
  273. package/dist/nav/grid.d.ts +108 -0
  274. package/dist/nav/grid.js +210 -0
  275. package/dist/nav/heap.d.ts +22 -0
  276. package/dist/nav/heap.js +92 -0
  277. package/dist/nav/index.d.ts +37 -0
  278. package/dist/nav/index.js +19 -0
  279. package/dist/nav/mesh/areas.d.ts +44 -0
  280. package/dist/nav/mesh/areas.js +98 -0
  281. package/dist/nav/mesh/bake-options.d.ts +33 -0
  282. package/dist/nav/mesh/bake-options.js +76 -0
  283. package/dist/nav/mesh/contour.d.ts +22 -0
  284. package/dist/nav/mesh/contour.js +323 -0
  285. package/dist/nav/mesh/flow3.d.ts +35 -0
  286. package/dist/nav/mesh/flow3.js +229 -0
  287. package/dist/nav/mesh/links.d.ts +38 -0
  288. package/dist/nav/mesh/links.js +72 -0
  289. package/dist/nav/mesh/mesh-path.d.ts +152 -0
  290. package/dist/nav/mesh/mesh-path.js +643 -0
  291. package/dist/nav/mesh/mesh-reach.d.ts +78 -0
  292. package/dist/nav/mesh/mesh-reach.js +450 -0
  293. package/dist/nav/mesh/navmesh.d.ts +117 -0
  294. package/dist/nav/mesh/navmesh.js +647 -0
  295. package/dist/nav/mesh/polymesh.d.ts +24 -0
  296. package/dist/nav/mesh/polymesh.js +384 -0
  297. package/dist/nav/mesh/regions.d.ts +12 -0
  298. package/dist/nav/mesh/regions.js +367 -0
  299. package/dist/nav/mesh/serialize.d.ts +13 -0
  300. package/dist/nav/mesh/serialize.js +197 -0
  301. package/dist/nav/mesh/voxelize.d.ts +111 -0
  302. package/dist/nav/mesh/voxelize.js +552 -0
  303. package/dist/nav/obstacles.d.ts +75 -0
  304. package/dist/nav/obstacles.js +294 -0
  305. package/dist/nav/path.d.ts +59 -0
  306. package/dist/nav/path.js +177 -0
  307. package/dist/nav/query-queue.d.ts +46 -0
  308. package/dist/nav/query-queue.js +308 -0
  309. package/dist/nav/reach.d.ts +53 -0
  310. package/dist/nav/reach.js +148 -0
  311. package/dist/nav/steer.d.ts +36 -0
  312. package/dist/nav/steer.js +78 -0
  313. package/dist/platform/boot.d.ts +28 -0
  314. package/dist/platform/boot.js +43 -0
  315. package/dist/platform/device-mode.d.ts +40 -0
  316. package/dist/platform/device-mode.js +104 -0
  317. package/dist/platform/device.d.ts +31 -0
  318. package/dist/platform/device.js +91 -0
  319. package/dist/platform/environment.d.ts +42 -0
  320. package/dist/platform/environment.js +82 -0
  321. package/dist/platform/gpu.d.ts +40 -0
  322. package/dist/platform/gpu.js +57 -0
  323. package/dist/platform/index.d.ts +18 -0
  324. package/dist/platform/index.js +10 -0
  325. package/dist/platform/letterbox.d.ts +43 -0
  326. package/dist/platform/letterbox.js +57 -0
  327. package/dist/platform/links.d.ts +20 -0
  328. package/dist/platform/links.js +43 -0
  329. package/dist/platform/screens.d.ts +36 -0
  330. package/dist/platform/screens.js +138 -0
  331. package/dist/platform/surface.d.ts +72 -0
  332. package/dist/platform/surface.js +157 -0
  333. package/dist/platform/xr-fake.d.ts +168 -0
  334. package/dist/platform/xr-fake.js +434 -0
  335. package/dist/platform/xr-surface.d.ts +120 -0
  336. package/dist/platform/xr-surface.js +214 -0
  337. package/dist/platform/xr-types.d.ts +262 -0
  338. package/dist/post/ao.d.ts +12 -0
  339. package/dist/post/ao.js +136 -0
  340. package/dist/post/blend.d.ts +27 -0
  341. package/dist/post/blend.js +129 -0
  342. package/dist/post/depth-pass.d.ts +43 -0
  343. package/dist/post/depth-pass.js +118 -0
  344. package/dist/post/dof.d.ts +1 -0
  345. package/dist/post/dof.js +66 -0
  346. package/dist/post/exposure.d.ts +80 -0
  347. package/dist/post/exposure.js +322 -0
  348. package/dist/post/index.d.ts +12 -0
  349. package/dist/post/index.js +11 -0
  350. package/dist/post/lens-dirt.d.ts +13 -0
  351. package/dist/post/lens-dirt.js +91 -0
  352. package/dist/post/lut.d.ts +19 -0
  353. package/dist/post/lut.js +50 -0
  354. package/dist/post/motion-blur.d.ts +9 -0
  355. package/dist/post/motion-blur.js +78 -0
  356. package/dist/post/post-stack.d.ts +302 -0
  357. package/dist/post/post-stack.js +1137 -0
  358. package/dist/post/settings.d.ts +485 -0
  359. package/dist/post/settings.js +416 -0
  360. package/dist/post/shaders.d.ts +25 -0
  361. package/dist/post/shaders.js +410 -0
  362. package/dist/post/ssr.d.ts +16 -0
  363. package/dist/post/ssr.js +155 -0
  364. package/dist/post/taa.d.ts +74 -0
  365. package/dist/post/taa.js +235 -0
  366. package/dist/post/white-balance.d.ts +25 -0
  367. package/dist/post/white-balance.js +98 -0
  368. package/dist/render/bindings.d.ts +98 -0
  369. package/dist/render/bindings.js +281 -0
  370. package/dist/render/blend.d.ts +13 -0
  371. package/dist/render/blend.js +26 -0
  372. package/dist/render/camera-2d.d.ts +72 -0
  373. package/dist/render/camera-2d.js +92 -0
  374. package/dist/render/camera.d.ts +302 -0
  375. package/dist/render/camera.js +671 -0
  376. package/dist/render/color.d.ts +16 -0
  377. package/dist/render/color.js +41 -0
  378. package/dist/render/compressed.d.ts +104 -0
  379. package/dist/render/compressed.js +248 -0
  380. package/dist/render/diagnostics.d.ts +15 -0
  381. package/dist/render/diagnostics.js +43 -0
  382. package/dist/render/dynamic-resolution.d.ts +70 -0
  383. package/dist/render/dynamic-resolution.js +126 -0
  384. package/dist/render/fake-gpu.d.ts +204 -0
  385. package/dist/render/fake-gpu.js +426 -0
  386. package/dist/render/flipbook.d.ts +56 -0
  387. package/dist/render/flipbook.js +87 -0
  388. package/dist/render/frame.d.ts +278 -0
  389. package/dist/render/frame.js +174 -0
  390. package/dist/render/fullscreen.d.ts +54 -0
  391. package/dist/render/fullscreen.js +91 -0
  392. package/dist/render/gpu-timer.d.ts +73 -0
  393. package/dist/render/gpu-timer.js +186 -0
  394. package/dist/render/index.d.ts +53 -0
  395. package/dist/render/index.js +29 -0
  396. package/dist/render/instance-list.d.ts +185 -0
  397. package/dist/render/instance-list.js +547 -0
  398. package/dist/render/lights.d.ts +181 -0
  399. package/dist/render/lights.js +233 -0
  400. package/dist/render/lod.d.ts +54 -0
  401. package/dist/render/lod.js +52 -0
  402. package/dist/render/material.d.ts +165 -0
  403. package/dist/render/material.js +292 -0
  404. package/dist/render/mesh.d.ts +284 -0
  405. package/dist/render/mesh.js +472 -0
  406. package/dist/render/mipmap.d.ts +16 -0
  407. package/dist/render/mipmap.js +121 -0
  408. package/dist/render/parallax.d.ts +50 -0
  409. package/dist/render/parallax.js +47 -0
  410. package/dist/render/pbr-wgsl.d.ts +31 -0
  411. package/dist/render/pbr-wgsl.js +119 -0
  412. package/dist/render/ping-pong.d.ts +42 -0
  413. package/dist/render/ping-pong.js +74 -0
  414. package/dist/render/renderer.d.ts +741 -0
  415. package/dist/render/renderer.js +2486 -0
  416. package/dist/render/scene-pipelines.d.ts +44 -0
  417. package/dist/render/scene-pipelines.js +92 -0
  418. package/dist/render/scene-target.d.ts +170 -0
  419. package/dist/render/scene-target.js +450 -0
  420. package/dist/render/shadow.d.ts +74 -0
  421. package/dist/render/shadow.js +208 -0
  422. package/dist/render/skin.d.ts +112 -0
  423. package/dist/render/skin.js +240 -0
  424. package/dist/render/snapshot.d.ts +36 -0
  425. package/dist/render/snapshot.js +34 -0
  426. package/dist/render/standard.d.ts +162 -0
  427. package/dist/render/standard.js +263 -0
  428. package/dist/render/texture.d.ts +142 -0
  429. package/dist/render/texture.js +228 -0
  430. package/dist/render/tile-layer.d.ts +110 -0
  431. package/dist/render/tile-layer.js +304 -0
  432. package/dist/render/transform.d.ts +115 -0
  433. package/dist/render/transform.js +318 -0
  434. package/dist/render/wgsl.d.ts +131 -0
  435. package/dist/render/wgsl.js +528 -0
  436. package/dist/save/codec.d.ts +49 -0
  437. package/dist/save/codec.js +169 -0
  438. package/dist/save/index.d.ts +8 -0
  439. package/dist/save/index.js +8 -0
  440. package/dist/save/journal.d.ts +24 -0
  441. package/dist/save/journal.js +102 -0
  442. package/dist/save/migrate.d.ts +15 -0
  443. package/dist/save/migrate.js +37 -0
  444. package/dist/save/schema.d.ts +72 -0
  445. package/dist/save/schema.js +154 -0
  446. package/dist/save/settings.d.ts +28 -0
  447. package/dist/save/settings.js +59 -0
  448. package/dist/save/slots.d.ts +56 -0
  449. package/dist/save/slots.js +200 -0
  450. package/dist/save/storage.d.ts +35 -0
  451. package/dist/save/storage.js +62 -0
  452. package/dist/save/store.d.ts +114 -0
  453. package/dist/save/store.js +269 -0
  454. package/dist/testing/fake-host.d.ts +103 -0
  455. package/dist/testing/fake-host.js +163 -0
  456. package/dist/testing/fixed-clock.d.ts +25 -0
  457. package/dist/testing/fixed-clock.js +30 -0
  458. package/dist/testing/index.d.ts +4 -0
  459. package/dist/testing/index.js +5 -0
  460. package/dist/testing/test-game.d.ts +76 -0
  461. package/dist/testing/test-game.js +92 -0
  462. package/dist/tween/ease.d.ts +77 -0
  463. package/dist/tween/ease.js +192 -0
  464. package/dist/tween/index.d.ts +8 -0
  465. package/dist/tween/index.js +7 -0
  466. package/dist/tween/timeline.d.ts +78 -0
  467. package/dist/tween/timeline.js +269 -0
  468. package/dist/tween/tween.d.ts +168 -0
  469. package/dist/tween/tween.js +320 -0
  470. package/dist/ui/anchor.d.ts +206 -0
  471. package/dist/ui/anchor.js +307 -0
  472. package/dist/ui/caption.d.ts +122 -0
  473. package/dist/ui/caption.js +286 -0
  474. package/dist/ui/cursor.d.ts +105 -0
  475. package/dist/ui/cursor.js +261 -0
  476. package/dist/ui/dom.d.ts +30 -0
  477. package/dist/ui/dom.js +92 -0
  478. package/dist/ui/floats.d.ts +86 -0
  479. package/dist/ui/floats.js +260 -0
  480. package/dist/ui/hud.d.ts +198 -0
  481. package/dist/ui/hud.js +431 -0
  482. package/dist/ui/index.d.ts +37 -0
  483. package/dist/ui/index.js +34 -0
  484. package/dist/ui/inventory-card.d.ts +52 -0
  485. package/dist/ui/inventory-card.js +173 -0
  486. package/dist/ui/inventory-context.d.ts +29 -0
  487. package/dist/ui/inventory-context.js +125 -0
  488. package/dist/ui/inventory-drag.d.ts +63 -0
  489. package/dist/ui/inventory-drag.js +394 -0
  490. package/dist/ui/inventory-grid.d.ts +66 -0
  491. package/dist/ui/inventory-grid.js +625 -0
  492. package/dist/ui/inventory-radial.d.ts +39 -0
  493. package/dist/ui/inventory-radial.js +168 -0
  494. package/dist/ui/inventory.d.ts +128 -0
  495. package/dist/ui/inventory.js +154 -0
  496. package/dist/ui/layout.d.ts +356 -0
  497. package/dist/ui/layout.js +856 -0
  498. package/dist/ui/link.d.ts +64 -0
  499. package/dist/ui/link.js +155 -0
  500. package/dist/ui/loading.d.ts +40 -0
  501. package/dist/ui/loading.js +157 -0
  502. package/dist/ui/loupe.d.ts +74 -0
  503. package/dist/ui/loupe.js +164 -0
  504. package/dist/ui/menu-nav.d.ts +33 -0
  505. package/dist/ui/menu-nav.js +28 -0
  506. package/dist/ui/minimap-canvas.d.ts +145 -0
  507. package/dist/ui/minimap-canvas.js +460 -0
  508. package/dist/ui/notify.d.ts +40 -0
  509. package/dist/ui/notify.js +141 -0
  510. package/dist/ui/orb.d.ts +53 -0
  511. package/dist/ui/orb.js +304 -0
  512. package/dist/ui/overlay.d.ts +213 -0
  513. package/dist/ui/overlay.js +394 -0
  514. package/dist/ui/padnav.d.ts +53 -0
  515. package/dist/ui/padnav.js +146 -0
  516. package/dist/ui/perf.d.ts +130 -0
  517. package/dist/ui/perf.js +329 -0
  518. package/dist/ui/rotate-card.d.ts +54 -0
  519. package/dist/ui/rotate-card.js +97 -0
  520. package/dist/ui/stack.d.ts +128 -0
  521. package/dist/ui/stack.js +312 -0
  522. package/dist/ui/styles.d.ts +13 -0
  523. package/dist/ui/styles.js +200 -0
  524. package/dist/ui/text-scale.d.ts +67 -0
  525. package/dist/ui/text-scale.js +102 -0
  526. package/dist/ui/theme.d.ts +70 -0
  527. package/dist/ui/theme.js +98 -0
  528. package/dist/ui/toast.d.ts +23 -0
  529. package/dist/ui/toast.js +46 -0
  530. package/dist/ui/tooltip.d.ts +89 -0
  531. package/dist/ui/tooltip.js +333 -0
  532. package/dist/ui/widgets-2.d.ts +134 -0
  533. package/dist/ui/widgets-2.js +399 -0
  534. package/dist/ui/widgets-3.d.ts +91 -0
  535. package/dist/ui/widgets-3.js +212 -0
  536. package/dist/ui/widgets.d.ts +34 -0
  537. package/dist/ui/widgets.js +50 -0
  538. package/dist/ui/world-panel/index.d.ts +5 -0
  539. package/dist/ui/world-panel/index.js +5 -0
  540. package/dist/ui/world-panel/layout.d.ts +38 -0
  541. package/dist/ui/world-panel/layout.js +68 -0
  542. package/dist/ui/world-panel/paint.d.ts +96 -0
  543. package/dist/ui/world-panel/paint.js +136 -0
  544. package/dist/ui/world-panel/panel.d.ts +235 -0
  545. package/dist/ui/world-panel/panel.js +762 -0
  546. package/dist/ui/world-panel/wgsl.d.ts +10 -0
  547. package/dist/ui/world-panel/wgsl.js +52 -0
  548. package/dist/ui/world-panel/widgets.d.ts +207 -0
  549. package/dist/ui/world-panel/widgets.js +569 -0
  550. package/dist/voxel/chunks.d.ts +77 -0
  551. package/dist/voxel/chunks.js +149 -0
  552. package/dist/voxel/grid.d.ts +84 -0
  553. package/dist/voxel/grid.js +223 -0
  554. package/dist/voxel/index.d.ts +22 -0
  555. package/dist/voxel/index.js +7 -0
  556. package/dist/voxel/mesher-worker.d.ts +14 -0
  557. package/dist/voxel/mesher-worker.js +47 -0
  558. package/dist/voxel/mesher.d.ts +73 -0
  559. package/dist/voxel/mesher.js +306 -0
  560. package/dist/voxel/ray.d.ts +32 -0
  561. package/dist/voxel/ray.js +73 -0
  562. package/dist/voxel/wgsl.d.ts +16 -0
  563. package/dist/voxel/wgsl.js +28 -0
  564. package/dist/voxel/worker-client.d.ts +79 -0
  565. package/dist/voxel/worker-client.js +122 -0
  566. package/package.json +177 -3
@@ -0,0 +1,384 @@
1
+ const REMOVABLE = 0x80000000;
2
+ const INDEX_MASK = 0x0fffffff;
3
+ function next(i, n) {
4
+ return i + 1 < n ? i + 1 : 0;
5
+ }
6
+ function prev(i, n) {
7
+ return i - 1 >= 0 ? i - 1 : n - 1;
8
+ }
9
+ /** Twice the signed area in XZ of contour vertices `a, b, c` (each an index × 4 into `v`). */
10
+ function area2(v, a, b, c) {
11
+ return (v[b] - v[a]) * (v[c + 2] - v[a + 2]) - (v[c] - v[a]) * (v[b + 2] - v[a + 2]);
12
+ }
13
+ function left(v, a, b, c) {
14
+ return area2(v, a, b, c) < 0;
15
+ }
16
+ function leftOn(v, a, b, c) {
17
+ return area2(v, a, b, c) <= 0;
18
+ }
19
+ function collinear(v, a, b, c) {
20
+ return area2(v, a, b, c) === 0;
21
+ }
22
+ function intersectProp(v, a, b, c, d) {
23
+ if (collinear(v, a, b, c) ||
24
+ collinear(v, a, b, d) ||
25
+ collinear(v, c, d, a) ||
26
+ collinear(v, c, d, b)) {
27
+ return false;
28
+ }
29
+ return left(v, a, b, c) !== left(v, a, b, d) && left(v, c, d, a) !== left(v, c, d, b);
30
+ }
31
+ function between(v, a, b, c) {
32
+ if (!collinear(v, a, b, c))
33
+ return false;
34
+ if (v[a] !== v[b]) {
35
+ return (v[a] <= v[c] && v[c] <= v[b]) || (v[a] >= v[c] && v[c] >= v[b]);
36
+ }
37
+ return ((v[a + 2] <= v[c + 2] && v[c + 2] <= v[b + 2]) ||
38
+ (v[a + 2] >= v[c + 2] && v[c + 2] >= v[b + 2]));
39
+ }
40
+ function intersect(v, a, b, c, d) {
41
+ if (intersectProp(v, a, b, c, d))
42
+ return true;
43
+ return between(v, a, b, c) || between(v, a, b, d) || between(v, c, d, a) || between(v, c, d, b);
44
+ }
45
+ function vequal(v, a, b) {
46
+ return v[a] === v[b] && v[a + 2] === v[b + 2];
47
+ }
48
+ function vi(indices, i) {
49
+ return (indices[i] & INDEX_MASK) * 4;
50
+ }
51
+ function diagonalie(i, j, n, v, indices, loose) {
52
+ const d0 = vi(indices, i);
53
+ const d1 = vi(indices, j);
54
+ for (let k = 0; k < n; k++) {
55
+ const k1 = next(k, n);
56
+ if (!(k === i || k1 === i || k === j || k1 === j)) {
57
+ const p0 = vi(indices, k);
58
+ const p1 = vi(indices, k1);
59
+ if (vequal(v, d0, p0) || vequal(v, d1, p0) || vequal(v, d0, p1) || vequal(v, d1, p1))
60
+ continue;
61
+ if (loose ? intersectProp(v, d0, d1, p0, p1) : intersect(v, d0, d1, p0, p1))
62
+ return false;
63
+ }
64
+ }
65
+ return true;
66
+ }
67
+ function inCone(i, j, n, v, indices, loose) {
68
+ const pi = vi(indices, i);
69
+ const pj = vi(indices, j);
70
+ const pi1 = vi(indices, next(i, n));
71
+ const pin1 = vi(indices, prev(i, n));
72
+ if (leftOn(v, pin1, pi, pi1)) {
73
+ return loose
74
+ ? leftOn(v, pi, pj, pin1) && leftOn(v, pj, pi, pi1)
75
+ : left(v, pi, pj, pin1) && left(v, pj, pi, pi1);
76
+ }
77
+ return !(leftOn(v, pi, pj, pi1) && leftOn(v, pj, pi, pin1));
78
+ }
79
+ function diagonal(i, j, n, v, indices, loose = false) {
80
+ return inCone(i, j, n, v, indices, loose) && diagonalie(i, j, n, v, indices, loose);
81
+ }
82
+ /** Ear-clips a contour into triangles of contour-vertex indices; negative when it had to give up. */
83
+ function triangulate(n0, v, indices, tris) {
84
+ let n = n0;
85
+ let ntris = 0;
86
+ let dst = 0;
87
+ for (let i = 0; i < n; i++) {
88
+ const i1 = next(i, n);
89
+ const i2 = next(i1, n);
90
+ if (diagonal(i, i2, n, v, indices))
91
+ indices[i1] = indices[i1] | REMOVABLE;
92
+ }
93
+ while (n > 3) {
94
+ let minLen = -1;
95
+ let mini = -1;
96
+ for (let i = 0; i < n; i++) {
97
+ const i1 = next(i, n);
98
+ if (indices[i1] & REMOVABLE) {
99
+ const p0 = vi(indices, i);
100
+ const p2 = vi(indices, next(i1, n));
101
+ const dx = v[p2] - v[p0];
102
+ const dz = v[p2 + 2] - v[p0 + 2];
103
+ const len = dx * dx + dz * dz;
104
+ if (minLen < 0 || len < minLen) {
105
+ minLen = len;
106
+ mini = i;
107
+ }
108
+ }
109
+ }
110
+ if (mini === -1) {
111
+ minLen = -1;
112
+ for (let i = 0; i < n; i++) {
113
+ const i1 = next(i, n);
114
+ const i2 = next(i1, n);
115
+ if (diagonal(i, i2, n, v, indices, true)) {
116
+ const p0 = vi(indices, i);
117
+ const p2 = vi(indices, i2);
118
+ const dx = v[p2] - v[p0];
119
+ const dz = v[p2 + 2] - v[p0 + 2];
120
+ const len = dx * dx + dz * dz;
121
+ if (minLen < 0 || len < minLen) {
122
+ minLen = len;
123
+ mini = i;
124
+ }
125
+ }
126
+ }
127
+ if (mini === -1)
128
+ return -ntris;
129
+ }
130
+ let i = mini;
131
+ let i1 = next(i, n);
132
+ const i2 = next(i1, n);
133
+ tris[dst++] = indices[i] & INDEX_MASK;
134
+ tris[dst++] = indices[i1] & INDEX_MASK;
135
+ tris[dst++] = indices[i2] & INDEX_MASK;
136
+ ntris++;
137
+ n--;
138
+ for (let k = i1; k < n; k++)
139
+ indices[k] = indices[k + 1];
140
+ if (i1 >= n)
141
+ i1 = 0;
142
+ i = prev(i1, n);
143
+ if (diagonal(prev(i, n), i1, n, v, indices))
144
+ indices[i] = indices[i] | REMOVABLE;
145
+ else
146
+ indices[i] = indices[i] & INDEX_MASK;
147
+ if (diagonal(i, next(i1, n), n, v, indices))
148
+ indices[i1] = indices[i1] | REMOVABLE;
149
+ else
150
+ indices[i1] = indices[i1] & INDEX_MASK;
151
+ }
152
+ tris[dst++] = indices[0] & INDEX_MASK;
153
+ tris[dst++] = indices[1] & INDEX_MASK;
154
+ tris[dst++] = indices[2] & INDEX_MASK;
155
+ ntris++;
156
+ return ntris;
157
+ }
158
+ function countPolyVerts(polys, p, nvp) {
159
+ for (let i = 0; i < nvp; i++)
160
+ if (polys[p + i] === -1)
161
+ return i;
162
+ return nvp;
163
+ }
164
+ function uleft(verts, a, b, c) {
165
+ return ((verts[b * 3] - verts[a * 3]) * (verts[c * 3 + 2] - verts[a * 3 + 2]) -
166
+ (verts[c * 3] - verts[a * 3]) * (verts[b * 3 + 2] - verts[a * 3 + 2]) <
167
+ 0);
168
+ }
169
+ const mergeEdge = [0, 0];
170
+ /** The squared length of the shared edge when `pa` and `pb` can merge into a convex polygon, else -1. */
171
+ function polyMergeValue(polys, pa, pb, verts, nvp) {
172
+ const na = countPolyVerts(polys, pa, nvp);
173
+ const nb = countPolyVerts(polys, pb, nvp);
174
+ if (na + nb - 2 > nvp)
175
+ return -1;
176
+ let ea = -1;
177
+ let eb = -1;
178
+ for (let i = 0; i < na && ea === -1; i++) {
179
+ let va0 = polys[pa + i];
180
+ let va1 = polys[pa + ((i + 1) % na)];
181
+ if (va0 > va1) {
182
+ const t = va0;
183
+ va0 = va1;
184
+ va1 = t;
185
+ }
186
+ for (let j = 0; j < nb; j++) {
187
+ let vb0 = polys[pb + j];
188
+ let vb1 = polys[pb + ((j + 1) % nb)];
189
+ if (vb0 > vb1) {
190
+ const t = vb0;
191
+ vb0 = vb1;
192
+ vb1 = t;
193
+ }
194
+ if (va0 === vb0 && va1 === vb1) {
195
+ ea = i;
196
+ eb = j;
197
+ break;
198
+ }
199
+ }
200
+ }
201
+ if (ea === -1 || eb === -1)
202
+ return -1;
203
+ let va = polys[pa + ((ea + na - 1) % na)];
204
+ let vb = polys[pa + ea];
205
+ let vc = polys[pb + ((eb + 2) % nb)];
206
+ if (!uleft(verts, va, vb, vc))
207
+ return -1;
208
+ va = polys[pb + ((eb + nb - 1) % nb)];
209
+ vb = polys[pb + eb];
210
+ vc = polys[pa + ((ea + 2) % na)];
211
+ if (!uleft(verts, va, vb, vc))
212
+ return -1;
213
+ va = polys[pa + ea];
214
+ vb = polys[pa + ((ea + 1) % na)];
215
+ const dx = verts[va * 3] - verts[vb * 3];
216
+ const dz = verts[va * 3 + 2] - verts[vb * 3 + 2];
217
+ mergeEdge[0] = ea;
218
+ mergeEdge[1] = eb;
219
+ return dx * dx + dz * dz;
220
+ }
221
+ function mergePolyVerts(polys, pa, pb, ea, eb, tmp, nvp) {
222
+ const na = countPolyVerts(polys, pa, nvp);
223
+ const nb = countPolyVerts(polys, pb, nvp);
224
+ tmp.fill(-1);
225
+ let n = 0;
226
+ for (let i = 0; i < na - 1; i++)
227
+ tmp[n++] = polys[pa + ((ea + 1 + i) % na)];
228
+ for (let i = 0; i < nb - 1; i++)
229
+ tmp[n++] = polys[pb + ((eb + 1 + i) % nb)];
230
+ for (let i = 0; i < nvp; i++)
231
+ polys[pa + i] = tmp[i];
232
+ }
233
+ function buildAdjacency(mesh) {
234
+ const nvp = mesh.maxVertsPerPoly;
235
+ const edgeOf = new Map();
236
+ const nv = mesh.vertCount;
237
+ mesh.adjacency.fill(-1);
238
+ for (let p = 0; p < mesh.polyCount; p++) {
239
+ const n = countPolyVerts(mesh.polys, p * nvp, nvp);
240
+ for (let e = 0; e < n; e++) {
241
+ const v0 = mesh.polys[p * nvp + e];
242
+ const v1 = mesh.polys[p * nvp + ((e + 1) % n)];
243
+ const key = v0 < v1 ? v0 * nv + v1 : v1 * nv + v0;
244
+ const other = edgeOf.get(key);
245
+ if (other === undefined) {
246
+ edgeOf.set(key, p * nvp + e);
247
+ }
248
+ else {
249
+ const op = Math.floor(other / nvp);
250
+ if (op !== p) {
251
+ mesh.adjacency[p * nvp + e] = op;
252
+ mesh.adjacency[other] = p;
253
+ }
254
+ }
255
+ }
256
+ }
257
+ }
258
+ /** Builds the polygon mesh from the contours. `maxVertsPerPoly` is 3..6. */
259
+ export function buildPolyMesh(contours, maxVertsPerPoly) {
260
+ const nvp = maxVertsPerPoly;
261
+ let maxVertices = 0;
262
+ let maxTris = 0;
263
+ let maxVertsPerCont = 0;
264
+ for (const c of contours) {
265
+ const n = c.verts.length / 4;
266
+ if (n < 3)
267
+ continue;
268
+ maxVertices += n;
269
+ maxTris += n - 2;
270
+ maxVertsPerCont = Math.max(maxVertsPerCont, n);
271
+ }
272
+ const mesh = {
273
+ verts: new Int32Array(Math.max(1, maxVertices) * 3),
274
+ vertCount: 0,
275
+ polys: new Int32Array(Math.max(1, maxTris) * nvp).fill(-1),
276
+ adjacency: new Int32Array(Math.max(1, maxTris) * nvp).fill(-1),
277
+ regs: new Uint16Array(Math.max(1, maxTris)),
278
+ areas: new Uint8Array(Math.max(1, maxTris)),
279
+ polyCount: 0,
280
+ maxVertsPerPoly: nvp,
281
+ };
282
+ if (maxVertsPerCont === 0)
283
+ return mesh;
284
+ const vertexOf = new Map();
285
+ const addVertex = (x, y, z) => {
286
+ // Vertices stack: the same (x, z) within two cells of height is one vertex.
287
+ const key = x * 0x100000 + z;
288
+ let base = vertexOf.get(key);
289
+ while (base !== undefined) {
290
+ if (Math.abs(mesh.verts[base * 3 + 1] - y) <= 2)
291
+ return base;
292
+ // Another level at the same column: chain through a second key.
293
+ const chained = vertexOf.get(-(base + 1));
294
+ if (chained === undefined) {
295
+ const i = mesh.vertCount++;
296
+ mesh.verts[i * 3] = x;
297
+ mesh.verts[i * 3 + 1] = y;
298
+ mesh.verts[i * 3 + 2] = z;
299
+ vertexOf.set(-(base + 1), i);
300
+ return i;
301
+ }
302
+ base = chained;
303
+ }
304
+ const i = mesh.vertCount++;
305
+ mesh.verts[i * 3] = x;
306
+ mesh.verts[i * 3 + 1] = y;
307
+ mesh.verts[i * 3 + 2] = z;
308
+ vertexOf.set(key, i);
309
+ return i;
310
+ };
311
+ const indices = new Int32Array(maxVertsPerCont);
312
+ const tris = new Int32Array(maxVertsPerCont * 3);
313
+ const polys = new Int32Array((maxVertsPerCont + 1) * nvp);
314
+ const tmpPoly = new Int32Array(nvp);
315
+ for (const cont of contours) {
316
+ const n = cont.verts.length / 4;
317
+ if (n < 3)
318
+ continue;
319
+ for (let j = 0; j < n; j++)
320
+ indices[j] = j;
321
+ let ntris = triangulate(n, cont.verts, indices, tris);
322
+ if (ntris <= 0)
323
+ ntris = -ntris;
324
+ for (let j = 0; j < n; j++) {
325
+ indices[j] = addVertex(cont.verts[j * 4], cont.verts[j * 4 + 1], cont.verts[j * 4 + 2]);
326
+ }
327
+ let npolys = 0;
328
+ polys.fill(-1);
329
+ for (let j = 0; j < ntris; j++) {
330
+ const a = tris[j * 3];
331
+ const b = tris[j * 3 + 1];
332
+ const c = tris[j * 3 + 2];
333
+ if (a !== b && a !== c && b !== c) {
334
+ polys[npolys * nvp] = indices[a];
335
+ polys[npolys * nvp + 1] = indices[b];
336
+ polys[npolys * nvp + 2] = indices[c];
337
+ npolys++;
338
+ }
339
+ }
340
+ if (npolys === 0)
341
+ continue;
342
+ if (nvp > 3) {
343
+ for (;;) {
344
+ let bestMergeVal = 0;
345
+ let bestPa = 0;
346
+ let bestPb = 0;
347
+ let bestEa = 0;
348
+ let bestEb = 0;
349
+ for (let j = 0; j < npolys - 1; j++) {
350
+ for (let k = j + 1; k < npolys; k++) {
351
+ const v = polyMergeValue(polys, j * nvp, k * nvp, mesh.verts, nvp);
352
+ if (v > bestMergeVal) {
353
+ bestMergeVal = v;
354
+ bestPa = j;
355
+ bestPb = k;
356
+ bestEa = mergeEdge[0];
357
+ bestEb = mergeEdge[1];
358
+ }
359
+ }
360
+ }
361
+ if (bestMergeVal <= 0)
362
+ break;
363
+ mergePolyVerts(polys, bestPa * nvp, bestPb * nvp, bestEa, bestEb, tmpPoly, nvp);
364
+ const last = (npolys - 1) * nvp;
365
+ if (bestPb * nvp !== last) {
366
+ for (let i = 0; i < nvp; i++)
367
+ polys[bestPb * nvp + i] = polys[last + i];
368
+ }
369
+ npolys--;
370
+ }
371
+ }
372
+ for (let j = 0; j < npolys; j++) {
373
+ const p = mesh.polyCount * nvp;
374
+ for (let k = 0; k < nvp; k++)
375
+ mesh.polys[p + k] = polys[j * nvp + k];
376
+ mesh.regs[mesh.polyCount] = cont.reg;
377
+ mesh.areas[mesh.polyCount] = cont.area;
378
+ mesh.polyCount++;
379
+ }
380
+ }
381
+ buildAdjacency(mesh);
382
+ return mesh;
383
+ }
384
+ export { countPolyVerts };
@@ -0,0 +1,12 @@
1
+ /**
2
+ * Navmesh bake, stage two: regions. A monotone sweep gives every walkable span a region such
3
+ * that no region has a hole; small regions then merge into a neighbour when the merge stays
4
+ * hole-free, and islands below `minRegionArea` are dropped. Recast's `rcBuildRegionsMonotone`
5
+ * and `mergeAndFilterRegions`, in cells.
6
+ */
7
+ import { type CompactHeightfield } from './voxelize.js';
8
+ /**
9
+ * Assigns a region to every walkable span (`chf.regs`; 0 is none) and sets `chf.maxRegions`.
10
+ * `minRegionArea` and `mergeRegionArea` are in cells.
11
+ */
12
+ export declare function buildRegions(chf: CompactHeightfield, minRegionArea: number, mergeRegionArea: number): void;