@spawnite/engine 0.1.0-beta.15

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 (2563) hide show
  1. package/LICENSE.md +169 -0
  2. package/README.md +92 -0
  3. package/dist/-MLBVTaO.js +1 -0
  4. package/dist/28wIPE7L.js +1 -0
  5. package/dist/3rj0AvB6.js +1 -0
  6. package/dist/5L-NcwKR.js +1 -0
  7. package/dist/B-qLcgSf.js +1 -0
  8. package/dist/B0WN1jqX.js +41 -0
  9. package/dist/B1OUgdbN.js +1 -0
  10. package/dist/BEL83Bb6.js +1 -0
  11. package/dist/BGDOC3Q-.js +1 -0
  12. package/dist/BGM1SnEr.js +1 -0
  13. package/dist/BH6Ftfg9.js +1 -0
  14. package/dist/BJIJuxaE.js +1 -0
  15. package/dist/BJclgjKG.js +1 -0
  16. package/dist/BKc2k2s6.js +1 -0
  17. package/dist/BLB4-b4b.js +2 -0
  18. package/dist/BQnBIIt8.js +1 -0
  19. package/dist/BR3nbYwS.js +7 -0
  20. package/dist/BV9hGHeu.js +623 -0
  21. package/dist/BWOKsReG.js +1 -0
  22. package/dist/BWlq9jqw.js +1 -0
  23. package/dist/BXmxKBbF.js +3 -0
  24. package/dist/BYXhtwWy.js +1 -0
  25. package/dist/B_HFa2lJ.js +1 -0
  26. package/dist/BciVglt5.js +1 -0
  27. package/dist/Bfg1Y9_2.js +1 -0
  28. package/dist/Bh-CVkQx.js +1 -0
  29. package/dist/BiH9xCBB.js +1 -0
  30. package/dist/BobsCMiL.js +9 -0
  31. package/dist/Bp238wbZ.js +1 -0
  32. package/dist/Bpe0g5hX.js +1 -0
  33. package/dist/BrfUaL46.js +2 -0
  34. package/dist/Bw06YsIc.js +1 -0
  35. package/dist/Bydoy8wO.js +1 -0
  36. package/dist/BzaiZux2.js +1 -0
  37. package/dist/C25qqozO.js +1 -0
  38. package/dist/C6Ja5Z7G.js +1 -0
  39. package/dist/CCh4CnV9.js +1 -0
  40. package/dist/CEuuijY1.js +1 -0
  41. package/dist/CHntUxHl.js +1 -0
  42. package/dist/CIq9KviM.js +1 -0
  43. package/dist/CQPA3y5T.js +1 -0
  44. package/dist/CRfoqBKG.js +1 -0
  45. package/dist/CSXcU95U.js +1 -0
  46. package/dist/CU0epHFG.js +3 -0
  47. package/dist/CVgRrBP4.js +1 -0
  48. package/dist/CZV99t6a.js +7 -0
  49. package/dist/Cg33N9Ej.js +1 -0
  50. package/dist/Chcm92bZ.js +1 -0
  51. package/dist/CjiCdqiE.js +2 -0
  52. package/dist/Cp5beIll.js +1 -0
  53. package/dist/Cq6VqPHb.js +2 -0
  54. package/dist/CwZDkslT.js +1 -0
  55. package/dist/D3Y2LHFe.js +1 -0
  56. package/dist/D3wyrZ2_.js +1 -0
  57. package/dist/D8jIS84n.js +1 -0
  58. package/dist/DCIejHqp.js +1 -0
  59. package/dist/DHsBnfoU.js +1 -0
  60. package/dist/DJSpRhXB.js +1 -0
  61. package/dist/DOeUeeKs.js +1 -0
  62. package/dist/DR9bHgf0.js +1 -0
  63. package/dist/DRnuSAbu.js +1 -0
  64. package/dist/DSb1ApLU.js +1 -0
  65. package/dist/DXtppcZ7.js +1 -0
  66. package/dist/DZIhHLUn.js +1 -0
  67. package/dist/DgMhVbMU.js +1 -0
  68. package/dist/Dh5kh1nX.js +1 -0
  69. package/dist/DiGFL8kd.js +1 -0
  70. package/dist/DkKmurqu.js +1 -0
  71. package/dist/DlkDsMQd.js +1 -0
  72. package/dist/DnNEzpz-.js +1 -0
  73. package/dist/Dqx9hHBK.js +1 -0
  74. package/dist/DsgWLyZo.js +1 -0
  75. package/dist/DucRBEvN.js +1 -0
  76. package/dist/Dwcms3jX.js +1 -0
  77. package/dist/Dwfie-ev.js +1 -0
  78. package/dist/DyHjwN2H.js +1 -0
  79. package/dist/SMby3e6M.js +4 -0
  80. package/dist/THIRD-PARTY-NOTICES +329 -0
  81. package/dist/UJDr3Nrd.js +1 -0
  82. package/dist/V70ADx0g.js +2 -0
  83. package/dist/abilities.d.ts +1 -0
  84. package/dist/abilities.js +1 -0
  85. package/dist/core.d.ts +1 -0
  86. package/dist/core.js +1 -0
  87. package/dist/devtools.d.ts +1 -0
  88. package/dist/devtools.js +1 -0
  89. package/dist/dragAndDrop.d.ts +1 -0
  90. package/dist/dragAndDrop.js +1 -0
  91. package/dist/eYC1fQo5.js +1 -0
  92. package/dist/eslint.js +1 -0
  93. package/dist/hQBGE7c4.js +1 -0
  94. package/dist/index.d.ts +1 -0
  95. package/dist/index.js +297 -0
  96. package/dist/internal/cli.js +1 -0
  97. package/dist/internal/devServer.js +2 -0
  98. package/dist/internal/devtools.js +1 -0
  99. package/dist/internal/room.js +1 -0
  100. package/dist/inventory.d.ts +1 -0
  101. package/dist/inventory.js +1 -0
  102. package/dist/jMKXPXIH.js +33 -0
  103. package/dist/looks/dusk.d.ts +1 -0
  104. package/dist/looks/dusk.js +1 -0
  105. package/dist/looks/morning.d.ts +1 -0
  106. package/dist/looks/morning.js +1 -0
  107. package/dist/looks/night.d.ts +1 -0
  108. package/dist/looks/night.js +1 -0
  109. package/dist/looks/noon.d.ts +1 -0
  110. package/dist/looks/noon.js +1 -0
  111. package/dist/looks/overcast.d.ts +1 -0
  112. package/dist/looks/overcast.js +1 -0
  113. package/dist/npcs.d.ts +1 -0
  114. package/dist/npcs.js +1 -0
  115. package/dist/public.d.ts +18818 -0
  116. package/dist/replay.d.ts +1 -0
  117. package/dist/replay.js +1 -0
  118. package/dist/testing.d.ts +542 -0
  119. package/dist/testing.js +1 -0
  120. package/dist/three.d.ts +1 -0
  121. package/dist/three.js +1 -0
  122. package/dist/tracks.d.ts +1 -0
  123. package/dist/tracks.js +1 -0
  124. package/dist/vite.d.ts +123 -0
  125. package/dist/vite.js +1 -0
  126. package/dist/weapons.d.ts +1 -0
  127. package/dist/weapons.js +1 -0
  128. package/dist/wiki/engine/ai/metadata.md +143 -0
  129. package/dist/wiki/engine/audio/sound.md +72 -0
  130. package/dist/wiki/engine/audio/voice.md +153 -0
  131. package/dist/wiki/engine/behaviours/abilities.md +328 -0
  132. package/dist/wiki/engine/behaviours/bob.md +37 -0
  133. package/dist/wiki/engine/behaviours/chase.md +158 -0
  134. package/dist/wiki/engine/behaviours/cooldowns.md +83 -0
  135. package/dist/wiki/engine/behaviours/dialog.md +172 -0
  136. package/dist/wiki/engine/behaviours/health.md +330 -0
  137. package/dist/wiki/engine/behaviours/interact.md +41 -0
  138. package/dist/wiki/engine/behaviours/inventory.md +266 -0
  139. package/dist/wiki/engine/behaviours/loot.md +90 -0
  140. package/dist/wiki/engine/behaviours/pickup.md +149 -0
  141. package/dist/wiki/engine/behaviours/resources.md +274 -0
  142. package/dist/wiki/engine/behaviours/routines.md +99 -0
  143. package/dist/wiki/engine/behaviours/spin.md +36 -0
  144. package/dist/wiki/engine/behaviours/stats.md +220 -0
  145. package/dist/wiki/engine/behaviours/targeting.md +155 -0
  146. package/dist/wiki/engine/behaviours/track-mover.md +121 -0
  147. package/dist/wiki/engine/behaviours/track-trigger.md +117 -0
  148. package/dist/wiki/engine/behaviours/trigger.md +158 -0
  149. package/dist/wiki/engine/behaviours/weapon.md +462 -0
  150. package/dist/wiki/engine/entities/camera.md +326 -0
  151. package/dist/wiki/engine/entities/entity.mdx +1063 -0
  152. package/dist/wiki/engine/entities/npc.md +64 -0
  153. package/dist/wiki/engine/entities/player.md +435 -0
  154. package/dist/wiki/engine/errors/SP0001.md +20 -0
  155. package/dist/wiki/engine/errors/SP0002.md +20 -0
  156. package/dist/wiki/engine/errors/SP0003.md +20 -0
  157. package/dist/wiki/engine/errors/SP0008.md +20 -0
  158. package/dist/wiki/engine/errors/SP0009.md +20 -0
  159. package/dist/wiki/engine/errors/SP0010.md +20 -0
  160. package/dist/wiki/engine/errors/SP0011.md +20 -0
  161. package/dist/wiki/engine/errors/SP0014.md +20 -0
  162. package/dist/wiki/engine/errors/SP0015.md +20 -0
  163. package/dist/wiki/engine/errors/SP0016.md +20 -0
  164. package/dist/wiki/engine/errors/SP0017.md +20 -0
  165. package/dist/wiki/engine/errors/SP0018.md +20 -0
  166. package/dist/wiki/engine/errors/SP0019.md +20 -0
  167. package/dist/wiki/engine/errors/SP0020.md +20 -0
  168. package/dist/wiki/engine/errors/SP0021.md +20 -0
  169. package/dist/wiki/engine/errors/SP0022.md +20 -0
  170. package/dist/wiki/engine/errors/SP0023.md +20 -0
  171. package/dist/wiki/engine/errors/SP0024.md +20 -0
  172. package/dist/wiki/engine/errors/SP0025.md +20 -0
  173. package/dist/wiki/engine/errors/SP0026.md +22 -0
  174. package/dist/wiki/engine/errors/SP0027.md +20 -0
  175. package/dist/wiki/engine/errors/SP0028.md +20 -0
  176. package/dist/wiki/engine/errors/SP0029.md +20 -0
  177. package/dist/wiki/engine/errors/SP0030.md +20 -0
  178. package/dist/wiki/engine/errors/SP0031.md +20 -0
  179. package/dist/wiki/engine/errors/SP0034.md +20 -0
  180. package/dist/wiki/engine/errors/SP0035.md +20 -0
  181. package/dist/wiki/engine/errors/SP0036.md +20 -0
  182. package/dist/wiki/engine/errors/SP0037.md +20 -0
  183. package/dist/wiki/engine/errors/SP0038.md +20 -0
  184. package/dist/wiki/engine/errors/SP0039.md +20 -0
  185. package/dist/wiki/engine/errors/SP0040.md +20 -0
  186. package/dist/wiki/engine/errors/SP0041.md +20 -0
  187. package/dist/wiki/engine/errors/SP0042.md +20 -0
  188. package/dist/wiki/engine/errors/SP0043.md +20 -0
  189. package/dist/wiki/engine/errors/SP0045.md +20 -0
  190. package/dist/wiki/engine/errors/SP0046.md +20 -0
  191. package/dist/wiki/engine/errors/SP0047.md +20 -0
  192. package/dist/wiki/engine/errors/SP0048.md +20 -0
  193. package/dist/wiki/engine/errors/SP0049.md +20 -0
  194. package/dist/wiki/engine/errors/SP0050.md +20 -0
  195. package/dist/wiki/engine/errors/SP0051.md +20 -0
  196. package/dist/wiki/engine/errors/SP0052.md +20 -0
  197. package/dist/wiki/engine/errors/SP0053.md +20 -0
  198. package/dist/wiki/engine/errors/SP0054.md +20 -0
  199. package/dist/wiki/engine/errors/SP0055.md +20 -0
  200. package/dist/wiki/engine/errors/SP0056.md +20 -0
  201. package/dist/wiki/engine/errors/SP0057.md +20 -0
  202. package/dist/wiki/engine/errors/SP0058.md +20 -0
  203. package/dist/wiki/engine/errors/SP0059.md +20 -0
  204. package/dist/wiki/engine/errors/SP0060.md +20 -0
  205. package/dist/wiki/engine/errors/SP0061.md +20 -0
  206. package/dist/wiki/engine/errors/SP0064.md +20 -0
  207. package/dist/wiki/engine/errors/SP0065.md +20 -0
  208. package/dist/wiki/engine/errors/SP0066.md +20 -0
  209. package/dist/wiki/engine/errors/SP0067.md +20 -0
  210. package/dist/wiki/engine/errors/SP0070.md +20 -0
  211. package/dist/wiki/engine/errors/SP0071.md +20 -0
  212. package/dist/wiki/engine/errors/SP0072.md +20 -0
  213. package/dist/wiki/engine/errors/SP0073.md +20 -0
  214. package/dist/wiki/engine/errors/SP0074.md +20 -0
  215. package/dist/wiki/engine/errors/SP0075.md +20 -0
  216. package/dist/wiki/engine/errors/SP0076.md +20 -0
  217. package/dist/wiki/engine/errors/SP0077.md +20 -0
  218. package/dist/wiki/engine/errors/SP0078.md +20 -0
  219. package/dist/wiki/engine/errors/SP0079.md +20 -0
  220. package/dist/wiki/engine/errors/SP0080.md +20 -0
  221. package/dist/wiki/engine/errors/SP0081.md +20 -0
  222. package/dist/wiki/engine/errors/SP0082.md +20 -0
  223. package/dist/wiki/engine/errors/SP0083.md +20 -0
  224. package/dist/wiki/engine/errors/SP0084.md +20 -0
  225. package/dist/wiki/engine/errors/SP0085.md +20 -0
  226. package/dist/wiki/engine/errors/SP0086.md +20 -0
  227. package/dist/wiki/engine/errors/SP0087.md +20 -0
  228. package/dist/wiki/engine/errors/SP0089.md +20 -0
  229. package/dist/wiki/engine/errors/SP0090.md +20 -0
  230. package/dist/wiki/engine/errors/SP0091.md +20 -0
  231. package/dist/wiki/engine/errors/SP0092.md +20 -0
  232. package/dist/wiki/engine/errors/SP0093.md +20 -0
  233. package/dist/wiki/engine/errors/SP0094.md +20 -0
  234. package/dist/wiki/engine/errors/SP0095.md +20 -0
  235. package/dist/wiki/engine/errors/SP0096.md +20 -0
  236. package/dist/wiki/engine/errors/SP0097.md +20 -0
  237. package/dist/wiki/engine/errors/SP0098.md +20 -0
  238. package/dist/wiki/engine/errors/SP0099.md +20 -0
  239. package/dist/wiki/engine/errors/SP0100.md +20 -0
  240. package/dist/wiki/engine/errors/SP0101.md +20 -0
  241. package/dist/wiki/engine/errors/SP0102.md +20 -0
  242. package/dist/wiki/engine/errors/SP0103.md +20 -0
  243. package/dist/wiki/engine/errors/SP0104.md +20 -0
  244. package/dist/wiki/engine/errors/SP0105.md +20 -0
  245. package/dist/wiki/engine/errors/SP0106.md +20 -0
  246. package/dist/wiki/engine/errors/SP0107.md +20 -0
  247. package/dist/wiki/engine/errors/SP0108.md +20 -0
  248. package/dist/wiki/engine/errors/SP0109.md +20 -0
  249. package/dist/wiki/engine/errors/SP0110.md +20 -0
  250. package/dist/wiki/engine/errors/SP0111.md +20 -0
  251. package/dist/wiki/engine/errors/SP0112.md +20 -0
  252. package/dist/wiki/engine/errors/SP0113.md +20 -0
  253. package/dist/wiki/engine/errors/SP0114.md +20 -0
  254. package/dist/wiki/engine/errors/SP0115.md +20 -0
  255. package/dist/wiki/engine/errors/SP0116.md +20 -0
  256. package/dist/wiki/engine/errors/SP0117.md +20 -0
  257. package/dist/wiki/engine/errors/SP0118.md +20 -0
  258. package/dist/wiki/engine/errors/SP0119.md +20 -0
  259. package/dist/wiki/engine/errors/SP0120.md +20 -0
  260. package/dist/wiki/engine/errors/SP0121.md +20 -0
  261. package/dist/wiki/engine/errors/SP0122.md +20 -0
  262. package/dist/wiki/engine/errors/SP0125.md +20 -0
  263. package/dist/wiki/engine/errors/SP0126.md +20 -0
  264. package/dist/wiki/engine/errors/SP0132.md +20 -0
  265. package/dist/wiki/engine/errors/SP0133.md +20 -0
  266. package/dist/wiki/engine/errors/SP0134.md +20 -0
  267. package/dist/wiki/engine/errors/SP0137.md +20 -0
  268. package/dist/wiki/engine/errors/SP0138.md +20 -0
  269. package/dist/wiki/engine/errors/SP0139.md +20 -0
  270. package/dist/wiki/engine/errors/SP0143.md +20 -0
  271. package/dist/wiki/engine/errors/SP0145.md +20 -0
  272. package/dist/wiki/engine/errors/SP0146.md +20 -0
  273. package/dist/wiki/engine/errors/SP0147.md +20 -0
  274. package/dist/wiki/engine/errors/SP0148.md +20 -0
  275. package/dist/wiki/engine/errors/SP0149.md +20 -0
  276. package/dist/wiki/engine/errors/SP0150.md +20 -0
  277. package/dist/wiki/engine/errors/SP0151.md +20 -0
  278. package/dist/wiki/engine/errors/SP0152.md +20 -0
  279. package/dist/wiki/engine/errors/SP0154.md +20 -0
  280. package/dist/wiki/engine/errors/SP0157.md +20 -0
  281. package/dist/wiki/engine/errors/SP0158.md +20 -0
  282. package/dist/wiki/engine/errors/SP0159.md +20 -0
  283. package/dist/wiki/engine/errors/SP0160.md +20 -0
  284. package/dist/wiki/engine/errors/SP0161.md +20 -0
  285. package/dist/wiki/engine/errors/SP0162.md +20 -0
  286. package/dist/wiki/engine/errors/SP0163.md +20 -0
  287. package/dist/wiki/engine/errors/SP0164.md +20 -0
  288. package/dist/wiki/engine/errors/SP0165.md +20 -0
  289. package/dist/wiki/engine/errors/SP0166.md +20 -0
  290. package/dist/wiki/engine/errors/SP0167.md +20 -0
  291. package/dist/wiki/engine/errors/SP0169.md +20 -0
  292. package/dist/wiki/engine/errors/SP0175.md +20 -0
  293. package/dist/wiki/engine/errors/SP0176.md +20 -0
  294. package/dist/wiki/engine/errors/SP0177.md +20 -0
  295. package/dist/wiki/engine/errors/SP0178.md +20 -0
  296. package/dist/wiki/engine/errors/SP0179.md +20 -0
  297. package/dist/wiki/engine/errors/SP0180.md +20 -0
  298. package/dist/wiki/engine/errors/SP0181.md +20 -0
  299. package/dist/wiki/engine/errors/SP0182.md +20 -0
  300. package/dist/wiki/engine/errors/SP0183.md +20 -0
  301. package/dist/wiki/engine/errors/SP0184.md +20 -0
  302. package/dist/wiki/engine/errors/SP0185.md +20 -0
  303. package/dist/wiki/engine/errors/SP0186.md +20 -0
  304. package/dist/wiki/engine/errors/SP0187.md +20 -0
  305. package/dist/wiki/engine/errors/SP0188.md +20 -0
  306. package/dist/wiki/engine/errors/SP0189.md +20 -0
  307. package/dist/wiki/engine/errors/SP0190.md +20 -0
  308. package/dist/wiki/engine/errors/SP0191.md +20 -0
  309. package/dist/wiki/engine/errors/SP0192.md +20 -0
  310. package/dist/wiki/engine/errors/SP0193.md +20 -0
  311. package/dist/wiki/engine/errors/SP0194.md +20 -0
  312. package/dist/wiki/engine/errors/SP0195.md +20 -0
  313. package/dist/wiki/engine/errors/SP0196.md +20 -0
  314. package/dist/wiki/engine/errors/SP0197.md +20 -0
  315. package/dist/wiki/engine/errors/SP0198.md +20 -0
  316. package/dist/wiki/engine/errors/SP0199.md +20 -0
  317. package/dist/wiki/engine/errors/SP0200.md +20 -0
  318. package/dist/wiki/engine/errors/SP0202.md +20 -0
  319. package/dist/wiki/engine/errors/SP0203.md +20 -0
  320. package/dist/wiki/engine/errors/SP0204.md +20 -0
  321. package/dist/wiki/engine/errors/SP0205.md +20 -0
  322. package/dist/wiki/engine/errors/SP0206.md +20 -0
  323. package/dist/wiki/engine/errors/SP0207.md +20 -0
  324. package/dist/wiki/engine/errors/SP0208.md +20 -0
  325. package/dist/wiki/engine/errors/SP0210.md +20 -0
  326. package/dist/wiki/engine/errors/SP0211.md +20 -0
  327. package/dist/wiki/engine/errors/SP0212.md +20 -0
  328. package/dist/wiki/engine/errors/SP0213.md +20 -0
  329. package/dist/wiki/engine/errors/SP0214.md +20 -0
  330. package/dist/wiki/engine/errors/SP0215.md +20 -0
  331. package/dist/wiki/engine/errors/SP0216.md +20 -0
  332. package/dist/wiki/engine/errors/SP0219.md +20 -0
  333. package/dist/wiki/engine/errors/SP0220.md +20 -0
  334. package/dist/wiki/engine/errors/SP0221.md +20 -0
  335. package/dist/wiki/engine/errors/SP0225.md +20 -0
  336. package/dist/wiki/engine/errors/SP0228.md +20 -0
  337. package/dist/wiki/engine/errors/SP0229.md +20 -0
  338. package/dist/wiki/engine/errors/SP0230.md +20 -0
  339. package/dist/wiki/engine/errors/SP0231.md +20 -0
  340. package/dist/wiki/engine/errors/SP0232.md +20 -0
  341. package/dist/wiki/engine/errors/SP0233.md +20 -0
  342. package/dist/wiki/engine/errors/SP0234.md +20 -0
  343. package/dist/wiki/engine/errors/SP0235.md +20 -0
  344. package/dist/wiki/engine/errors/SP0236.md +20 -0
  345. package/dist/wiki/engine/errors/SP0237.md +20 -0
  346. package/dist/wiki/engine/errors/SP0238.md +20 -0
  347. package/dist/wiki/engine/errors/SP0239.md +20 -0
  348. package/dist/wiki/engine/errors/SP0240.md +20 -0
  349. package/dist/wiki/engine/errors/SP0241.md +20 -0
  350. package/dist/wiki/engine/errors/SP0242.md +20 -0
  351. package/dist/wiki/engine/errors/SP0243.md +20 -0
  352. package/dist/wiki/engine/errors/SP0244.md +20 -0
  353. package/dist/wiki/engine/errors/SP0245.md +20 -0
  354. package/dist/wiki/engine/errors/SP0247.md +20 -0
  355. package/dist/wiki/engine/errors/SP0249.md +20 -0
  356. package/dist/wiki/engine/errors/SP0250.md +20 -0
  357. package/dist/wiki/engine/errors/SP0251.md +20 -0
  358. package/dist/wiki/engine/errors/SP0252.md +20 -0
  359. package/dist/wiki/engine/errors/SP0253.md +20 -0
  360. package/dist/wiki/engine/errors/SP0254.md +20 -0
  361. package/dist/wiki/engine/errors/SP0255.md +20 -0
  362. package/dist/wiki/engine/errors/SP0256.md +20 -0
  363. package/dist/wiki/engine/errors/SP0257.md +20 -0
  364. package/dist/wiki/engine/errors/SP0258.md +20 -0
  365. package/dist/wiki/engine/errors/SP0259.md +20 -0
  366. package/dist/wiki/engine/errors/SP0260.md +20 -0
  367. package/dist/wiki/engine/errors/SP0270.md +20 -0
  368. package/dist/wiki/engine/errors/SP0271.md +20 -0
  369. package/dist/wiki/engine/errors/SP0272.md +20 -0
  370. package/dist/wiki/engine/errors/SP0273.md +20 -0
  371. package/dist/wiki/engine/errors/SP0274.md +20 -0
  372. package/dist/wiki/engine/errors/SP0275.md +20 -0
  373. package/dist/wiki/engine/errors/SP0276.md +20 -0
  374. package/dist/wiki/engine/errors/SP0277.md +20 -0
  375. package/dist/wiki/engine/errors/SP0278.md +20 -0
  376. package/dist/wiki/engine/errors/SP0279.md +20 -0
  377. package/dist/wiki/engine/errors/SP0280.md +20 -0
  378. package/dist/wiki/engine/errors/SP0281.md +20 -0
  379. package/dist/wiki/engine/errors/SP0282.md +20 -0
  380. package/dist/wiki/engine/errors/SP0283.md +20 -0
  381. package/dist/wiki/engine/errors/SP0284.md +20 -0
  382. package/dist/wiki/engine/errors/SP0285.md +20 -0
  383. package/dist/wiki/engine/errors/SP0286.md +20 -0
  384. package/dist/wiki/engine/errors/SP0287.md +20 -0
  385. package/dist/wiki/engine/errors/SP0288.md +20 -0
  386. package/dist/wiki/engine/errors/SP0289.md +20 -0
  387. package/dist/wiki/engine/errors/SP0290.md +20 -0
  388. package/dist/wiki/engine/errors/SP0291.md +20 -0
  389. package/dist/wiki/engine/errors/SP0292.md +20 -0
  390. package/dist/wiki/engine/errors/SP0293.md +20 -0
  391. package/dist/wiki/engine/errors/SP0294.md +20 -0
  392. package/dist/wiki/engine/errors/SP0295.md +20 -0
  393. package/dist/wiki/engine/errors/SP0296.md +20 -0
  394. package/dist/wiki/engine/errors/SP0297.md +20 -0
  395. package/dist/wiki/engine/errors/SP0298.md +20 -0
  396. package/dist/wiki/engine/errors/SP0299.md +20 -0
  397. package/dist/wiki/engine/errors/SP0300.md +20 -0
  398. package/dist/wiki/engine/errors/SP0301.md +20 -0
  399. package/dist/wiki/engine/errors/SP0302.md +20 -0
  400. package/dist/wiki/engine/errors/SP0303.md +20 -0
  401. package/dist/wiki/engine/errors/SP0304.md +20 -0
  402. package/dist/wiki/engine/errors/SP0305.md +20 -0
  403. package/dist/wiki/engine/errors/SP0306.md +20 -0
  404. package/dist/wiki/engine/errors/SP0307.md +20 -0
  405. package/dist/wiki/engine/errors/SP0308.md +20 -0
  406. package/dist/wiki/engine/errors/SP0309.md +20 -0
  407. package/dist/wiki/engine/errors/SP0310.md +20 -0
  408. package/dist/wiki/engine/errors/SP0311.md +20 -0
  409. package/dist/wiki/engine/errors/SP0312.md +20 -0
  410. package/dist/wiki/engine/errors/SP0313.md +20 -0
  411. package/dist/wiki/engine/errors/SP0314.md +20 -0
  412. package/dist/wiki/engine/errors/SP0315.md +20 -0
  413. package/dist/wiki/engine/errors/SP0316.md +20 -0
  414. package/dist/wiki/engine/errors/SP0317.md +20 -0
  415. package/dist/wiki/engine/errors/SP0318.md +20 -0
  416. package/dist/wiki/engine/errors/SP0319.md +20 -0
  417. package/dist/wiki/engine/errors/SP0320.md +20 -0
  418. package/dist/wiki/engine/errors/SP0321.md +20 -0
  419. package/dist/wiki/engine/errors/SP0322.md +20 -0
  420. package/dist/wiki/engine/errors/SP0323.md +20 -0
  421. package/dist/wiki/engine/errors/SP0324.md +20 -0
  422. package/dist/wiki/engine/errors/SP0325.md +20 -0
  423. package/dist/wiki/engine/errors/SP0326.md +20 -0
  424. package/dist/wiki/engine/errors/SP0327.md +20 -0
  425. package/dist/wiki/engine/errors/SP0328.md +20 -0
  426. package/dist/wiki/engine/errors/SP0329.md +20 -0
  427. package/dist/wiki/engine/errors/SP0330.md +20 -0
  428. package/dist/wiki/engine/errors/SP0331.md +20 -0
  429. package/dist/wiki/engine/errors/SP0332.md +20 -0
  430. package/dist/wiki/engine/errors/SP0333.md +20 -0
  431. package/dist/wiki/engine/errors/SP0334.md +20 -0
  432. package/dist/wiki/engine/errors/SP0335.md +20 -0
  433. package/dist/wiki/engine/errors/SP0336.md +20 -0
  434. package/dist/wiki/engine/errors/SP0337.md +20 -0
  435. package/dist/wiki/engine/errors/SP0338.md +20 -0
  436. package/dist/wiki/engine/errors/SP0339.md +20 -0
  437. package/dist/wiki/engine/errors/SP0340.md +20 -0
  438. package/dist/wiki/engine/errors/SP0341.md +20 -0
  439. package/dist/wiki/engine/errors/SP0342.md +20 -0
  440. package/dist/wiki/engine/errors/SP0343.md +20 -0
  441. package/dist/wiki/engine/errors/SP0344.md +20 -0
  442. package/dist/wiki/engine/errors/SP0346.md +20 -0
  443. package/dist/wiki/engine/errors/SP0347.md +20 -0
  444. package/dist/wiki/engine/errors/SP0348.md +20 -0
  445. package/dist/wiki/engine/errors/SP0349.md +20 -0
  446. package/dist/wiki/engine/errors/SP0350.md +20 -0
  447. package/dist/wiki/engine/errors/SP0351.md +20 -0
  448. package/dist/wiki/engine/errors/SP0352.md +20 -0
  449. package/dist/wiki/engine/errors/SP0353.md +20 -0
  450. package/dist/wiki/engine/errors/SP0354.md +20 -0
  451. package/dist/wiki/engine/errors/SP0355.md +20 -0
  452. package/dist/wiki/engine/errors/SP0356.md +20 -0
  453. package/dist/wiki/engine/errors/SP0357.md +20 -0
  454. package/dist/wiki/engine/errors/SP0358.md +20 -0
  455. package/dist/wiki/engine/errors/SP0359.md +20 -0
  456. package/dist/wiki/engine/errors/SP0360.md +20 -0
  457. package/dist/wiki/engine/errors/SP0361.md +20 -0
  458. package/dist/wiki/engine/errors/SP0362.md +20 -0
  459. package/dist/wiki/engine/errors/SP0363.md +20 -0
  460. package/dist/wiki/engine/errors/SP0364.md +20 -0
  461. package/dist/wiki/engine/errors/SP0365.md +20 -0
  462. package/dist/wiki/engine/errors/SP0366.md +20 -0
  463. package/dist/wiki/engine/errors/SP0367.md +20 -0
  464. package/dist/wiki/engine/errors/SP0368.md +20 -0
  465. package/dist/wiki/engine/errors/SP0369.md +20 -0
  466. package/dist/wiki/engine/errors/SP0370.md +20 -0
  467. package/dist/wiki/engine/errors/SP0371.md +20 -0
  468. package/dist/wiki/engine/errors/SP0372.md +20 -0
  469. package/dist/wiki/engine/errors/SP0373.md +20 -0
  470. package/dist/wiki/engine/errors/SP0374.md +20 -0
  471. package/dist/wiki/engine/errors/SP0375.md +20 -0
  472. package/dist/wiki/engine/errors/SP0376.md +20 -0
  473. package/dist/wiki/engine/errors/SP0377.md +20 -0
  474. package/dist/wiki/engine/errors/SP0378.md +20 -0
  475. package/dist/wiki/engine/errors/SP0379.md +20 -0
  476. package/dist/wiki/engine/errors/SP0380.md +20 -0
  477. package/dist/wiki/engine/errors/SP0381.md +20 -0
  478. package/dist/wiki/engine/errors/SP0382.md +20 -0
  479. package/dist/wiki/engine/errors/SP0383.md +20 -0
  480. package/dist/wiki/engine/errors/SP0384.md +20 -0
  481. package/dist/wiki/engine/errors/SP0385.md +20 -0
  482. package/dist/wiki/engine/errors/SP0386.md +20 -0
  483. package/dist/wiki/engine/errors/SP0387.md +21 -0
  484. package/dist/wiki/engine/errors/SP0388.md +20 -0
  485. package/dist/wiki/engine/errors/SP0389.md +20 -0
  486. package/dist/wiki/engine/errors/SP0390.md +20 -0
  487. package/dist/wiki/engine/errors/SP0391.md +20 -0
  488. package/dist/wiki/engine/errors/SP0392.md +20 -0
  489. package/dist/wiki/engine/errors/SP0393.md +20 -0
  490. package/dist/wiki/engine/errors/SP0394.md +20 -0
  491. package/dist/wiki/engine/errors/SP0395.md +20 -0
  492. package/dist/wiki/engine/errors/SP0396.md +20 -0
  493. package/dist/wiki/engine/errors/SP0397.md +20 -0
  494. package/dist/wiki/engine/errors/SP0398.md +20 -0
  495. package/dist/wiki/engine/errors/SP0399.md +20 -0
  496. package/dist/wiki/engine/errors/SP0400.md +20 -0
  497. package/dist/wiki/engine/errors/SP0401.md +20 -0
  498. package/dist/wiki/engine/errors/SP0402.md +20 -0
  499. package/dist/wiki/engine/errors/SP0403.md +20 -0
  500. package/dist/wiki/engine/errors/SP0404.md +20 -0
  501. package/dist/wiki/engine/errors/SP0405.md +20 -0
  502. package/dist/wiki/engine/errors/SP0406.md +20 -0
  503. package/dist/wiki/engine/errors/SP0407.md +20 -0
  504. package/dist/wiki/engine/errors/SP0408.md +20 -0
  505. package/dist/wiki/engine/errors/SP0409.md +20 -0
  506. package/dist/wiki/engine/errors/SP0410.md +20 -0
  507. package/dist/wiki/engine/errors/SP0411.md +20 -0
  508. package/dist/wiki/engine/errors/SP0412.md +20 -0
  509. package/dist/wiki/engine/errors/SP0413.md +20 -0
  510. package/dist/wiki/engine/errors/SP0414.md +20 -0
  511. package/dist/wiki/engine/errors/SP0415.md +20 -0
  512. package/dist/wiki/engine/errors/SP0416.md +20 -0
  513. package/dist/wiki/engine/errors/SP0417.md +20 -0
  514. package/dist/wiki/engine/errors/SP0418.md +20 -0
  515. package/dist/wiki/engine/errors/SP0419.md +20 -0
  516. package/dist/wiki/engine/errors/SP0420.md +20 -0
  517. package/dist/wiki/engine/errors/SP0421.md +20 -0
  518. package/dist/wiki/engine/errors/SP0422.md +20 -0
  519. package/dist/wiki/engine/errors/SP0423.md +20 -0
  520. package/dist/wiki/engine/errors/SP0427.md +20 -0
  521. package/dist/wiki/engine/errors/SP0428.md +20 -0
  522. package/dist/wiki/engine/errors/SP0429.md +20 -0
  523. package/dist/wiki/engine/errors/SP0430.md +20 -0
  524. package/dist/wiki/engine/errors/SP0431.md +20 -0
  525. package/dist/wiki/engine/errors/SP0432.md +20 -0
  526. package/dist/wiki/engine/errors/SP0433.md +20 -0
  527. package/dist/wiki/engine/errors/SP0434.md +20 -0
  528. package/dist/wiki/engine/errors/SP0435.md +20 -0
  529. package/dist/wiki/engine/errors/SP0436.md +20 -0
  530. package/dist/wiki/engine/errors/SP0437.md +20 -0
  531. package/dist/wiki/engine/errors/SP0438.md +20 -0
  532. package/dist/wiki/engine/errors/SP0439.md +20 -0
  533. package/dist/wiki/engine/errors/SP0440.md +20 -0
  534. package/dist/wiki/engine/errors/SP0442.md +20 -0
  535. package/dist/wiki/engine/errors/SP0443.md +20 -0
  536. package/dist/wiki/engine/errors/SP0444.md +20 -0
  537. package/dist/wiki/engine/errors/SP0445.md +20 -0
  538. package/dist/wiki/engine/errors/SP0446.md +20 -0
  539. package/dist/wiki/engine/errors/SP0447.md +20 -0
  540. package/dist/wiki/engine/errors/SP0448.md +20 -0
  541. package/dist/wiki/engine/errors/SP0449.md +20 -0
  542. package/dist/wiki/engine/errors/SP0450.md +20 -0
  543. package/dist/wiki/engine/errors/SP0451.md +20 -0
  544. package/dist/wiki/engine/errors/SP0452.md +20 -0
  545. package/dist/wiki/engine/errors/SP0453.md +20 -0
  546. package/dist/wiki/engine/errors/SP0454.md +20 -0
  547. package/dist/wiki/engine/errors/SP0455.md +20 -0
  548. package/dist/wiki/engine/errors/SP0456.md +20 -0
  549. package/dist/wiki/engine/errors/SP0457.md +20 -0
  550. package/dist/wiki/engine/errors/SP0458.md +20 -0
  551. package/dist/wiki/engine/errors/SP0459.md +20 -0
  552. package/dist/wiki/engine/errors/SP0460.md +20 -0
  553. package/dist/wiki/engine/errors/SP0461.md +20 -0
  554. package/dist/wiki/engine/errors/SP0462.md +20 -0
  555. package/dist/wiki/engine/errors/SP0463.md +20 -0
  556. package/dist/wiki/engine/errors/SP0464.md +20 -0
  557. package/dist/wiki/engine/errors/SP0465.md +20 -0
  558. package/dist/wiki/engine/errors/SP0466.md +20 -0
  559. package/dist/wiki/engine/errors/SP0467.md +20 -0
  560. package/dist/wiki/engine/errors/SP0468.md +20 -0
  561. package/dist/wiki/engine/errors/SP0469.md +20 -0
  562. package/dist/wiki/engine/errors/SP0470.md +20 -0
  563. package/dist/wiki/engine/errors/SP0471.md +20 -0
  564. package/dist/wiki/engine/errors/SP0472.md +20 -0
  565. package/dist/wiki/engine/errors/SP0473.md +20 -0
  566. package/dist/wiki/engine/errors/SP0474.md +20 -0
  567. package/dist/wiki/engine/errors/SP0475.md +20 -0
  568. package/dist/wiki/engine/errors/SP0476.md +20 -0
  569. package/dist/wiki/engine/errors/SP0477.md +20 -0
  570. package/dist/wiki/engine/errors/SP0478.md +20 -0
  571. package/dist/wiki/engine/errors/SP0479.md +20 -0
  572. package/dist/wiki/engine/errors/SP0480.md +20 -0
  573. package/dist/wiki/engine/errors/SP0481.md +20 -0
  574. package/dist/wiki/engine/errors/SP0482.md +20 -0
  575. package/dist/wiki/engine/errors/SP0483.md +20 -0
  576. package/dist/wiki/engine/errors/SP0484.md +20 -0
  577. package/dist/wiki/engine/errors/SP0497.md +20 -0
  578. package/dist/wiki/engine/errors/SP0498.md +20 -0
  579. package/dist/wiki/engine/errors/SP0500.md +20 -0
  580. package/dist/wiki/engine/errors/SP0501.md +20 -0
  581. package/dist/wiki/engine/errors/SP0502.md +20 -0
  582. package/dist/wiki/engine/errors/SP0503.md +20 -0
  583. package/dist/wiki/engine/errors/SP0504.md +20 -0
  584. package/dist/wiki/engine/errors/SP0505.md +20 -0
  585. package/dist/wiki/engine/errors/SP0506.md +20 -0
  586. package/dist/wiki/engine/errors/SP0507.md +20 -0
  587. package/dist/wiki/engine/errors/SP0508.md +20 -0
  588. package/dist/wiki/engine/errors/SP0509.md +20 -0
  589. package/dist/wiki/engine/errors/SP0510.md +20 -0
  590. package/dist/wiki/engine/errors/SP0511.md +20 -0
  591. package/dist/wiki/engine/errors/SP0512.md +20 -0
  592. package/dist/wiki/engine/errors/SP0513.md +20 -0
  593. package/dist/wiki/engine/errors/SP0514.md +20 -0
  594. package/dist/wiki/engine/errors/SP0515.md +20 -0
  595. package/dist/wiki/engine/errors/SP0516.md +20 -0
  596. package/dist/wiki/engine/errors/SP0517.md +20 -0
  597. package/dist/wiki/engine/errors/SP0518.md +20 -0
  598. package/dist/wiki/engine/errors/SP0519.md +20 -0
  599. package/dist/wiki/engine/errors/SP0520.md +20 -0
  600. package/dist/wiki/engine/errors/SP0521.md +20 -0
  601. package/dist/wiki/engine/errors/SP0522.md +20 -0
  602. package/dist/wiki/engine/errors/SP0523.md +20 -0
  603. package/dist/wiki/engine/errors/SP0524.md +20 -0
  604. package/dist/wiki/engine/errors/SP0525.md +20 -0
  605. package/dist/wiki/engine/errors/SP0526.md +20 -0
  606. package/dist/wiki/engine/errors/SP0527.md +20 -0
  607. package/dist/wiki/engine/errors/SP0528.md +20 -0
  608. package/dist/wiki/engine/errors/SP0529.md +20 -0
  609. package/dist/wiki/engine/errors/SP0530.md +20 -0
  610. package/dist/wiki/engine/errors/SP0531.md +20 -0
  611. package/dist/wiki/engine/errors/SP0532.md +20 -0
  612. package/dist/wiki/engine/errors/SP0533.md +20 -0
  613. package/dist/wiki/engine/errors/SP0534.md +20 -0
  614. package/dist/wiki/engine/errors/SP0535.md +20 -0
  615. package/dist/wiki/engine/errors/SP0536.md +20 -0
  616. package/dist/wiki/engine/errors/SP0537.md +20 -0
  617. package/dist/wiki/engine/errors/SP0538.md +20 -0
  618. package/dist/wiki/engine/errors/SP0539.md +20 -0
  619. package/dist/wiki/engine/errors/SP0540.md +20 -0
  620. package/dist/wiki/engine/errors/SP0541.md +20 -0
  621. package/dist/wiki/engine/errors/SP0542.md +20 -0
  622. package/dist/wiki/engine/errors/SP0543.md +20 -0
  623. package/dist/wiki/engine/errors/SP0545.md +20 -0
  624. package/dist/wiki/engine/errors/SP0546.md +20 -0
  625. package/dist/wiki/engine/errors/SP0547.md +20 -0
  626. package/dist/wiki/engine/errors/SP0548.md +20 -0
  627. package/dist/wiki/engine/errors/SP0549.md +20 -0
  628. package/dist/wiki/engine/errors/SP0550.md +20 -0
  629. package/dist/wiki/engine/errors/SP0551.md +20 -0
  630. package/dist/wiki/engine/errors/SP0552.md +20 -0
  631. package/dist/wiki/engine/errors/SP0553.md +20 -0
  632. package/dist/wiki/engine/errors/SP0554.md +20 -0
  633. package/dist/wiki/engine/errors/SP0555.md +20 -0
  634. package/dist/wiki/engine/errors/SP0556.md +20 -0
  635. package/dist/wiki/engine/errors/SP0557.md +20 -0
  636. package/dist/wiki/engine/errors/SP0558.md +20 -0
  637. package/dist/wiki/engine/errors/SP0559.md +20 -0
  638. package/dist/wiki/engine/errors/SP0560.md +20 -0
  639. package/dist/wiki/engine/errors/SP0561.md +20 -0
  640. package/dist/wiki/engine/errors/SP0562.md +20 -0
  641. package/dist/wiki/engine/errors/SP0563.md +20 -0
  642. package/dist/wiki/engine/errors/SP0564.md +20 -0
  643. package/dist/wiki/engine/errors/SP0565.md +20 -0
  644. package/dist/wiki/engine/errors/SP0566.md +20 -0
  645. package/dist/wiki/engine/errors/SP0567.md +20 -0
  646. package/dist/wiki/engine/errors/SP0568.md +20 -0
  647. package/dist/wiki/engine/errors/SP0569.md +20 -0
  648. package/dist/wiki/engine/errors/SP0570.md +20 -0
  649. package/dist/wiki/engine/errors/index.md +504 -0
  650. package/dist/wiki/engine/graphics/crt-material.md +64 -0
  651. package/dist/wiki/engine/graphics/energy-orb-material.md +52 -0
  652. package/dist/wiki/engine/graphics/instanced-model.md +89 -0
  653. package/dist/wiki/engine/graphics/looks.md +196 -0
  654. package/dist/wiki/engine/graphics/particles.md +185 -0
  655. package/dist/wiki/engine/graphics/portal-material.md +49 -0
  656. package/dist/wiki/engine/graphics/post-processing.md +130 -0
  657. package/dist/wiki/engine/graphics/renderer.md +103 -0
  658. package/dist/wiki/engine/graphics/shader.md +331 -0
  659. package/dist/wiki/engine/graphics/skinned-batch.md +115 -0
  660. package/dist/wiki/engine/graphics/track-scatter.md +124 -0
  661. package/dist/wiki/engine/graphics/track-surface.md +107 -0
  662. package/dist/wiki/engine/graphics/water-material.md +60 -0
  663. package/dist/wiki/engine/graphics/webgpu.md +87 -0
  664. package/dist/wiki/engine/structure/game.md +301 -0
  665. package/dist/wiki/engine/structure/levels.md +239 -0
  666. package/dist/wiki/engine/structure/plugins.md +423 -0
  667. package/dist/wiki/engine/structure/round.md +229 -0
  668. package/dist/wiki/engine/structure/saves.md +251 -0
  669. package/dist/wiki/engine/structure/scene.md +69 -0
  670. package/dist/wiki/engine/structure/states.md +202 -0
  671. package/dist/wiki/engine/structure/systems.md +242 -0
  672. package/dist/wiki/engine/structure/track-level.md +73 -0
  673. package/dist/wiki/engine/structure/world.md +371 -0
  674. package/dist/wiki/engine/testing/agent-state.md +131 -0
  675. package/dist/wiki/engine/testing/dev-server.md +101 -0
  676. package/dist/wiki/engine/testing/devtools-wiki.md +80 -0
  677. package/dist/wiki/engine/testing/devtools.md +143 -0
  678. package/dist/wiki/engine/testing/directing.md +125 -0
  679. package/dist/wiki/engine/testing/director.md +285 -0
  680. package/dist/wiki/engine/testing/editing.md +71 -0
  681. package/dist/wiki/engine/testing/errors.md +146 -0
  682. package/dist/wiki/engine/testing/frame.md +175 -0
  683. package/dist/wiki/engine/testing/headless.md +133 -0
  684. package/dist/wiki/engine/testing/hitches.md +140 -0
  685. package/dist/wiki/engine/testing/joins.md +129 -0
  686. package/dist/wiki/engine/testing/measuring.md +97 -0
  687. package/dist/wiki/engine/testing/performance.md +48 -0
  688. package/dist/wiki/engine/testing/processes.md +87 -0
  689. package/dist/wiki/engine/testing/replay-storage.md +156 -0
  690. package/dist/wiki/engine/testing/replay.md +230 -0
  691. package/dist/wiki/engine/testing/runs.md +162 -0
  692. package/dist/wiki/engine/testing/which-tool.md +155 -0
  693. package/dist/wiki/engine/ui/action-bar.md +121 -0
  694. package/dist/wiki/engine/ui/bar.md +54 -0
  695. package/dist/wiki/engine/ui/billboard.md +64 -0
  696. package/dist/wiki/engine/ui/button.md +69 -0
  697. package/dist/wiki/engine/ui/controls.md +131 -0
  698. package/dist/wiki/engine/ui/counter.md +40 -0
  699. package/dist/wiki/engine/ui/devtools-panel.md +69 -0
  700. package/dist/wiki/engine/ui/drag-and-drop.md +134 -0
  701. package/dist/wiki/engine/ui/floating-text.md +129 -0
  702. package/dist/wiki/engine/ui/graphics-quality.md +254 -0
  703. package/dist/wiki/engine/ui/heading.md +43 -0
  704. package/dist/wiki/engine/ui/hud.md +100 -0
  705. package/dist/wiki/engine/ui/icon.md +34 -0
  706. package/dist/wiki/engine/ui/image.md +38 -0
  707. package/dist/wiki/engine/ui/index.md +59 -0
  708. package/dist/wiki/engine/ui/joystick.md +32 -0
  709. package/dist/wiki/engine/ui/modal.md +95 -0
  710. package/dist/wiki/engine/ui/panel.md +100 -0
  711. package/dist/wiki/engine/ui/settings.md +303 -0
  712. package/dist/wiki/engine/ui/tap.md +33 -0
  713. package/dist/wiki/engine/ui/text.md +56 -0
  714. package/dist/wiki/engine/ui/theme.md +119 -0
  715. package/dist/wiki/engine/ui/window.md +68 -0
  716. package/dist/wmIDrLkF.js +1 -0
  717. package/dist/yhuZzG90.js +1 -0
  718. package/dist/z3YXvfLT.js +1 -0
  719. package/dist-browser/@pixiv/three-vrm/nodes.js +1 -0
  720. package/dist-browser/@pixiv/three-vrm.js +1 -0
  721. package/dist-browser/@react-three/drei/exports/-accumulative-shadows.js +1 -0
  722. package/dist-browser/@react-three/drei/exports/-adaptive-dpr.js +1 -0
  723. package/dist-browser/@react-three/drei/exports/-adaptive-events.js +1 -0
  724. package/dist-browser/@react-three/drei/exports/-arcball-controls.js +1 -0
  725. package/dist-browser/@react-three/drei/exports/-ascii-renderer.js +1 -0
  726. package/dist-browser/@react-three/drei/exports/-b-b-anchor.js +1 -0
  727. package/dist-browser/@react-three/drei/exports/-backdrop.js +1 -0
  728. package/dist-browser/@react-three/drei/exports/-bake-shadows.js +1 -0
  729. package/dist-browser/@react-three/drei/exports/-billboard.js +1 -0
  730. package/dist-browser/@react-three/drei/exports/-bounds.js +1 -0
  731. package/dist-browser/@react-three/drei/exports/-box.js +1 -0
  732. package/dist-browser/@react-three/drei/exports/-bvh.js +1 -0
  733. package/dist-browser/@react-three/drei/exports/-camera-controls-impl.js +1 -0
  734. package/dist-browser/@react-three/drei/exports/-camera-controls.js +1 -0
  735. package/dist-browser/@react-three/drei/exports/-camera-shake.js +1 -0
  736. package/dist-browser/@react-three/drei/exports/-capsule.js +1 -0
  737. package/dist-browser/@react-three/drei/exports/-catmull-rom-line.js +1 -0
  738. package/dist-browser/@react-three/drei/exports/-caustics.js +1 -0
  739. package/dist-browser/@react-three/drei/exports/-center.js +1 -0
  740. package/dist-browser/@react-three/drei/exports/-circle.js +1 -0
  741. package/dist-browser/@react-three/drei/exports/-clone.js +1 -0
  742. package/dist-browser/@react-three/drei/exports/-cloud-instance.js +1 -0
  743. package/dist-browser/@react-three/drei/exports/-cloud.js +1 -0
  744. package/dist-browser/@react-three/drei/exports/-clouds.js +1 -0
  745. package/dist-browser/@react-three/drei/exports/-computed-attribute.js +1 -0
  746. package/dist-browser/@react-three/drei/exports/-cone.js +1 -0
  747. package/dist-browser/@react-three/drei/exports/-contact-shadows.js +1 -0
  748. package/dist-browser/@react-three/drei/exports/-cube-camera.js +1 -0
  749. package/dist-browser/@react-three/drei/exports/-cube-texture.js +1 -0
  750. package/dist-browser/@react-three/drei/exports/-cubic-bezier-line.js +1 -0
  751. package/dist-browser/@react-three/drei/exports/-curve-modifier.js +1 -0
  752. package/dist-browser/@react-three/drei/exports/-cycle-raycast.js +1 -0
  753. package/dist-browser/@react-three/drei/exports/-cylinder.js +1 -0
  754. package/dist-browser/@react-three/drei/exports/-decal.js +1 -0
  755. package/dist-browser/@react-three/drei/exports/-detailed.js +1 -0
  756. package/dist-browser/@react-three/drei/exports/-detect-g-p-u.js +1 -0
  757. package/dist-browser/@react-three/drei/exports/-device-orientation-controls.js +1 -0
  758. package/dist-browser/@react-three/drei/exports/-dodecahedron.js +1 -0
  759. package/dist-browser/@react-three/drei/exports/-drag-controls.js +1 -0
  760. package/dist-browser/@react-three/drei/exports/-edges.js +1 -0
  761. package/dist-browser/@react-three/drei/exports/-effects.js +1 -0
  762. package/dist-browser/@react-three/drei/exports/-environment-cube.js +1 -0
  763. package/dist-browser/@react-three/drei/exports/-environment-map.js +1 -0
  764. package/dist-browser/@react-three/drei/exports/-environment-portal.js +1 -0
  765. package/dist-browser/@react-three/drei/exports/-environment.js +1 -0
  766. package/dist-browser/@react-three/drei/exports/-example.js +1 -0
  767. package/dist-browser/@react-three/drei/exports/-extrude.js +1 -0
  768. package/dist-browser/@react-three/drei/exports/-face-controls.js +1 -0
  769. package/dist-browser/@react-three/drei/exports/-face-landmarker-defaults.js +1 -0
  770. package/dist-browser/@react-three/drei/exports/-face-landmarker.js +1 -0
  771. package/dist-browser/@react-three/drei/exports/-facemesh-datas.js +1 -0
  772. package/dist-browser/@react-three/drei/exports/-facemesh-eye-defaults.js +1 -0
  773. package/dist-browser/@react-three/drei/exports/-facemesh-eye.js +1 -0
  774. package/dist-browser/@react-three/drei/exports/-facemesh.js +1 -0
  775. package/dist-browser/@react-three/drei/exports/-fbo.js +1 -0
  776. package/dist-browser/@react-three/drei/exports/-fbx.js +1 -0
  777. package/dist-browser/@react-three/drei/exports/-first-person-controls.js +1 -0
  778. package/dist-browser/@react-three/drei/exports/-fisheye.js +1 -0
  779. package/dist-browser/@react-three/drei/exports/-float.js +1 -0
  780. package/dist-browser/@react-three/drei/exports/-fly-controls.js +1 -0
  781. package/dist-browser/@react-three/drei/exports/-gizmo-helper.js +1 -0
  782. package/dist-browser/@react-three/drei/exports/-gizmo-viewcube.js +1 -0
  783. package/dist-browser/@react-three/drei/exports/-gizmo-viewport.js +1 -0
  784. package/dist-browser/@react-three/drei/exports/-gltf.js +1 -0
  785. package/dist-browser/@react-three/drei/exports/-gradient-texture.js +1 -0
  786. package/dist-browser/@react-three/drei/exports/-gradient-type.js +1 -0
  787. package/dist-browser/@react-three/drei/exports/-grid.js +1 -0
  788. package/dist-browser/@react-three/drei/exports/-helper.js +1 -0
  789. package/dist-browser/@react-three/drei/exports/-html.js +1 -0
  790. package/dist-browser/@react-three/drei/exports/-hud.js +1 -0
  791. package/dist-browser/@react-three/drei/exports/-icosahedron.js +1 -0
  792. package/dist-browser/@react-three/drei/exports/-image.js +1 -0
  793. package/dist-browser/@react-three/drei/exports/-instance.js +1 -0
  794. package/dist-browser/@react-three/drei/exports/-instanced-attribute.js +1 -0
  795. package/dist-browser/@react-three/drei/exports/-instances.js +1 -0
  796. package/dist-browser/@react-three/drei/exports/-is-object.js +1 -0
  797. package/dist-browser/@react-three/drei/exports/-keyboard-controls.js +1 -0
  798. package/dist-browser/@react-three/drei/exports/-ktx2.js +1 -0
  799. package/dist-browser/@react-three/drei/exports/-lathe.js +1 -0
  800. package/dist-browser/@react-three/drei/exports/-lightformer.js +1 -0
  801. package/dist-browser/@react-three/drei/exports/-line.js +1 -0
  802. package/dist-browser/@react-three/drei/exports/-loader.js +1 -0
  803. package/dist-browser/@react-three/drei/exports/-map-controls.js +1 -0
  804. package/dist-browser/@react-three/drei/exports/-marching-cube.js +1 -0
  805. package/dist-browser/@react-three/drei/exports/-marching-cubes.js +1 -0
  806. package/dist-browser/@react-three/drei/exports/-marching-plane.js +1 -0
  807. package/dist-browser/@react-three/drei/exports/-mask.js +1 -0
  808. package/dist-browser/@react-three/drei/exports/-matcap-texture.js +1 -0
  809. package/dist-browser/@react-three/drei/exports/-merged.js +1 -0
  810. package/dist-browser/@react-three/drei/exports/-mesh-discard-material.js +1 -0
  811. package/dist-browser/@react-three/drei/exports/-mesh-distort-material.js +1 -0
  812. package/dist-browser/@react-three/drei/exports/-mesh-portal-material.js +1 -0
  813. package/dist-browser/@react-three/drei/exports/-mesh-reflector-material.js +1 -0
  814. package/dist-browser/@react-three/drei/exports/-mesh-refraction-material.js +1 -0
  815. package/dist-browser/@react-three/drei/exports/-mesh-transmission-material.js +1 -0
  816. package/dist-browser/@react-three/drei/exports/-mesh-wobble-material.js +1 -0
  817. package/dist-browser/@react-three/drei/exports/-motion-path-controls.js +1 -0
  818. package/dist-browser/@react-three/drei/exports/-multi-material.js +1 -0
  819. package/dist-browser/@react-three/drei/exports/-normal-texture.js +1 -0
  820. package/dist-browser/@react-three/drei/exports/-octahedron.js +1 -0
  821. package/dist-browser/@react-three/drei/exports/-orbit-controls.js +1 -0
  822. package/dist-browser/@react-three/drei/exports/-orthographic-camera.js +1 -0
  823. package/dist-browser/@react-three/drei/exports/-outlines.js +1 -0
  824. package/dist-browser/@react-three/drei/exports/-performance-monitor.js +1 -0
  825. package/dist-browser/@react-three/drei/exports/-perspective-camera.js +1 -0
  826. package/dist-browser/@react-three/drei/exports/-pivot-controls.js +1 -0
  827. package/dist-browser/@react-three/drei/exports/-plane.js +1 -0
  828. package/dist-browser/@react-three/drei/exports/-point-material-impl.js +1 -0
  829. package/dist-browser/@react-three/drei/exports/-point-material.js +1 -0
  830. package/dist-browser/@react-three/drei/exports/-point.js +1 -0
  831. package/dist-browser/@react-three/drei/exports/-pointer-lock-controls.js +1 -0
  832. package/dist-browser/@react-three/drei/exports/-points-buffer.js +1 -0
  833. package/dist-browser/@react-three/drei/exports/-points.js +1 -0
  834. package/dist-browser/@react-three/drei/exports/-polyhedron.js +1 -0
  835. package/dist-browser/@react-three/drei/exports/-position-mesh.js +1 -0
  836. package/dist-browser/@react-three/drei/exports/-position-point.js +1 -0
  837. package/dist-browser/@react-three/drei/exports/-positional-audio.js +1 -0
  838. package/dist-browser/@react-three/drei/exports/-preload.js +1 -0
  839. package/dist-browser/@react-three/drei/exports/-presentation-controls.js +1 -0
  840. package/dist-browser/@react-three/drei/exports/-progress.js +1 -0
  841. package/dist-browser/@react-three/drei/exports/-quadratic-bezier-line.js +1 -0
  842. package/dist-browser/@react-three/drei/exports/-randomized-light.js +1 -0
  843. package/dist-browser/@react-three/drei/exports/-render-cube-texture.js +1 -0
  844. package/dist-browser/@react-three/drei/exports/-render-texture.js +1 -0
  845. package/dist-browser/@react-three/drei/exports/-resize.js +1 -0
  846. package/dist-browser/@react-three/drei/exports/-ring.js +1 -0
  847. package/dist-browser/@react-three/drei/exports/-rounded-box-geometry.js +1 -0
  848. package/dist-browser/@react-three/drei/exports/-rounded-box.js +1 -0
  849. package/dist-browser/@react-three/drei/exports/-sampler.js +1 -0
  850. package/dist-browser/@react-three/drei/exports/-screen-quad.js +1 -0
  851. package/dist-browser/@react-three/drei/exports/-screen-sizer.js +1 -0
  852. package/dist-browser/@react-three/drei/exports/-screen-space.js +1 -0
  853. package/dist-browser/@react-three/drei/exports/-screen-video-texture.js +1 -0
  854. package/dist-browser/@react-three/drei/exports/-scroll-controls.js +1 -0
  855. package/dist-browser/@react-three/drei/exports/-scroll.js +1 -0
  856. package/dist-browser/@react-three/drei/exports/-segment-object.js +1 -0
  857. package/dist-browser/@react-three/drei/exports/-segment.js +1 -0
  858. package/dist-browser/@react-three/drei/exports/-segments.js +1 -0
  859. package/dist-browser/@react-three/drei/exports/-select.js +1 -0
  860. package/dist-browser/@react-three/drei/exports/-shadow-alpha.js +1 -0
  861. package/dist-browser/@react-three/drei/exports/-shadow.js +1 -0
  862. package/dist-browser/@react-three/drei/exports/-shape.js +1 -0
  863. package/dist-browser/@react-three/drei/exports/-sky.js +1 -0
  864. package/dist-browser/@react-three/drei/exports/-soft-shadows.js +1 -0
  865. package/dist-browser/@react-three/drei/exports/-sparkles.js +1 -0
  866. package/dist-browser/@react-three/drei/exports/-sphere.js +1 -0
  867. package/dist-browser/@react-three/drei/exports/-splat.js +1 -0
  868. package/dist-browser/@react-three/drei/exports/-spot-light-shadow.js +1 -0
  869. package/dist-browser/@react-three/drei/exports/-spot-light.js +1 -0
  870. package/dist-browser/@react-three/drei/exports/-sprite-animator.js +1 -0
  871. package/dist-browser/@react-three/drei/exports/-stage.js +1 -0
  872. package/dist-browser/@react-three/drei/exports/-stars.js +1 -0
  873. package/dist-browser/@react-three/drei/exports/-stats-gl.js +1 -0
  874. package/dist-browser/@react-three/drei/exports/-stats.js +1 -0
  875. package/dist-browser/@react-three/drei/exports/-svg.js +1 -0
  876. package/dist-browser/@react-three/drei/exports/-tetrahedron.js +1 -0
  877. package/dist-browser/@react-three/drei/exports/-text.js +1 -0
  878. package/dist-browser/@react-three/drei/exports/-text3-d.js +1 -0
  879. package/dist-browser/@react-three/drei/exports/-texture.js +1 -0
  880. package/dist-browser/@react-three/drei/exports/-torus-knot.js +1 -0
  881. package/dist-browser/@react-three/drei/exports/-torus.js +1 -0
  882. package/dist-browser/@react-three/drei/exports/-trackball-controls.js +1 -0
  883. package/dist-browser/@react-three/drei/exports/-trail-texture.js +1 -0
  884. package/dist-browser/@react-three/drei/exports/-trail.js +1 -0
  885. package/dist-browser/@react-three/drei/exports/-transform-controls.js +1 -0
  886. package/dist-browser/@react-three/drei/exports/-tube.js +1 -0
  887. package/dist-browser/@react-three/drei/exports/-video-texture.js +1 -0
  888. package/dist-browser/@react-three/drei/exports/-view.js +1 -0
  889. package/dist-browser/@react-three/drei/exports/-webcam-video-texture.js +1 -0
  890. package/dist-browser/@react-three/drei/exports/-wireframe.js +1 -0
  891. package/dist-browser/@react-three/drei/exports/accumulative-context.js +1 -0
  892. package/dist-browser/@react-three/drei/exports/calc-pos-from-angles.js +1 -0
  893. package/dist-browser/@react-three/drei/exports/calculate-scale-factor.js +1 -0
  894. package/dist-browser/@react-three/drei/exports/check-if-frame-is-empty.js +1 -0
  895. package/dist-browser/@react-three/drei/exports/create-instances.js +1 -0
  896. package/dist-browser/@react-three/drei/exports/get-first-frame.js +1 -0
  897. package/dist-browser/@react-three/drei/exports/is-web-g-l2-available.js +1 -0
  898. package/dist-browser/@react-three/drei/exports/mesh-bounds.js +1 -0
  899. package/dist-browser/@react-three/drei/exports/shader-material.js +1 -0
  900. package/dist-browser/@react-three/drei/exports/use-animations.js +1 -0
  901. package/dist-browser/@react-three/drei/exports/use-aspect.js +1 -0
  902. package/dist-browser/@react-three/drei/exports/use-b-v-h.js +1 -0
  903. package/dist-browser/@react-three/drei/exports/use-bounds.js +1 -0
  904. package/dist-browser/@react-three/drei/exports/use-box-projected-env.js +1 -0
  905. package/dist-browser/@react-three/drei/exports/use-camera.js +1 -0
  906. package/dist-browser/@react-three/drei/exports/use-context-bridge.js +1 -0
  907. package/dist-browser/@react-three/drei/exports/use-cube-camera.js +1 -0
  908. package/dist-browser/@react-three/drei/exports/use-cube-texture.js +1 -0
  909. package/dist-browser/@react-three/drei/exports/use-cursor.js +1 -0
  910. package/dist-browser/@react-three/drei/exports/use-depth-buffer.js +1 -0
  911. package/dist-browser/@react-three/drei/exports/use-detect-g-p-u.js +1 -0
  912. package/dist-browser/@react-three/drei/exports/use-environment.js +1 -0
  913. package/dist-browser/@react-three/drei/exports/use-f-b-o.js +1 -0
  914. package/dist-browser/@react-three/drei/exports/use-f-b-x.js +1 -0
  915. package/dist-browser/@react-three/drei/exports/use-face-controls.js +1 -0
  916. package/dist-browser/@react-three/drei/exports/use-face-landmarker.js +1 -0
  917. package/dist-browser/@react-three/drei/exports/use-font.js +1 -0
  918. package/dist-browser/@react-three/drei/exports/use-g-l-t-f.js +1 -0
  919. package/dist-browser/@react-three/drei/exports/use-gizmo-context.js +1 -0
  920. package/dist-browser/@react-three/drei/exports/use-helper.js +1 -0
  921. package/dist-browser/@react-three/drei/exports/use-intersect.js +1 -0
  922. package/dist-browser/@react-three/drei/exports/use-k-t-x2.js +1 -0
  923. package/dist-browser/@react-three/drei/exports/use-keyboard-controls.js +1 -0
  924. package/dist-browser/@react-three/drei/exports/use-mask.js +1 -0
  925. package/dist-browser/@react-three/drei/exports/use-matcap-texture.js +1 -0
  926. package/dist-browser/@react-three/drei/exports/use-motion.js +1 -0
  927. package/dist-browser/@react-three/drei/exports/use-normal-texture.js +1 -0
  928. package/dist-browser/@react-three/drei/exports/use-performance-monitor.js +1 -0
  929. package/dist-browser/@react-three/drei/exports/use-progress.js +1 -0
  930. package/dist-browser/@react-three/drei/exports/use-scroll.js +1 -0
  931. package/dist-browser/@react-three/drei/exports/use-select.js +1 -0
  932. package/dist-browser/@react-three/drei/exports/use-sprite-animator.js +1 -0
  933. package/dist-browser/@react-three/drei/exports/use-sprite-loader.js +1 -0
  934. package/dist-browser/@react-three/drei/exports/use-surface-sampler.js +1 -0
  935. package/dist-browser/@react-three/drei/exports/use-texture.js +1 -0
  936. package/dist-browser/@react-three/drei/exports/use-trail-texture.js +1 -0
  937. package/dist-browser/@react-three/drei/exports/use-trail.js +1 -0
  938. package/dist-browser/@react-three/drei/exports/use-video-texture.js +1 -0
  939. package/dist-browser/@react-three/drei.js +1 -0
  940. package/dist-browser/@react-three/fiber.js +1 -0
  941. package/dist-browser/@react-three/postprocessing.js +1 -0
  942. package/dist-browser/@spawnite/engine/abilities.js +1 -0
  943. package/dist-browser/@spawnite/engine/core.js +1 -0
  944. package/dist-browser/@spawnite/engine/dragAndDrop.js +1 -0
  945. package/dist-browser/@spawnite/engine/inventory.js +1 -0
  946. package/dist-browser/@spawnite/engine/looks/dusk.js +1 -0
  947. package/dist-browser/@spawnite/engine/looks/morning.js +1 -0
  948. package/dist-browser/@spawnite/engine/looks/night.js +1 -0
  949. package/dist-browser/@spawnite/engine/looks/noon.js +1 -0
  950. package/dist-browser/@spawnite/engine/looks/overcast.js +1 -0
  951. package/dist-browser/@spawnite/engine/npcs.js +1 -0
  952. package/dist-browser/@spawnite/engine/rounds.js +1 -0
  953. package/dist-browser/@spawnite/engine/three.js +1 -0
  954. package/dist-browser/@spawnite/engine/tracks.js +1 -0
  955. package/dist-browser/@spawnite/engine/weapons.js +1 -0
  956. package/dist-browser/@spawnite/engine.js +376 -0
  957. package/dist-browser/@spawnite/schema/exports/-agent-state.js +1 -0
  958. package/dist-browser/@spawnite/schema/exports/-app-message-type.js +1 -0
  959. package/dist-browser/@spawnite/schema/exports/-channel-handshake.js +1 -0
  960. package/dist-browser/@spawnite/schema/exports/-clip-clock.js +1 -0
  961. package/dist-browser/@spawnite/schema/exports/-clip-record-action.js +1 -0
  962. package/dist-browser/@spawnite/schema/exports/-clip-shape.js +1 -0
  963. package/dist-browser/@spawnite/schema/exports/-collision-shape.js +1 -0
  964. package/dist-browser/@spawnite/schema/exports/-cover-kind.js +1 -0
  965. package/dist-browser/@spawnite/schema/exports/-credential-kind.js +1 -0
  966. package/dist-browser/@spawnite/schema/exports/-device-class.js +1 -0
  967. package/dist-browser/@spawnite/schema/exports/-engine-save-name.js +1 -0
  968. package/dist-browser/@spawnite/schema/exports/-favorite-kind.js +1 -0
  969. package/dist-browser/@spawnite/schema/exports/-model-style.js +1 -0
  970. package/dist-browser/@spawnite/schema/exports/-page-connection-status.js +1 -0
  971. package/dist-browser/@spawnite/schema/exports/-page-message-type.js +1 -0
  972. package/dist-browser/@spawnite/schema/exports/-performance-stats-mode.js +1 -0
  973. package/dist-browser/@spawnite/schema/exports/-prop-shape.js +1 -0
  974. package/dist-browser/@spawnite/schema/exports/-quality-group.js +1 -0
  975. package/dist-browser/@spawnite/schema/exports/-quality-level.js +1 -0
  976. package/dist-browser/@spawnite/schema/exports/-room-mode.js +1 -0
  977. package/dist-browser/@spawnite/schema/exports/-save-owner-change.js +1 -0
  978. package/dist-browser/@spawnite/schema/exports/-save-section.js +1 -0
  979. package/dist-browser/@spawnite/schema/exports/-scatter-family.js +1 -0
  980. package/dist-browser/@spawnite/schema/exports/-scatter-kind.js +1 -0
  981. package/dist-browser/@spawnite/schema/exports/-shot-angle.js +1 -0
  982. package/dist-browser/@spawnite/schema/exports/-voice-mode.js +1 -0
  983. package/dist-browser/@spawnite/schema/exports/-wiki-scope.js +1 -0
  984. package/dist-browser/@spawnite/schema/exports/add-asset-input.js +1 -0
  985. package/dist-browser/@spawnite/schema/exports/add-behaviour-input.js +1 -0
  986. package/dist-browser/@spawnite/schema/exports/add-dialog-input.js +1 -0
  987. package/dist-browser/@spawnite/schema/exports/add-entity-input.js +1 -0
  988. package/dist-browser/@spawnite/schema/exports/add-hud-input.js +1 -0
  989. package/dist-browser/@spawnite/schema/exports/add-item-input.js +1 -0
  990. package/dist-browser/@spawnite/schema/exports/add-map-input.js +1 -0
  991. package/dist-browser/@spawnite/schema/exports/add-npc-input.js +1 -0
  992. package/dist-browser/@spawnite/schema/exports/add-panel-input.js +1 -0
  993. package/dist-browser/@spawnite/schema/exports/add-scene-input.js +1 -0
  994. package/dist-browser/@spawnite/schema/exports/add-shader-input.js +1 -0
  995. package/dist-browser/@spawnite/schema/exports/agent-activity-event.js +1 -0
  996. package/dist-browser/@spawnite/schema/exports/agent-heartbeat-milliseconds.js +1 -0
  997. package/dist-browser/@spawnite/schema/exports/app-channel-version.js +1 -0
  998. package/dist-browser/@spawnite/schema/exports/app-credential.js +1 -0
  999. package/dist-browser/@spawnite/schema/exports/app-inset-edges.js +1 -0
  1000. package/dist-browser/@spawnite/schema/exports/app-insets.js +1 -0
  1001. package/dist-browser/@spawnite/schema/exports/app-message-versions.js +1 -0
  1002. package/dist-browser/@spawnite/schema/exports/app-message.js +1 -0
  1003. package/dist-browser/@spawnite/schema/exports/app-player.js +1 -0
  1004. package/dist-browser/@spawnite/schema/exports/app-settings-message.js +1 -0
  1005. package/dist-browser/@spawnite/schema/exports/asset-catalog.js +1 -0
  1006. package/dist-browser/@spawnite/schema/exports/asset-category.js +1 -0
  1007. package/dist-browser/@spawnite/schema/exports/asset-declaration.js +1 -0
  1008. package/dist-browser/@spawnite/schema/exports/asset-entry.js +1 -0
  1009. package/dist-browser/@spawnite/schema/exports/asset-filters.js +1 -0
  1010. package/dist-browser/@spawnite/schema/exports/asset-key.js +1 -0
  1011. package/dist-browser/@spawnite/schema/exports/asset-kind.js +1 -0
  1012. package/dist-browser/@spawnite/schema/exports/asset-licence.js +1 -0
  1013. package/dist-browser/@spawnite/schema/exports/asset-manifest.js +1 -0
  1014. package/dist-browser/@spawnite/schema/exports/asset-source.js +1 -0
  1015. package/dist-browser/@spawnite/schema/exports/asset-style.js +1 -0
  1016. package/dist-browser/@spawnite/schema/exports/asset-url.js +1 -0
  1017. package/dist-browser/@spawnite/schema/exports/assets-site.js +1 -0
  1018. package/dist-browser/@spawnite/schema/exports/brush-shapes.js +1 -0
  1019. package/dist-browser/@spawnite/schema/exports/build-save-manifest-entry.js +1 -0
  1020. package/dist-browser/@spawnite/schema/exports/bundle-file.js +1 -0
  1021. package/dist-browser/@spawnite/schema/exports/bundle-limits.js +1 -0
  1022. package/dist-browser/@spawnite/schema/exports/bundle-manifest-file.js +1 -0
  1023. package/dist-browser/@spawnite/schema/exports/bundle-manifest.js +1 -0
  1024. package/dist-browser/@spawnite/schema/exports/bundle-page-folder.js +1 -0
  1025. package/dist-browser/@spawnite/schema/exports/bundle-server-folder.js +1 -0
  1026. package/dist-browser/@spawnite/schema/exports/carried-setting-key-list.js +1 -0
  1027. package/dist-browser/@spawnite/schema/exports/carried-setting-keys.js +1 -0
  1028. package/dist-browser/@spawnite/schema/exports/carried-settings.js +1 -0
  1029. package/dist-browser/@spawnite/schema/exports/catalog-row.js +1 -0
  1030. package/dist-browser/@spawnite/schema/exports/cell-paint.js +1 -0
  1031. package/dist-browser/@spawnite/schema/exports/channel-connect.js +1 -0
  1032. package/dist-browser/@spawnite/schema/exports/channel-hello.js +1 -0
  1033. package/dist-browser/@spawnite/schema/exports/chat-folder-name.js +1 -0
  1034. package/dist-browser/@spawnite/schema/exports/chat-path.js +1 -0
  1035. package/dist-browser/@spawnite/schema/exports/chat-post.js +1 -0
  1036. package/dist-browser/@spawnite/schema/exports/chat-read-folder-name.js +1 -0
  1037. package/dist-browser/@spawnite/schema/exports/check-game-slug.js +1 -0
  1038. package/dist-browser/@spawnite/schema/exports/check-model-input.js +1 -0
  1039. package/dist-browser/@spawnite/schema/exports/check-save-migrations.js +1 -0
  1040. package/dist-browser/@spawnite/schema/exports/check-save-publish.js +1 -0
  1041. package/dist-browser/@spawnite/schema/exports/check-sound-input.js +1 -0
  1042. package/dist-browser/@spawnite/schema/exports/clip-finish.js +1 -0
  1043. package/dist-browser/@spawnite/schema/exports/clip-meta.js +1 -0
  1044. package/dist-browser/@spawnite/schema/exports/clip-name.js +1 -0
  1045. package/dist-browser/@spawnite/schema/exports/clips-folder-name.js +1 -0
  1046. package/dist-browser/@spawnite/schema/exports/clips-path.js +1 -0
  1047. package/dist-browser/@spawnite/schema/exports/compare-save-manifest-entries.js +1 -0
  1048. package/dist-browser/@spawnite/schema/exports/compare-shots-input.js +1 -0
  1049. package/dist-browser/@spawnite/schema/exports/component-name.js +1 -0
  1050. package/dist-browser/@spawnite/schema/exports/condition-seconds.js +1 -0
  1051. package/dist-browser/@spawnite/schema/exports/connection-message.js +1 -0
  1052. package/dist-browser/@spawnite/schema/exports/create-quality-schema.js +1 -0
  1053. package/dist-browser/@spawnite/schema/exports/create-site.js +1 -0
  1054. package/dist-browser/@spawnite/schema/exports/create-tagged-save-value-schema.js +1 -0
  1055. package/dist-browser/@spawnite/schema/exports/credential-versions.js +1 -0
  1056. package/dist-browser/@spawnite/schema/exports/day-hour.js +1 -0
  1057. package/dist-browser/@spawnite/schema/exports/day-length.js +1 -0
  1058. package/dist-browser/@spawnite/schema/exports/default-player-settings.js +1 -0
  1059. package/dist-browser/@spawnite/schema/exports/default-room-players.js +1 -0
  1060. package/dist-browser/@spawnite/schema/exports/default-room-send-rate.js +1 -0
  1061. package/dist-browser/@spawnite/schema/exports/describe-entity-input.js +1 -0
  1062. package/dist-browser/@spawnite/schema/exports/describe-map-input.js +1 -0
  1063. package/dist-browser/@spawnite/schema/exports/describe-save-publish-refusal.js +1 -0
  1064. package/dist-browser/@spawnite/schema/exports/dev-saves-cleared-file.js +1 -0
  1065. package/dist-browser/@spawnite/schema/exports/dev-saves-cleared-meta-name.js +1 -0
  1066. package/dist-browser/@spawnite/schema/exports/dev-saves-folder.js +1 -0
  1067. package/dist-browser/@spawnite/schema/exports/dev-server-file.js +1 -0
  1068. package/dist-browser/@spawnite/schema/exports/dev-server-prefix.js +1 -0
  1069. package/dist-browser/@spawnite/schema/exports/devtools-favorites.js +1 -0
  1070. package/dist-browser/@spawnite/schema/exports/devtools-presets.js +1 -0
  1071. package/dist-browser/@spawnite/schema/exports/direct-link.js +1 -0
  1072. package/dist-browser/@spawnite/schema/exports/edit-material-input.js +1 -0
  1073. package/dist-browser/@spawnite/schema/exports/edit-terrain-input.js +1 -0
  1074. package/dist-browser/@spawnite/schema/exports/engine-build-meta-name.js +1 -0
  1075. package/dist-browser/@spawnite/schema/exports/engine-build-path.js +1 -0
  1076. package/dist-browser/@spawnite/schema/exports/engine-label.js +1 -0
  1077. package/dist-browser/@spawnite/schema/exports/engine-origin.js +1 -0
  1078. package/dist-browser/@spawnite/schema/exports/engine-save-readers.js +1 -0
  1079. package/dist-browser/@spawnite/schema/exports/engine-save-schemas.js +1 -0
  1080. package/dist-browser/@spawnite/schema/exports/error-reports-config.js +1 -0
  1081. package/dist-browser/@spawnite/schema/exports/error-reports-meta-name.js +1 -0
  1082. package/dist-browser/@spawnite/schema/exports/error-reports-path.js +1 -0
  1083. package/dist-browser/@spawnite/schema/exports/favorite-field.js +1 -0
  1084. package/dist-browser/@spawnite/schema/exports/filter-assets.js +1 -0
  1085. package/dist-browser/@spawnite/schema/exports/find-particle-effect-excess.js +1 -0
  1086. package/dist-browser/@spawnite/schema/exports/find-room-settings-problems.js +1 -0
  1087. package/dist-browser/@spawnite/schema/exports/find-terrain-cell.js +1 -0
  1088. package/dist-browser/@spawnite/schema/exports/fingerprint-save-schema.js +1 -0
  1089. package/dist-browser/@spawnite/schema/exports/format-clip-length.js +1 -0
  1090. package/dist-browser/@spawnite/schema/exports/format-clip-size.js +1 -0
  1091. package/dist-browser/@spawnite/schema/exports/format-link-conditions.js +1 -0
  1092. package/dist-browser/@spawnite/schema/exports/framed-shot-schema.js +1 -0
  1093. package/dist-browser/@spawnite/schema/exports/fullscreen-answer-message.js +1 -0
  1094. package/dist-browser/@spawnite/schema/exports/fullscreen-message.js +1 -0
  1095. package/dist-browser/@spawnite/schema/exports/game-materials-name.js +1 -0
  1096. package/dist-browser/@spawnite/schema/exports/game-materials-schema.js +1 -0
  1097. package/dist-browser/@spawnite/schema/exports/game-origin.js +1 -0
  1098. package/dist-browser/@spawnite/schema/exports/game-page-path.js +1 -0
  1099. package/dist-browser/@spawnite/schema/exports/game-save-key.js +1 -0
  1100. package/dist-browser/@spawnite/schema/exports/grid-map.js +1 -0
  1101. package/dist-browser/@spawnite/schema/exports/ground-rule-schema.js +1 -0
  1102. package/dist-browser/@spawnite/schema/exports/ground-schema.js +1 -0
  1103. package/dist-browser/@spawnite/schema/exports/hud-slot.js +1 -0
  1104. package/dist-browser/@spawnite/schema/exports/init-message.js +1 -0
  1105. package/dist-browser/@spawnite/schema/exports/init-save.js +1 -0
  1106. package/dist-browser/@spawnite/schema/exports/insets-message.js +1 -0
  1107. package/dist-browser/@spawnite/schema/exports/is-additive-schema-change.js +1 -0
  1108. package/dist-browser/@spawnite/schema/exports/is-game-id.js +1 -0
  1109. package/dist-browser/@spawnite/schema/exports/is-game-slug.js +1 -0
  1110. package/dist-browser/@spawnite/schema/exports/is-kept-label.js +1 -0
  1111. package/dist-browser/@spawnite/schema/exports/is-link-direct.js +1 -0
  1112. package/dist-browser/@spawnite/schema/exports/is-older-reader.js +1 -0
  1113. package/dist-browser/@spawnite/schema/exports/is-particle-effect-looping.js +1 -0
  1114. package/dist-browser/@spawnite/schema/exports/is-room-players.js +1 -0
  1115. package/dist-browser/@spawnite/schema/exports/is-room-send-rate.js +1 -0
  1116. package/dist-browser/@spawnite/schema/exports/item-definition.js +1 -0
  1117. package/dist-browser/@spawnite/schema/exports/join-room-input.js +1 -0
  1118. package/dist-browser/@spawnite/schema/exports/leave-message.js +1 -0
  1119. package/dist-browser/@spawnite/schema/exports/left-message.js +1 -0
  1120. package/dist-browser/@spawnite/schema/exports/list-assets-input.js +1 -0
  1121. package/dist-browser/@spawnite/schema/exports/list-clips-input.js +1 -0
  1122. package/dist-browser/@spawnite/schema/exports/list-templates-input.js +1 -0
  1123. package/dist-browser/@spawnite/schema/exports/list-wiki-input.js +1 -0
  1124. package/dist-browser/@spawnite/schema/exports/long-call-input.js +1 -0
  1125. package/dist-browser/@spawnite/schema/exports/longest-timeout-seconds.js +1 -0
  1126. package/dist-browser/@spawnite/schema/exports/make-model-input.js +1 -0
  1127. package/dist-browser/@spawnite/schema/exports/map-base-schema.js +1 -0
  1128. package/dist-browser/@spawnite/schema/exports/map-path.js +1 -0
  1129. package/dist-browser/@spawnite/schema/exports/map-point.js +1 -0
  1130. package/dist-browser/@spawnite/schema/exports/map-post.js +1 -0
  1131. package/dist-browser/@spawnite/schema/exports/map-prop-schema.js +1 -0
  1132. package/dist-browser/@spawnite/schema/exports/map-props-patch.js +1 -0
  1133. package/dist-browser/@spawnite/schema/exports/map-props-schema.js +1 -0
  1134. package/dist-browser/@spawnite/schema/exports/map-schema.js +1 -0
  1135. package/dist-browser/@spawnite/schema/exports/map-sea-schema.js +1 -0
  1136. package/dist-browser/@spawnite/schema/exports/map-terrain-schema.js +1 -0
  1137. package/dist-browser/@spawnite/schema/exports/material-cover-schema.js +1 -0
  1138. package/dist-browser/@spawnite/schema/exports/material-look-schema.js +1 -0
  1139. package/dist-browser/@spawnite/schema/exports/material-name.js +1 -0
  1140. package/dist-browser/@spawnite/schema/exports/material-sets.js +1 -0
  1141. package/dist-browser/@spawnite/schema/exports/materials-schema.js +1 -0
  1142. package/dist-browser/@spawnite/schema/exports/max-error-report-bytes.js +1 -0
  1143. package/dist-browser/@spawnite/schema/exports/max-save-body-bytes.js +1 -0
  1144. package/dist-browser/@spawnite/schema/exports/max-save-body-ceiling-bytes.js +1 -0
  1145. package/dist-browser/@spawnite/schema/exports/max-save-unpacked-bytes.js +1 -0
  1146. package/dist-browser/@spawnite/schema/exports/max-save-unpacked-ceiling-bytes.js +1 -0
  1147. package/dist-browser/@spawnite/schema/exports/menu-message.js +1 -0
  1148. package/dist-browser/@spawnite/schema/exports/merge-carried-settings.js +1 -0
  1149. package/dist-browser/@spawnite/schema/exports/merge-save-highest.js +1 -0
  1150. package/dist-browser/@spawnite/schema/exports/model-reference-schema.js +1 -0
  1151. package/dist-browser/@spawnite/schema/exports/model-triangle-budget.js +1 -0
  1152. package/dist-browser/@spawnite/schema/exports/most-rejoin-hold-seconds.js +1 -0
  1153. package/dist-browser/@spawnite/schema/exports/most-room-players.js +1 -0
  1154. package/dist-browser/@spawnite/schema/exports/name-schema.js +1 -0
  1155. package/dist-browser/@spawnite/schema/exports/new-game-input.js +1 -0
  1156. package/dist-browser/@spawnite/schema/exports/package-room-hint.js +1 -0
  1157. package/dist-browser/@spawnite/schema/exports/package-room.js +1 -0
  1158. package/dist-browser/@spawnite/schema/exports/page-message-versions.js +1 -0
  1159. package/dist-browser/@spawnite/schema/exports/page-message.js +1 -0
  1160. package/dist-browser/@spawnite/schema/exports/page-settings-message.js +1 -0
  1161. package/dist-browser/@spawnite/schema/exports/parse-link-conditions.js +1 -0
  1162. package/dist-browser/@spawnite/schema/exports/particle-effect-limits.js +1 -0
  1163. package/dist-browser/@spawnite/schema/exports/particle-sprite-max-side.js +1 -0
  1164. package/dist-browser/@spawnite/schema/exports/place-loot-input.js +1 -0
  1165. package/dist-browser/@spawnite/schema/exports/place-props-input.js +1 -0
  1166. package/dist-browser/@spawnite/schema/exports/play-domain.js +1 -0
  1167. package/dist-browser/@spawnite/schema/exports/profile-game-input.js +1 -0
  1168. package/dist-browser/@spawnite/schema/exports/project-folder.js +1 -0
  1169. package/dist-browser/@spawnite/schema/exports/publish-assets-input.js +1 -0
  1170. package/dist-browser/@spawnite/schema/exports/publish-version-input.js +1 -0
  1171. package/dist-browser/@spawnite/schema/exports/query-map-input.js +1 -0
  1172. package/dist-browser/@spawnite/schema/exports/read-ai-tree-input.js +1 -0
  1173. package/dist-browser/@spawnite/schema/exports/read-chat-input.js +1 -0
  1174. package/dist-browser/@spawnite/schema/exports/read-clip-input.js +1 -0
  1175. package/dist-browser/@spawnite/schema/exports/read-clip-start-time.js +1 -0
  1176. package/dist-browser/@spawnite/schema/exports/read-game-id.js +1 -0
  1177. package/dist-browser/@spawnite/schema/exports/read-game-wiki-input.js +1 -0
  1178. package/dist-browser/@spawnite/schema/exports/read-package-room.js +1 -0
  1179. package/dist-browser/@spawnite/schema/exports/read-paint-grid.js +1 -0
  1180. package/dist-browser/@spawnite/schema/exports/read-particle-effect.js +1 -0
  1181. package/dist-browser/@spawnite/schema/exports/read-room-mode.js +1 -0
  1182. package/dist-browser/@spawnite/schema/exports/read-run-input.js +1 -0
  1183. package/dist-browser/@spawnite/schema/exports/read-save-mark.js +1 -0
  1184. package/dist-browser/@spawnite/schema/exports/read-save-record.js +1 -0
  1185. package/dist-browser/@spawnite/schema/exports/read-terrain-grid.js +1 -0
  1186. package/dist-browser/@spawnite/schema/exports/read-track-level.js +1 -0
  1187. package/dist-browser/@spawnite/schema/exports/read-wiki-input.js +1 -0
  1188. package/dist-browser/@spawnite/schema/exports/ready-message.js +1 -0
  1189. package/dist-browser/@spawnite/schema/exports/record-clip-input.js +1 -0
  1190. package/dist-browser/@spawnite/schema/exports/registry-entry.js +1 -0
  1191. package/dist-browser/@spawnite/schema/exports/registry-file.js +1 -0
  1192. package/dist-browser/@spawnite/schema/exports/registry-item-schema-url.js +1 -0
  1193. package/dist-browser/@spawnite/schema/exports/registry-item.js +1 -0
  1194. package/dist-browser/@spawnite/schema/exports/registry-schema-url.js +1 -0
  1195. package/dist-browser/@spawnite/schema/exports/registry.js +1 -0
  1196. package/dist-browser/@spawnite/schema/exports/resolve-room-settings.js +1 -0
  1197. package/dist-browser/@spawnite/schema/exports/reverse-wiki-relation.js +1 -0
  1198. package/dist-browser/@spawnite/schema/exports/room-send-rates.js +1 -0
  1199. package/dist-browser/@spawnite/schema/exports/save-codec-mark.js +1 -0
  1200. package/dist-browser/@spawnite/schema/exports/save-failed-message.js +1 -0
  1201. package/dist-browser/@spawnite/schema/exports/save-fingerprint-format.js +1 -0
  1202. package/dist-browser/@spawnite/schema/exports/save-limit-warning-share.js +1 -0
  1203. package/dist-browser/@spawnite/schema/exports/save-load-failed-message.js +1 -0
  1204. package/dist-browser/@spawnite/schema/exports/save-message.js +1 -0
  1205. package/dist-browser/@spawnite/schema/exports/save-now-message.js +1 -0
  1206. package/dist-browser/@spawnite/schema/exports/save-record-message.js +1 -0
  1207. package/dist-browser/@spawnite/schema/exports/saved-health-schema.js +1 -0
  1208. package/dist-browser/@spawnite/schema/exports/saved-level-schema.js +1 -0
  1209. package/dist-browser/@spawnite/schema/exports/saved-message.js +1 -0
  1210. package/dist-browser/@spawnite/schema/exports/saved-stack-schema.js +1 -0
  1211. package/dist-browser/@spawnite/schema/exports/saved-stat-schema.js +1 -0
  1212. package/dist-browser/@spawnite/schema/exports/saved-vector-schema.js +1 -0
  1213. package/dist-browser/@spawnite/schema/exports/scatter-kinds.js +1 -0
  1214. package/dist-browser/@spawnite/schema/exports/scene-name.js +1 -0
  1215. package/dist-browser/@spawnite/schema/exports/screenshot-input.js +1 -0
  1216. package/dist-browser/@spawnite/schema/exports/search-wiki-input.js +1 -0
  1217. package/dist-browser/@spawnite/schema/exports/seat-credential.js +1 -0
  1218. package/dist-browser/@spawnite/schema/exports/seat-message.js +1 -0
  1219. package/dist-browser/@spawnite/schema/exports/send-input-input.js +1 -0
  1220. package/dist-browser/@spawnite/schema/exports/servers-folder-name.js +1 -0
  1221. package/dist-browser/@spawnite/schema/exports/set-nickname-input.js +1 -0
  1222. package/dist-browser/@spawnite/schema/exports/set-trait-input.js +1 -0
  1223. package/dist-browser/@spawnite/schema/exports/set-visibility-input.js +1 -0
  1224. package/dist-browser/@spawnite/schema/exports/settings-schema.js +1 -0
  1225. package/dist-browser/@spawnite/schema/exports/shot-angle-schema.js +1 -0
  1226. package/dist-browser/@spawnite/schema/exports/shot-camera-schema.js +1 -0
  1227. package/dist-browser/@spawnite/schema/exports/shot-post.js +1 -0
  1228. package/dist-browser/@spawnite/schema/exports/shots-folder-name.js +1 -0
  1229. package/dist-browser/@spawnite/schema/exports/shots-path.js +1 -0
  1230. package/dist-browser/@spawnite/schema/exports/simulate-input.js +1 -0
  1231. package/dist-browser/@spawnite/schema/exports/slug-limits.js +1 -0
  1232. package/dist-browser/@spawnite/schema/exports/slugify-game-name.js +1 -0
  1233. package/dist-browser/@spawnite/schema/exports/snapshot-save-schema.js +1 -0
  1234. package/dist-browser/@spawnite/schema/exports/space-point-schema.js +1 -0
  1235. package/dist-browser/@spawnite/schema/exports/spawnite-folder-name.js +1 -0
  1236. package/dist-browser/@spawnite/schema/exports/start-playtest-input.js +1 -0
  1237. package/dist-browser/@spawnite/schema/exports/start-save-key.js +1 -0
  1238. package/dist-browser/@spawnite/schema/exports/steps-per-second.js +1 -0
  1239. package/dist-browser/@spawnite/schema/exports/store-age-bands.js +1 -0
  1240. package/dist-browser/@spawnite/schema/exports/store-page-limits.js +1 -0
  1241. package/dist-browser/@spawnite/schema/exports/store-page.js +1 -0
  1242. package/dist-browser/@spawnite/schema/exports/store-picture-rules.js +1 -0
  1243. package/dist-browser/@spawnite/schema/exports/store-picture.js +1 -0
  1244. package/dist-browser/@spawnite/schema/exports/tab-info.js +1 -0
  1245. package/dist-browser/@spawnite/schema/exports/tab-path.js +1 -0
  1246. package/dist-browser/@spawnite/schema/exports/tab-post.js +1 -0
  1247. package/dist-browser/@spawnite/schema/exports/tab-token-header.js +1 -0
  1248. package/dist-browser/@spawnite/schema/exports/tagged-save-value-schema.js +1 -0
  1249. package/dist-browser/@spawnite/schema/exports/terrain-brush.js +1 -0
  1250. package/dist-browser/@spawnite/schema/exports/terrain-fill.js +1 -0
  1251. package/dist-browser/@spawnite/schema/exports/terrain-map.js +1 -0
  1252. package/dist-browser/@spawnite/schema/exports/terrain-restore.js +1 -0
  1253. package/dist-browser/@spawnite/schema/exports/terrain-settlings.js +1 -0
  1254. package/dist-browser/@spawnite/schema/exports/terrain-stroke-shape.js +1 -0
  1255. package/dist-browser/@spawnite/schema/exports/terrain-stroke.js +1 -0
  1256. package/dist-browser/@spawnite/schema/exports/terrain-tools.js +1 -0
  1257. package/dist-browser/@spawnite/schema/exports/timeline-input.js +1 -0
  1258. package/dist-browser/@spawnite/schema/exports/to-display-name.js +1 -0
  1259. package/dist-browser/@spawnite/schema/exports/to-wiki-anchor.js +1 -0
  1260. package/dist-browser/@spawnite/schema/exports/track-level-schema.js +1 -0
  1261. package/dist-browser/@spawnite/schema/exports/untouched.js +1 -0
  1262. package/dist-browser/@spawnite/schema/exports/upload-store-page-input.js +1 -0
  1263. package/dist-browser/@spawnite/schema/exports/upload-version-input.js +1 -0
  1264. package/dist-browser/@spawnite/schema/exports/versions-of-save-manifest-entry.js +1 -0
  1265. package/dist-browser/@spawnite/schema/exports/versions-of.js +1 -0
  1266. package/dist-browser/@spawnite/schema/exports/view-schema.js +1 -0
  1267. package/dist-browser/@spawnite/schema/exports/voice-settings.js +1 -0
  1268. package/dist-browser/@spawnite/schema/exports/whoami-input.js +1 -0
  1269. package/dist-browser/@spawnite/schema/exports/wiki-overview-path.js +1 -0
  1270. package/dist-browser/@spawnite/schema/exports/wiki-page-path.js +1 -0
  1271. package/dist-browser/@spawnite/schema/exports/wiki-page-ref.js +1 -0
  1272. package/dist-browser/@spawnite/schema/exports/wiki-path-part.js +1 -0
  1273. package/dist-browser/@spawnite/schema/exports/wiki-site.js +1 -0
  1274. package/dist-browser/@spawnite/schema/exports/write-link-settings.js +1 -0
  1275. package/dist-browser/@spawnite/schema/exports/write-paint-grid.js +1 -0
  1276. package/dist-browser/@spawnite/schema/exports/write-save-record.js +1 -0
  1277. package/dist-browser/@spawnite/schema/exports/write-terrain-grid.js +1 -0
  1278. package/dist-browser/@spawnite/schema/exports/write-wiki-page-input.js +1 -0
  1279. package/dist-browser/@spawnite/schema/exports/z.js +1 -0
  1280. package/dist-browser/@spawnite/schema.js +1 -0
  1281. package/dist-browser/@spawnite/ui/motion.js +1 -0
  1282. package/dist-browser/@spawnite/ui.js +1 -0
  1283. package/dist-browser/THIRD-PARTY-NOTICES +2949 -0
  1284. package/dist-browser/assets/basis_transcoder-VXdx5NbI.wasm +0 -0
  1285. package/dist-browser/assets/basis_transcoder-o4Hde_L7.js +19 -0
  1286. package/dist-browser/assets/draco_decoder-C32yEggz.wasm +0 -0
  1287. package/dist-browser/assets/draco_decoder-Z1_iN-Ht.wasm +0 -0
  1288. package/dist-browser/assets/draco_decoder-fzg4nYZr.js +34 -0
  1289. package/dist-browser/assets/draco_wasm_wrapper-DxJM36Ib.js +117 -0
  1290. package/dist-browser/assets/draco_wasm_wrapper-fZCQGLGb.js +116 -0
  1291. package/dist-browser/assets/rapier_wasm3d_bg-CcJdV3OS.wasm +0 -0
  1292. package/dist-browser/chunks/-8xKUVc-.js +1 -0
  1293. package/dist-browser/chunks/0Bppyo06.js +1 -0
  1294. package/dist-browser/chunks/0XBYBf4e.js +1 -0
  1295. package/dist-browser/chunks/1Pk4GW-o.js +1 -0
  1296. package/dist-browser/chunks/1TfeBVY_.js +1 -0
  1297. package/dist-browser/chunks/2GzBwp8F.js +1 -0
  1298. package/dist-browser/chunks/37dBpPRN.js +1 -0
  1299. package/dist-browser/chunks/3GDQ_l39.js +1 -0
  1300. package/dist-browser/chunks/4r3wlCT-.js +56 -0
  1301. package/dist-browser/chunks/51muForc.js +2 -0
  1302. package/dist-browser/chunks/5l3Kj8OA.js +25 -0
  1303. package/dist-browser/chunks/5v0sm-la.js +1 -0
  1304. package/dist-browser/chunks/6RSie8Zr.js +1 -0
  1305. package/dist-browser/chunks/6VxScSBj.js +1 -0
  1306. package/dist-browser/chunks/6r1L_s87.js +1 -0
  1307. package/dist-browser/chunks/703AF8IC.js +2 -0
  1308. package/dist-browser/chunks/7kk1UrXM.js +54 -0
  1309. package/dist-browser/chunks/7v-xFmSc.js +1 -0
  1310. package/dist-browser/chunks/8CwB1oG9.js +1 -0
  1311. package/dist-browser/chunks/8GjxAP3h.js +1 -0
  1312. package/dist-browser/chunks/8Pep1QKH.js +1 -0
  1313. package/dist-browser/chunks/8eSx71cM.js +1 -0
  1314. package/dist-browser/chunks/8qLBuj0B.js +1 -0
  1315. package/dist-browser/chunks/8uMFNz4F.js +48 -0
  1316. package/dist-browser/chunks/9BUmmiDi.js +64 -0
  1317. package/dist-browser/chunks/AEQH3xKs.js +1 -0
  1318. package/dist-browser/chunks/B04SdTxo.js +1 -0
  1319. package/dist-browser/chunks/B0d1OhsT.js +1 -0
  1320. package/dist-browser/chunks/B0d94ulh.js +1 -0
  1321. package/dist-browser/chunks/B0dIJJnS.js +104 -0
  1322. package/dist-browser/chunks/B0sEcOA4.js +1 -0
  1323. package/dist-browser/chunks/B17MsfBW.js +2 -0
  1324. package/dist-browser/chunks/B1Q2EYQa.js +409 -0
  1325. package/dist-browser/chunks/B1VGbFnq.js +1 -0
  1326. package/dist-browser/chunks/B1ZLDwkb.js +1 -0
  1327. package/dist-browser/chunks/B1gZ4XNT.js +1 -0
  1328. package/dist-browser/chunks/B2P8OKx4.js +114 -0
  1329. package/dist-browser/chunks/B2lwHY_A.js +1 -0
  1330. package/dist-browser/chunks/B2rfjAu3.js +1 -0
  1331. package/dist-browser/chunks/B3cpZ7qW.js +1 -0
  1332. package/dist-browser/chunks/B3zyuqQe.js +1 -0
  1333. package/dist-browser/chunks/B4HH7vxm.js +1 -0
  1334. package/dist-browser/chunks/B4L72GuI.js +1 -0
  1335. package/dist-browser/chunks/B4PXM93E.js +1 -0
  1336. package/dist-browser/chunks/B4dyXOK4.js +2 -0
  1337. package/dist-browser/chunks/B4f83JmW.js +1 -0
  1338. package/dist-browser/chunks/B4rtOA11.js +1 -0
  1339. package/dist-browser/chunks/B53Q2-Fw.js +42 -0
  1340. package/dist-browser/chunks/B5YG9Ima.js +35 -0
  1341. package/dist-browser/chunks/B5npwEiE.js +1 -0
  1342. package/dist-browser/chunks/B6TyyPfn.js +2280 -0
  1343. package/dist-browser/chunks/B6YPgX9B.js +1 -0
  1344. package/dist-browser/chunks/B7K2KMcP.js +289 -0
  1345. package/dist-browser/chunks/B8GCRzu-.js +1 -0
  1346. package/dist-browser/chunks/B8f3enUO.js +42 -0
  1347. package/dist-browser/chunks/B9dPPcmc.js +239 -0
  1348. package/dist-browser/chunks/B9n7U8x8.js +24 -0
  1349. package/dist-browser/chunks/BAcEoh4A.js +1 -0
  1350. package/dist-browser/chunks/BBTy17gV.js +23 -0
  1351. package/dist-browser/chunks/BBoWq_28.js +1 -0
  1352. package/dist-browser/chunks/BCEkROxA.js +1 -0
  1353. package/dist-browser/chunks/BCSDojKA.js +2 -0
  1354. package/dist-browser/chunks/BCnGjanZ.js +1 -0
  1355. package/dist-browser/chunks/BCy2Imwl.js +1 -0
  1356. package/dist-browser/chunks/BD93nK4k.js +1 -0
  1357. package/dist-browser/chunks/BDYWv4Pt.js +1 -0
  1358. package/dist-browser/chunks/BDntRBeD.js +1 -0
  1359. package/dist-browser/chunks/BE0sHH_C.js +1 -0
  1360. package/dist-browser/chunks/BE7yKwOS.js +1 -0
  1361. package/dist-browser/chunks/BFDqfrDx.js +61 -0
  1362. package/dist-browser/chunks/BFnCgym5.js +1 -0
  1363. package/dist-browser/chunks/BFpenkAR.js +1 -0
  1364. package/dist-browser/chunks/BFvqTjM2.js +1 -0
  1365. package/dist-browser/chunks/BG8QaCAl.js +1 -0
  1366. package/dist-browser/chunks/BGsrJU1n.js +219 -0
  1367. package/dist-browser/chunks/BGze3w87.js +1 -0
  1368. package/dist-browser/chunks/BHYG5big.js +1 -0
  1369. package/dist-browser/chunks/BHZuFsZC.js +26 -0
  1370. package/dist-browser/chunks/BHePouWp.js +1 -0
  1371. package/dist-browser/chunks/BIGc2B5x.js +106 -0
  1372. package/dist-browser/chunks/BIgbJOA7.js +1 -0
  1373. package/dist-browser/chunks/BIlEJ_uM.js +1 -0
  1374. package/dist-browser/chunks/BIrJsLCp.js +1 -0
  1375. package/dist-browser/chunks/BJCTIWwI.js +97 -0
  1376. package/dist-browser/chunks/BJWwGEft.js +22 -0
  1377. package/dist-browser/chunks/BJbnvkQD.js +33 -0
  1378. package/dist-browser/chunks/BJj_P5qy.js +40 -0
  1379. package/dist-browser/chunks/BKMmwIjP.js +1 -0
  1380. package/dist-browser/chunks/BL2b-bga.js +1 -0
  1381. package/dist-browser/chunks/BL3GFPpX.js +1 -0
  1382. package/dist-browser/chunks/BL3JqalM.js +1 -0
  1383. package/dist-browser/chunks/BLQoPgRQ.js +17 -0
  1384. package/dist-browser/chunks/BLdTHuK5.js +38 -0
  1385. package/dist-browser/chunks/BLxVM0Bx.js +1 -0
  1386. package/dist-browser/chunks/BMOXLfbG.js +1 -0
  1387. package/dist-browser/chunks/BMyF16Pb.js +1 -0
  1388. package/dist-browser/chunks/BN0JituG.js +1 -0
  1389. package/dist-browser/chunks/BNiTh9Zb.js +1 -0
  1390. package/dist-browser/chunks/BNm7BDEl.js +1 -0
  1391. package/dist-browser/chunks/BNucCtAC.js +1 -0
  1392. package/dist-browser/chunks/BOAa4bZ5.js +80 -0
  1393. package/dist-browser/chunks/BOIXSUZ_.js +1 -0
  1394. package/dist-browser/chunks/BOY2osHs.js +1 -0
  1395. package/dist-browser/chunks/BP9HooTj.js +1 -0
  1396. package/dist-browser/chunks/BPsQn259.js +1 -0
  1397. package/dist-browser/chunks/BPyPftW0.js +1 -0
  1398. package/dist-browser/chunks/BQl3ddsW.js +1 -0
  1399. package/dist-browser/chunks/BSaFdJJr.js +1 -0
  1400. package/dist-browser/chunks/BSb5Y-Am.js +1 -0
  1401. package/dist-browser/chunks/BSoHyLeW.js +1 -0
  1402. package/dist-browser/chunks/BUJHJVUo.js +1 -0
  1403. package/dist-browser/chunks/BV45MfzJ.js +206 -0
  1404. package/dist-browser/chunks/BWLobtMG.js +1 -0
  1405. package/dist-browser/chunks/BWX2omqC.js +1 -0
  1406. package/dist-browser/chunks/BX-IJ6Jw.js +1 -0
  1407. package/dist-browser/chunks/BZ67u85L.js +1 -0
  1408. package/dist-browser/chunks/BZL3DkMo.js +1 -0
  1409. package/dist-browser/chunks/BZkTFuN8.js +32 -0
  1410. package/dist-browser/chunks/B_olo1g0.js +1 -0
  1411. package/dist-browser/chunks/B_xcv6lP.js +1 -0
  1412. package/dist-browser/chunks/BadDFgpu.js +3 -0
  1413. package/dist-browser/chunks/BbIllpJG.js +1 -0
  1414. package/dist-browser/chunks/Bc7uTOHd.js +1 -0
  1415. package/dist-browser/chunks/BcH7_nnK.js +1 -0
  1416. package/dist-browser/chunks/Bdd_iq-Z.js +1 -0
  1417. package/dist-browser/chunks/BdkaRoRG.js +3 -0
  1418. package/dist-browser/chunks/BeUM0nnI.js +1 -0
  1419. package/dist-browser/chunks/BfkxY7do.js +13 -0
  1420. package/dist-browser/chunks/BfzfmpKY.js +1 -0
  1421. package/dist-browser/chunks/BgNGXLZH.js +1 -0
  1422. package/dist-browser/chunks/Bgmtnmc9.js +1 -0
  1423. package/dist-browser/chunks/BgtS-68o.js +1 -0
  1424. package/dist-browser/chunks/BhE7ED0P.js +1 -0
  1425. package/dist-browser/chunks/BhG-aLlJ.js +17 -0
  1426. package/dist-browser/chunks/BhtgOF9y.js +1 -0
  1427. package/dist-browser/chunks/BhvPhm_f.js +12 -0
  1428. package/dist-browser/chunks/Bhvb25xz.js +1 -0
  1429. package/dist-browser/chunks/Bi2imP0-.js +1 -0
  1430. package/dist-browser/chunks/Bi4f74NJ.js +1 -0
  1431. package/dist-browser/chunks/BiCMFIxo.js +1 -0
  1432. package/dist-browser/chunks/BiSn0Dtc.js +1 -0
  1433. package/dist-browser/chunks/BiU0PYSX.js +1 -0
  1434. package/dist-browser/chunks/BipZQXT8.js +1 -0
  1435. package/dist-browser/chunks/BiqCT0be.js +1 -0
  1436. package/dist-browser/chunks/BjVVweLJ.js +1 -0
  1437. package/dist-browser/chunks/BjeL5CV8.js +1 -0
  1438. package/dist-browser/chunks/BjikXbkr.js +1 -0
  1439. package/dist-browser/chunks/BkNRpWJF.js +1 -0
  1440. package/dist-browser/chunks/BkWdvCr2.js +1 -0
  1441. package/dist-browser/chunks/BkfYP8sS.js +1 -0
  1442. package/dist-browser/chunks/BkoAp3nt.js +17 -0
  1443. package/dist-browser/chunks/BkuNzUds.js +5 -0
  1444. package/dist-browser/chunks/BlDBqfnQ.js +1 -0
  1445. package/dist-browser/chunks/Blob4piG.js +1 -0
  1446. package/dist-browser/chunks/Bm-NgCJv.js +290 -0
  1447. package/dist-browser/chunks/BmwnZMHR.js +1 -0
  1448. package/dist-browser/chunks/Bn-oguIM.js +1 -0
  1449. package/dist-browser/chunks/Bn8JxKQd.js +947 -0
  1450. package/dist-browser/chunks/Bn8l74kN.js +1 -0
  1451. package/dist-browser/chunks/Bo2vvsC6.js +1 -0
  1452. package/dist-browser/chunks/BoJD7UsQ.js +5 -0
  1453. package/dist-browser/chunks/BoRPdfTd.js +1 -0
  1454. package/dist-browser/chunks/BoTmVVAp.js +1 -0
  1455. package/dist-browser/chunks/BoiOnH_p.js +1 -0
  1456. package/dist-browser/chunks/Bpe2I0GB.js +1 -0
  1457. package/dist-browser/chunks/BqD0o821.js +25 -0
  1458. package/dist-browser/chunks/BqXaJXLb.js +1 -0
  1459. package/dist-browser/chunks/BqsB_Ag5.js +1 -0
  1460. package/dist-browser/chunks/Br-JA8rZ.js +1 -0
  1461. package/dist-browser/chunks/Br2nhNMH.js +1 -0
  1462. package/dist-browser/chunks/BrezGx31.js +3 -0
  1463. package/dist-browser/chunks/BsZMTFvx.js +1 -0
  1464. package/dist-browser/chunks/Bt2nCTua.js +51 -0
  1465. package/dist-browser/chunks/BtM7kQaS.js +1 -0
  1466. package/dist-browser/chunks/BtZNIAhj.js +1 -0
  1467. package/dist-browser/chunks/Btgu8kW9.js +3 -0
  1468. package/dist-browser/chunks/Btjboa9G.js +248 -0
  1469. package/dist-browser/chunks/Btn1Hp7-.js +1 -0
  1470. package/dist-browser/chunks/Bu1cOMsK.js +1 -0
  1471. package/dist-browser/chunks/Bv2bGJo9.js +1 -0
  1472. package/dist-browser/chunks/BvK95JoS.js +1 -0
  1473. package/dist-browser/chunks/BvrPFs0h.js +1 -0
  1474. package/dist-browser/chunks/BvsNGgEj.js +1 -0
  1475. package/dist-browser/chunks/ByyEEkYz.js +1 -0
  1476. package/dist-browser/chunks/BzAJiB5u.js +1 -0
  1477. package/dist-browser/chunks/BzCmY2x1.js +68 -0
  1478. package/dist-browser/chunks/BzKtjbg2.js +1 -0
  1479. package/dist-browser/chunks/BzZ2lwsC.js +134 -0
  1480. package/dist-browser/chunks/BzcZWs3f.js +1 -0
  1481. package/dist-browser/chunks/BzuN4nW7.js +33 -0
  1482. package/dist-browser/chunks/BzwHJPea.js +1 -0
  1483. package/dist-browser/chunks/Bzy44bV2.js +4216 -0
  1484. package/dist-browser/chunks/C-O8NhHK.js +1 -0
  1485. package/dist-browser/chunks/C-_LmeNn.js +934 -0
  1486. package/dist-browser/chunks/C-ztiLpW.js +1 -0
  1487. package/dist-browser/chunks/C0Iji4Qk.js +1 -0
  1488. package/dist-browser/chunks/C12xlM79.js +1 -0
  1489. package/dist-browser/chunks/C1BDCorD.js +99 -0
  1490. package/dist-browser/chunks/C2Dm6eUt.js +1 -0
  1491. package/dist-browser/chunks/C2RePWen.js +1 -0
  1492. package/dist-browser/chunks/C2suuPFw.js +1 -0
  1493. package/dist-browser/chunks/C33aG9gN.js +1 -0
  1494. package/dist-browser/chunks/C3Y15gp1.js +1 -0
  1495. package/dist-browser/chunks/C3gvA1lh.js +1 -0
  1496. package/dist-browser/chunks/C3pLayiC.js +143 -0
  1497. package/dist-browser/chunks/C3wBsE11.js +1 -0
  1498. package/dist-browser/chunks/C4E_bIDB.js +1 -0
  1499. package/dist-browser/chunks/C4OFzvAP.js +1 -0
  1500. package/dist-browser/chunks/C4fzyzUE.js +1 -0
  1501. package/dist-browser/chunks/C5P0RHNI.js +1 -0
  1502. package/dist-browser/chunks/C6XZSTSj.js +39 -0
  1503. package/dist-browser/chunks/C784v2VA.js +1 -0
  1504. package/dist-browser/chunks/C7CUzsYJ.js +1 -0
  1505. package/dist-browser/chunks/C7FykdRJ.js +1 -0
  1506. package/dist-browser/chunks/C7RSxM0z.js +1 -0
  1507. package/dist-browser/chunks/C9J2i9In.js +2 -0
  1508. package/dist-browser/chunks/C9Kd-Lrf.js +1 -0
  1509. package/dist-browser/chunks/C9OKiK4z.js +15 -0
  1510. package/dist-browser/chunks/C9bAX0wX.js +1 -0
  1511. package/dist-browser/chunks/C9duFT9_.js +9 -0
  1512. package/dist-browser/chunks/CA52Vkpa.js +3 -0
  1513. package/dist-browser/chunks/CAB0sdkM.js +8 -0
  1514. package/dist-browser/chunks/CBcRTsvX.js +1 -0
  1515. package/dist-browser/chunks/CC8kNj4O.js +1 -0
  1516. package/dist-browser/chunks/CC_taxfs.js +1 -0
  1517. package/dist-browser/chunks/CCnjeop3.js +1 -0
  1518. package/dist-browser/chunks/CD1Phcj7.js +1 -0
  1519. package/dist-browser/chunks/CDBmfTua.js +1 -0
  1520. package/dist-browser/chunks/CDFKagMr.js +1 -0
  1521. package/dist-browser/chunks/CDZegpP1.js +1 -0
  1522. package/dist-browser/chunks/CD_-ZdOx.js +1 -0
  1523. package/dist-browser/chunks/CDmSfsbx.js +1 -0
  1524. package/dist-browser/chunks/CDy5CkBb.js +1 -0
  1525. package/dist-browser/chunks/CDyybrEA.js +1 -0
  1526. package/dist-browser/chunks/CENY_jwA.js +5 -0
  1527. package/dist-browser/chunks/CEfq3wMj.js +1 -0
  1528. package/dist-browser/chunks/CEtY4HlI.js +1 -0
  1529. package/dist-browser/chunks/CEtbZ-Ou.js +51 -0
  1530. package/dist-browser/chunks/CFVbNh1J.js +1 -0
  1531. package/dist-browser/chunks/CG5A_mHR.js +1 -0
  1532. package/dist-browser/chunks/CGFRQ0IS.js +3 -0
  1533. package/dist-browser/chunks/CGPPrudP.js +1 -0
  1534. package/dist-browser/chunks/CGZdRHCz.js +1 -0
  1535. package/dist-browser/chunks/CG_ggIC3.js +230 -0
  1536. package/dist-browser/chunks/CHD7Siks.js +61 -0
  1537. package/dist-browser/chunks/CHGAmNbz.js +24 -0
  1538. package/dist-browser/chunks/CH_3weAk.js +136 -0
  1539. package/dist-browser/chunks/CHnMaz0U.js +1 -0
  1540. package/dist-browser/chunks/CHx28aAq.js +1 -0
  1541. package/dist-browser/chunks/CIPEdQZg.js +1 -0
  1542. package/dist-browser/chunks/CIU50MA1.js +1 -0
  1543. package/dist-browser/chunks/CIXqygz5.js +42 -0
  1544. package/dist-browser/chunks/CIz-HH07.js +1585 -0
  1545. package/dist-browser/chunks/CJ4zQQhO.js +1 -0
  1546. package/dist-browser/chunks/CJD9mRmQ.js +1 -0
  1547. package/dist-browser/chunks/CJgknJ-O.js +12 -0
  1548. package/dist-browser/chunks/CL1lltpM.js +1 -0
  1549. package/dist-browser/chunks/CLxcu-z_.js +73 -0
  1550. package/dist-browser/chunks/CM3pB59z.js +1 -0
  1551. package/dist-browser/chunks/CM7fr6V2.js +1 -0
  1552. package/dist-browser/chunks/CMCldyjy.js +1 -0
  1553. package/dist-browser/chunks/CMhbdUh_.js +1 -0
  1554. package/dist-browser/chunks/CMj-G0tG.js +1 -0
  1555. package/dist-browser/chunks/CMy5JYMZ.js +1 -0
  1556. package/dist-browser/chunks/CNS048lI.js +1 -0
  1557. package/dist-browser/chunks/CO0SZ1hy.js +1 -0
  1558. package/dist-browser/chunks/COnv2PBF.js +2 -0
  1559. package/dist-browser/chunks/CP27PMpS.js +1 -0
  1560. package/dist-browser/chunks/CQRcPihd.js +6 -0
  1561. package/dist-browser/chunks/CRDIjF8C.js +2 -0
  1562. package/dist-browser/chunks/CRFCYrrv.js +1 -0
  1563. package/dist-browser/chunks/CRL527zA.js +1 -0
  1564. package/dist-browser/chunks/CRuuK4qI.js +1 -0
  1565. package/dist-browser/chunks/CSrliGR5.js +1 -0
  1566. package/dist-browser/chunks/CT24MROG.js +36 -0
  1567. package/dist-browser/chunks/CTKsfpS6.js +1 -0
  1568. package/dist-browser/chunks/CTovL-9G.js +1 -0
  1569. package/dist-browser/chunks/CU2_4WYp.js +1 -0
  1570. package/dist-browser/chunks/CVn3AkL4.js +3 -0
  1571. package/dist-browser/chunks/CW47wlpJ.js +1 -0
  1572. package/dist-browser/chunks/CWtE2FH4.js +6 -0
  1573. package/dist-browser/chunks/CWtqwiJb.js +1 -0
  1574. package/dist-browser/chunks/CX2yvOMR.js +32 -0
  1575. package/dist-browser/chunks/CXYvZiC5.js +1 -0
  1576. package/dist-browser/chunks/CY2_o-A_.js +1 -0
  1577. package/dist-browser/chunks/CYD5IpHG.js +1 -0
  1578. package/dist-browser/chunks/CYFmo-2d.js +1 -0
  1579. package/dist-browser/chunks/CYzJaZmG.js +1 -0
  1580. package/dist-browser/chunks/CZng9q4s.js +1 -0
  1581. package/dist-browser/chunks/C_3LSlp_.js +1 -0
  1582. package/dist-browser/chunks/C_popvm5.js +1 -0
  1583. package/dist-browser/chunks/Ca2qCbBO.js +227 -0
  1584. package/dist-browser/chunks/CaayFmFc.js +68 -0
  1585. package/dist-browser/chunks/CagC9ufD.js +6 -0
  1586. package/dist-browser/chunks/CamHr2sm.js +9 -0
  1587. package/dist-browser/chunks/Caw9wDgF.js +1 -0
  1588. package/dist-browser/chunks/CbRyzWz3.js +1 -0
  1589. package/dist-browser/chunks/CcQz6dxG.js +68 -0
  1590. package/dist-browser/chunks/CcUHIKVc.js +1 -0
  1591. package/dist-browser/chunks/Cd20lYkt.js +23 -0
  1592. package/dist-browser/chunks/Cdj8C4sv.js +1 -0
  1593. package/dist-browser/chunks/CeWzMWwP.js +1 -0
  1594. package/dist-browser/chunks/Ceeo2sCz.js +1 -0
  1595. package/dist-browser/chunks/CerF2aP5.js +1 -0
  1596. package/dist-browser/chunks/Cew-kv76.js +1 -0
  1597. package/dist-browser/chunks/Cf1F89pD.js +1 -0
  1598. package/dist-browser/chunks/Cff8_5zr.js +1 -0
  1599. package/dist-browser/chunks/Cgy6G_V-.js +1 -0
  1600. package/dist-browser/chunks/ChAqhjhd.js +243 -0
  1601. package/dist-browser/chunks/Chg_Q8x6.js +1 -0
  1602. package/dist-browser/chunks/Chx9z6ee.js +3 -0
  1603. package/dist-browser/chunks/Ci0DiZOM.js +1 -0
  1604. package/dist-browser/chunks/CiD_XHlg.js +1 -0
  1605. package/dist-browser/chunks/CjL-uP84.js +1 -0
  1606. package/dist-browser/chunks/CjPBNVRF.js +2 -0
  1607. package/dist-browser/chunks/CjTILWD4.js +3 -0
  1608. package/dist-browser/chunks/CkmGh-87.js +1 -0
  1609. package/dist-browser/chunks/ClZqxSEX.js +1 -0
  1610. package/dist-browser/chunks/CluBrQDl.js +1 -0
  1611. package/dist-browser/chunks/Clzbw8hC.js +104 -0
  1612. package/dist-browser/chunks/CmEJbuVc.js +1 -0
  1613. package/dist-browser/chunks/CmlWyQpr.js +1 -0
  1614. package/dist-browser/chunks/Cnh5-qw-.js +10 -0
  1615. package/dist-browser/chunks/CnwbVRym.js +1 -0
  1616. package/dist-browser/chunks/Co55Z6b-.js +34 -0
  1617. package/dist-browser/chunks/CoqDcyee.js +1 -0
  1618. package/dist-browser/chunks/CorZBnkZ.js +71 -0
  1619. package/dist-browser/chunks/CpKf07f9.js +72 -0
  1620. package/dist-browser/chunks/CqXobSJH.js +82 -0
  1621. package/dist-browser/chunks/CqwcKTEN.js +1 -0
  1622. package/dist-browser/chunks/Cs23D-lk.js +18 -0
  1623. package/dist-browser/chunks/CsT20qOq.js +1 -0
  1624. package/dist-browser/chunks/CsTuUPUb.js +1 -0
  1625. package/dist-browser/chunks/CtCvKs-8.js +1 -0
  1626. package/dist-browser/chunks/CtpF73Mi.js +1 -0
  1627. package/dist-browser/chunks/CuHid4qh.js +1 -0
  1628. package/dist-browser/chunks/CuhwmTWw.js +2 -0
  1629. package/dist-browser/chunks/Cv31r4NA.js +1 -0
  1630. package/dist-browser/chunks/CvVTau-c.js +1 -0
  1631. package/dist-browser/chunks/Cvdyeg_0.js +1 -0
  1632. package/dist-browser/chunks/CvgsNxMb.js +1 -0
  1633. package/dist-browser/chunks/Cvk3fWJd.js +31 -0
  1634. package/dist-browser/chunks/Cvq_OonK.js +1 -0
  1635. package/dist-browser/chunks/Cvzg7xRz.js +1039 -0
  1636. package/dist-browser/chunks/CwPUhsCN.js +111 -0
  1637. package/dist-browser/chunks/CwTYnDSQ.js +1 -0
  1638. package/dist-browser/chunks/CwVb7sDh.js +1 -0
  1639. package/dist-browser/chunks/CwkwVzf9.js +1 -0
  1640. package/dist-browser/chunks/Cwsm87qt.js +1 -0
  1641. package/dist-browser/chunks/CwtYJaZ0.js +1 -0
  1642. package/dist-browser/chunks/CxBgnQIE.js +1 -0
  1643. package/dist-browser/chunks/CxRCGV_D.js +1 -0
  1644. package/dist-browser/chunks/CxW3h7EP.js +1 -0
  1645. package/dist-browser/chunks/CxdFFqFC.js +1 -0
  1646. package/dist-browser/chunks/Cxl6U4QM.js +1 -0
  1647. package/dist-browser/chunks/CxqqJceE.js +262 -0
  1648. package/dist-browser/chunks/CyUjhzls.js +1 -0
  1649. package/dist-browser/chunks/CzHZycAX.js +1 -0
  1650. package/dist-browser/chunks/CzVBHx3T.js +1 -0
  1651. package/dist-browser/chunks/D-J5r5vm.js +502 -0
  1652. package/dist-browser/chunks/D-ZRVGDk.js +1 -0
  1653. package/dist-browser/chunks/D10MTZ8f.js +1 -0
  1654. package/dist-browser/chunks/D1dFmEHc.js +82 -0
  1655. package/dist-browser/chunks/D2SJBO5U.js +1 -0
  1656. package/dist-browser/chunks/D2bDAUlP.js +1 -0
  1657. package/dist-browser/chunks/D2qpNyTi.js +1 -0
  1658. package/dist-browser/chunks/D3Fr6yvq.js +1 -0
  1659. package/dist-browser/chunks/D3_eaTYS.js +1 -0
  1660. package/dist-browser/chunks/D3lBoMMr.js +29 -0
  1661. package/dist-browser/chunks/D5CFWMVX.js +1 -0
  1662. package/dist-browser/chunks/D5Cj4ub7.js +1 -0
  1663. package/dist-browser/chunks/D5EJDMZ-.js +2 -0
  1664. package/dist-browser/chunks/D6E_gImS.js +1 -0
  1665. package/dist-browser/chunks/D6XXX9Ue.js +1 -0
  1666. package/dist-browser/chunks/D6fd1dZA.js +1 -0
  1667. package/dist-browser/chunks/D852BHwA.js +40 -0
  1668. package/dist-browser/chunks/D8inQ_yL.js +1 -0
  1669. package/dist-browser/chunks/D9XZ_4Ga.js +145 -0
  1670. package/dist-browser/chunks/D9dlo-Ln.js +1 -0
  1671. package/dist-browser/chunks/DAB0WqX0.js +1 -0
  1672. package/dist-browser/chunks/DAH2JXIW.js +1 -0
  1673. package/dist-browser/chunks/DAPFhXVb.js +22 -0
  1674. package/dist-browser/chunks/DAxE8pMD.js +45 -0
  1675. package/dist-browser/chunks/DBj6QGQs.js +1 -0
  1676. package/dist-browser/chunks/DC3L5U86.js +1 -0
  1677. package/dist-browser/chunks/DC9vc-0L.js +1 -0
  1678. package/dist-browser/chunks/DCJlJ3lv.js +1 -0
  1679. package/dist-browser/chunks/DCaQLeIq.js +1 -0
  1680. package/dist-browser/chunks/DCc-gTDg.js +1 -0
  1681. package/dist-browser/chunks/DD2V7Wxl.js +1 -0
  1682. package/dist-browser/chunks/DD6onItE.js +1 -0
  1683. package/dist-browser/chunks/DDLmvpjg.js +1 -0
  1684. package/dist-browser/chunks/DDRCiC_a.js +1 -0
  1685. package/dist-browser/chunks/DEW70SgN.js +1 -0
  1686. package/dist-browser/chunks/DEucxoKb.js +1 -0
  1687. package/dist-browser/chunks/DF6Qh6eu.js +1 -0
  1688. package/dist-browser/chunks/DFtj_qQf.js +63 -0
  1689. package/dist-browser/chunks/DG4h2xXm.js +45 -0
  1690. package/dist-browser/chunks/DGYxR7PN.js +26 -0
  1691. package/dist-browser/chunks/DGlba0EV.js +1 -0
  1692. package/dist-browser/chunks/DHOehIg0.js +30 -0
  1693. package/dist-browser/chunks/DHiTLWtz.js +1 -0
  1694. package/dist-browser/chunks/DIHxCXEJ.js +1 -0
  1695. package/dist-browser/chunks/DII2y8tL.js +546 -0
  1696. package/dist-browser/chunks/DIcTMzLD.js +31 -0
  1697. package/dist-browser/chunks/DImXrYb5.js +1 -0
  1698. package/dist-browser/chunks/DIvOsQJS.js +393 -0
  1699. package/dist-browser/chunks/DJCfJlBy.js +1 -0
  1700. package/dist-browser/chunks/DKnN7RH0.js +1 -0
  1701. package/dist-browser/chunks/DKrOx_1M.js +1 -0
  1702. package/dist-browser/chunks/DMcWzziy.js +1 -0
  1703. package/dist-browser/chunks/DMk6G0lv.js +1 -0
  1704. package/dist-browser/chunks/DMyNEYzI.js +1 -0
  1705. package/dist-browser/chunks/DN0xP1fa.js +1 -0
  1706. package/dist-browser/chunks/DNef-bWt.js +1 -0
  1707. package/dist-browser/chunks/DNhTxxCh.js +1 -0
  1708. package/dist-browser/chunks/DNoIqPE7.js +1 -0
  1709. package/dist-browser/chunks/DNsR67l1.js +3 -0
  1710. package/dist-browser/chunks/DOEmZHjx.js +1 -0
  1711. package/dist-browser/chunks/DOFYt5cj.js +1 -0
  1712. package/dist-browser/chunks/DOWMFTFl.js +38 -0
  1713. package/dist-browser/chunks/DOYycP3M.js +1 -0
  1714. package/dist-browser/chunks/DOidSPk5.js +1 -0
  1715. package/dist-browser/chunks/DOvE9vCY.js +97 -0
  1716. package/dist-browser/chunks/DOyIRes1.js +1 -0
  1717. package/dist-browser/chunks/DPIksCnG.js +41 -0
  1718. package/dist-browser/chunks/DPNgRv8u.js +1 -0
  1719. package/dist-browser/chunks/DPXctdFS.js +27 -0
  1720. package/dist-browser/chunks/DPnn0uIO.js +1 -0
  1721. package/dist-browser/chunks/DQ0A9BJI.js +1 -0
  1722. package/dist-browser/chunks/DQbqNpgw.js +1 -0
  1723. package/dist-browser/chunks/DQea7zxR.js +1 -0
  1724. package/dist-browser/chunks/DSMSQCrr.js +36 -0
  1725. package/dist-browser/chunks/DSp9shD_.js +1 -0
  1726. package/dist-browser/chunks/DT0rWxA4.js +1176 -0
  1727. package/dist-browser/chunks/DTtjHrtM.js +1 -0
  1728. package/dist-browser/chunks/DV53iZve.js +64 -0
  1729. package/dist-browser/chunks/DVAMQgZs.js +1 -0
  1730. package/dist-browser/chunks/DVcRBsZ0.js +69 -0
  1731. package/dist-browser/chunks/DVrViq4W.js +1 -0
  1732. package/dist-browser/chunks/DWe0PJKb.js +1 -0
  1733. package/dist-browser/chunks/DWgUahRJ.js +1 -0
  1734. package/dist-browser/chunks/DXJRs_pC.js +1 -0
  1735. package/dist-browser/chunks/DXq97sWO.js +1 -0
  1736. package/dist-browser/chunks/DXzwsPHQ.js +8 -0
  1737. package/dist-browser/chunks/DYoIHzIt.js +2 -0
  1738. package/dist-browser/chunks/DZJGj1NY.js +1 -0
  1739. package/dist-browser/chunks/DZYUBtK-.js +10 -0
  1740. package/dist-browser/chunks/DZmRZ_iP.js +1 -0
  1741. package/dist-browser/chunks/D_MQ9Xc9.js +1 -0
  1742. package/dist-browser/chunks/D_V_oqfi.js +1 -0
  1743. package/dist-browser/chunks/D_fJrOcA.js +1 -0
  1744. package/dist-browser/chunks/DaE8j1Mj.js +1 -0
  1745. package/dist-browser/chunks/DaNJDW05.js +120 -0
  1746. package/dist-browser/chunks/DaqOKjgV.js +2 -0
  1747. package/dist-browser/chunks/DbM1VGG0.js +1 -0
  1748. package/dist-browser/chunks/DbVolxbX.js +1 -0
  1749. package/dist-browser/chunks/Dd3Azzh1.js +102 -0
  1750. package/dist-browser/chunks/Dd_HZKyk.js +1 -0
  1751. package/dist-browser/chunks/DePrIwoT.js +1 -0
  1752. package/dist-browser/chunks/Df-3V4RI.js +1 -0
  1753. package/dist-browser/chunks/DfPCBWZC.js +35 -0
  1754. package/dist-browser/chunks/DfTjtDZE.js +1 -0
  1755. package/dist-browser/chunks/Dfdpy3ar.js +1 -0
  1756. package/dist-browser/chunks/DhQi6uM8.js +1 -0
  1757. package/dist-browser/chunks/Dhq0zrZC.js +131 -0
  1758. package/dist-browser/chunks/DhrQ_H4H.js +1 -0
  1759. package/dist-browser/chunks/Di27GzYt.js +1 -0
  1760. package/dist-browser/chunks/Di8-zyqt.js +1 -0
  1761. package/dist-browser/chunks/DifZdnzu.js +1 -0
  1762. package/dist-browser/chunks/DikvOXI-.js +1 -0
  1763. package/dist-browser/chunks/Dj3lr7h3.js +33 -0
  1764. package/dist-browser/chunks/Dj8ovMlo.js +1 -0
  1765. package/dist-browser/chunks/DjcMDPrm.js +67 -0
  1766. package/dist-browser/chunks/DkVVho_1.js +1 -0
  1767. package/dist-browser/chunks/Dkh1AfX5.js +1 -0
  1768. package/dist-browser/chunks/DkwGHqUD.js +1 -0
  1769. package/dist-browser/chunks/Dl96d5U7.js +1 -0
  1770. package/dist-browser/chunks/DlW29B4u.js +3 -0
  1771. package/dist-browser/chunks/DmSNe3jl.js +387 -0
  1772. package/dist-browser/chunks/DmxSxKXn.js +1 -0
  1773. package/dist-browser/chunks/DnFdLC2j.js +1 -0
  1774. package/dist-browser/chunks/DnUyDgmE.js +1 -0
  1775. package/dist-browser/chunks/DnvK0nWc.js +1 -0
  1776. package/dist-browser/chunks/DoEd4p-l.js +1 -0
  1777. package/dist-browser/chunks/DoX7pGYd.js +140 -0
  1778. package/dist-browser/chunks/Dp6fzsZG.js +1 -0
  1779. package/dist-browser/chunks/DpM23pTz.js +33 -0
  1780. package/dist-browser/chunks/DpZZtTTL.js +2 -0
  1781. package/dist-browser/chunks/DqAbaJTn.js +1 -0
  1782. package/dist-browser/chunks/DqMSA0q-.js +1 -0
  1783. package/dist-browser/chunks/DqNrCZSo.js +1 -0
  1784. package/dist-browser/chunks/DqP3aSvp.js +43 -0
  1785. package/dist-browser/chunks/Dqi6K18W.js +1 -0
  1786. package/dist-browser/chunks/DqqKpYoS.js +2 -0
  1787. package/dist-browser/chunks/Dqqmos-r.js +1 -0
  1788. package/dist-browser/chunks/Dr26QZ_C.js +1 -0
  1789. package/dist-browser/chunks/DrRp_OBG.js +1 -0
  1790. package/dist-browser/chunks/Ds0gQyON.js +1 -0
  1791. package/dist-browser/chunks/DsNI9SjT.js +1 -0
  1792. package/dist-browser/chunks/DskxWO57.js +1 -0
  1793. package/dist-browser/chunks/DspI2fym.js +33 -0
  1794. package/dist-browser/chunks/DtbRpC-a.js +2 -0
  1795. package/dist-browser/chunks/Dtc9u0hV.js +1 -0
  1796. package/dist-browser/chunks/DtdxxwYW.js +1 -0
  1797. package/dist-browser/chunks/Du2r_IDC.js +1 -0
  1798. package/dist-browser/chunks/DuiL5B5s.js +1 -0
  1799. package/dist-browser/chunks/DvMRww-v.js +1 -0
  1800. package/dist-browser/chunks/Dvzw_jou.js +1 -0
  1801. package/dist-browser/chunks/DwsXVYGF.js +1 -0
  1802. package/dist-browser/chunks/DxVZve2V.js +89 -0
  1803. package/dist-browser/chunks/Dy4Ev-pT.js +1 -0
  1804. package/dist-browser/chunks/DyGuOmo0.js +1 -0
  1805. package/dist-browser/chunks/DyXA-iwx.js +1 -0
  1806. package/dist-browser/chunks/Dypqlsev.js +1 -0
  1807. package/dist-browser/chunks/Dyqt3CuN.js +1 -0
  1808. package/dist-browser/chunks/DyxvzuFy.js +284 -0
  1809. package/dist-browser/chunks/DzMSiy_7.js +1 -0
  1810. package/dist-browser/chunks/DzaY1F1G.js +1 -0
  1811. package/dist-browser/chunks/EtRHumNJ.js +1 -0
  1812. package/dist-browser/chunks/FASUCRk-.js +3 -0
  1813. package/dist-browser/chunks/FeUl7sn8.js +1 -0
  1814. package/dist-browser/chunks/FjuaFAN8.js +25 -0
  1815. package/dist-browser/chunks/FsV9kMlK.js +1 -0
  1816. package/dist-browser/chunks/GB4zXBMC.js +1 -0
  1817. package/dist-browser/chunks/Guirowam.js +8 -0
  1818. package/dist-browser/chunks/HJHNBZzR.js +1 -0
  1819. package/dist-browser/chunks/HOXwa5Zi.js +1 -0
  1820. package/dist-browser/chunks/HhGGA2q1.js +1 -0
  1821. package/dist-browser/chunks/HjLsj9Wb.js +1 -0
  1822. package/dist-browser/chunks/ILniMPMQ.js +1 -0
  1823. package/dist-browser/chunks/IPgW5q-o.js +1 -0
  1824. package/dist-browser/chunks/IRJFdyYz.js +1 -0
  1825. package/dist-browser/chunks/J1EyHJSp.js +1 -0
  1826. package/dist-browser/chunks/JtVcQQeX.js +5 -0
  1827. package/dist-browser/chunks/KYZpoAyE.js +1 -0
  1828. package/dist-browser/chunks/KjHCb3-W.js +2 -0
  1829. package/dist-browser/chunks/Kp8JypHd.js +441 -0
  1830. package/dist-browser/chunks/Ku6I7UKh.js +1 -0
  1831. package/dist-browser/chunks/KzprlngN.js +1 -0
  1832. package/dist-browser/chunks/L5CwTQJI.js +4 -0
  1833. package/dist-browser/chunks/L9tCceA2.js +150 -0
  1834. package/dist-browser/chunks/L_tB79W_.js +1 -0
  1835. package/dist-browser/chunks/MDiJyUbk.js +1 -0
  1836. package/dist-browser/chunks/MaXgxQlM.js +1 -0
  1837. package/dist-browser/chunks/N5x7ZUws.js +1 -0
  1838. package/dist-browser/chunks/NZYk81nU.js +1 -0
  1839. package/dist-browser/chunks/Np7O_rbA.js +1 -0
  1840. package/dist-browser/chunks/Oo8Rc01u.js +1 -0
  1841. package/dist-browser/chunks/OtECxeEN.js +9 -0
  1842. package/dist-browser/chunks/OtOkABqS.js +158 -0
  1843. package/dist-browser/chunks/Oyc0qEPK.js +1 -0
  1844. package/dist-browser/chunks/PDPf8POY.js +1 -0
  1845. package/dist-browser/chunks/QRJE7tia.js +1 -0
  1846. package/dist-browser/chunks/Q_sagimg.js +1 -0
  1847. package/dist-browser/chunks/QgFqrot_.js +1 -0
  1848. package/dist-browser/chunks/QpPH2K9r.js +1 -0
  1849. package/dist-browser/chunks/R8vFmq4f.js +1 -0
  1850. package/dist-browser/chunks/RxUw8kPH.js +1 -0
  1851. package/dist-browser/chunks/SO6iJj34.js +1 -0
  1852. package/dist-browser/chunks/SWr9_u-k.js +13 -0
  1853. package/dist-browser/chunks/TQJJL2UK.js +27 -0
  1854. package/dist-browser/chunks/UE6Xi3ol.js +1 -0
  1855. package/dist-browser/chunks/VGXLiJ0S.js +1 -0
  1856. package/dist-browser/chunks/VMH7wDAk.js +1 -0
  1857. package/dist-browser/chunks/VwXcqbG4.js +23 -0
  1858. package/dist-browser/chunks/Wmd1pmNu.js +1 -0
  1859. package/dist-browser/chunks/XTdr3vkK.js +1 -0
  1860. package/dist-browser/chunks/XaLSS-X1.js +23 -0
  1861. package/dist-browser/chunks/XhPbWY7N.js +1 -0
  1862. package/dist-browser/chunks/Y4nknrnT.js +1 -0
  1863. package/dist-browser/chunks/Y9xF8jFn.js +23 -0
  1864. package/dist-browser/chunks/_-SUJuni.js +1 -0
  1865. package/dist-browser/chunks/_M7-qabf.js +101 -0
  1866. package/dist-browser/chunks/_qsNVwXW.js +1 -0
  1867. package/dist-browser/chunks/_vvwCLWQ.js +1 -0
  1868. package/dist-browser/chunks/b6V8XMYY.js +1 -0
  1869. package/dist-browser/chunks/bA3FB4mi.js +3 -0
  1870. package/dist-browser/chunks/bAf7cF9y.js +1 -0
  1871. package/dist-browser/chunks/bhrkTdEx.js +538 -0
  1872. package/dist-browser/chunks/dFGbvMHe.js +1 -0
  1873. package/dist-browser/chunks/dOIX3hJ7.js +1 -0
  1874. package/dist-browser/chunks/eUYPiZ2p.js +1 -0
  1875. package/dist-browser/chunks/eUiHGfWU.js +1 -0
  1876. package/dist-browser/chunks/f6_vnw-E.js +1 -0
  1877. package/dist-browser/chunks/fE2ZfJiX.js +1 -0
  1878. package/dist-browser/chunks/gZQtAM7h.js +2 -0
  1879. package/dist-browser/chunks/h8XD1xl-.js +1 -0
  1880. package/dist-browser/chunks/hEdm-zUW.js +1 -0
  1881. package/dist-browser/chunks/hWCYme74.js +1 -0
  1882. package/dist-browser/chunks/hfB064S0.js +1 -0
  1883. package/dist-browser/chunks/hlEBxUea.js +1 -0
  1884. package/dist-browser/chunks/j5sGo2Pt.js +1 -0
  1885. package/dist-browser/chunks/kG0ku-oF.js +1 -0
  1886. package/dist-browser/chunks/kLNROLfT.js +1 -0
  1887. package/dist-browser/chunks/kggDnku6.js +1 -0
  1888. package/dist-browser/chunks/klRtNUrN.js +1 -0
  1889. package/dist-browser/chunks/lOD1Gn8c.js +1 -0
  1890. package/dist-browser/chunks/lrh33Ko2.js +1 -0
  1891. package/dist-browser/chunks/mB6FoGFb.js +1 -0
  1892. package/dist-browser/chunks/msmucz6Z.js +1 -0
  1893. package/dist-browser/chunks/nEtJtbDE.js +1 -0
  1894. package/dist-browser/chunks/nvwS1LmH.js +1 -0
  1895. package/dist-browser/chunks/oqmnhzmi.js +2 -0
  1896. package/dist-browser/chunks/pICTBHHN.js +1 -0
  1897. package/dist-browser/chunks/pU4H1b3r.js +43 -0
  1898. package/dist-browser/chunks/qBpAlJSP.js +1 -0
  1899. package/dist-browser/chunks/qCjqID6v.js +1 -0
  1900. package/dist-browser/chunks/r-cfH8A5.js +1 -0
  1901. package/dist-browser/chunks/rgDalb_G.js +1 -0
  1902. package/dist-browser/chunks/rolldown-runtime-hePW80VL.js +1 -0
  1903. package/dist-browser/chunks/sdmDudQj.js +1 -0
  1904. package/dist-browser/chunks/shRf5cdU.js +1 -0
  1905. package/dist-browser/chunks/tvcsfh86.js +1 -0
  1906. package/dist-browser/chunks/tz7IArSg.js +1 -0
  1907. package/dist-browser/chunks/u--BrnjZ.js +1 -0
  1908. package/dist-browser/chunks/uBIymjUX.js +1 -0
  1909. package/dist-browser/chunks/uHO_HSNA.js +1 -0
  1910. package/dist-browser/chunks/uZz_bF7-.js +1 -0
  1911. package/dist-browser/chunks/uc0Y9KUA.js +1 -0
  1912. package/dist-browser/chunks/ud6upqGO.js +2 -0
  1913. package/dist-browser/chunks/udTuD3NU.js +1 -0
  1914. package/dist-browser/chunks/ul0Kb67V.js +38 -0
  1915. package/dist-browser/chunks/uq1wJ3hU.js +322 -0
  1916. package/dist-browser/chunks/vA_owFWw.js +1 -0
  1917. package/dist-browser/chunks/vgYSnL0k.js +1 -0
  1918. package/dist-browser/chunks/vjQO9b4G.js +1 -0
  1919. package/dist-browser/chunks/vm1kntVK.js +18 -0
  1920. package/dist-browser/chunks/vnMr9U1p.js +1 -0
  1921. package/dist-browser/chunks/vyik5ymL.js +1 -0
  1922. package/dist-browser/chunks/w2RB3fs9.js +1 -0
  1923. package/dist-browser/chunks/wmdxOiEL.js +1 -0
  1924. package/dist-browser/chunks/xtpWQ17d.js +27 -0
  1925. package/dist-browser/chunks/yRMgu4ay.js +3 -0
  1926. package/dist-browser/chunks/yYrq3lUc.js +42 -0
  1927. package/dist-browser/chunks/yieoIIce.js +1 -0
  1928. package/dist-browser/chunks/yzr1keSX.js +38 -0
  1929. package/dist-browser/chunks/z94mqM9o.js +1 -0
  1930. package/dist-browser/chunks/zSWKwMId.js +1 -0
  1931. package/dist-browser/importmap.json +1761 -0
  1932. package/dist-browser/koota/react.js +1 -0
  1933. package/dist-browser/koota.js +1 -0
  1934. package/dist-browser/postprocessing.js +1 -0
  1935. package/dist-browser/react/jsx-runtime.js +1 -0
  1936. package/dist-browser/react-dom/client.js +1 -0
  1937. package/dist-browser/react-dom.js +1 -0
  1938. package/dist-browser/react.js +1 -0
  1939. package/dist-browser/release.json +11655 -0
  1940. package/dist-browser/three/addons/Addons.js +1 -0
  1941. package/dist-browser/three/addons/animation/AnimationClipCreator.js +1 -0
  1942. package/dist-browser/three/addons/animation/CCDIKSolver.js +1 -0
  1943. package/dist-browser/three/addons/capabilities/WebGL.js +1 -0
  1944. package/dist-browser/three/addons/capabilities/WebGPU.js +1 -0
  1945. package/dist-browser/three/addons/controls/ArcballControls.js +1 -0
  1946. package/dist-browser/three/addons/controls/DragControls.js +1 -0
  1947. package/dist-browser/three/addons/controls/FirstPersonControls.js +1 -0
  1948. package/dist-browser/three/addons/controls/FlyControls.js +1 -0
  1949. package/dist-browser/three/addons/controls/MapControls.js +1 -0
  1950. package/dist-browser/three/addons/controls/OrbitControls.js +1 -0
  1951. package/dist-browser/three/addons/controls/PointerLockControls.js +1 -0
  1952. package/dist-browser/three/addons/controls/TrackballControls.js +1 -0
  1953. package/dist-browser/three/addons/controls/TransformControls.js +1 -0
  1954. package/dist-browser/three/addons/csm/CSM.js +1 -0
  1955. package/dist-browser/three/addons/csm/CSMFrustum.js +1 -0
  1956. package/dist-browser/three/addons/csm/CSMHelper.js +1 -0
  1957. package/dist-browser/three/addons/csm/CSMShader.js +1 -0
  1958. package/dist-browser/three/addons/csm/CSMShadowNode.js +1 -0
  1959. package/dist-browser/three/addons/curves/CurveExtras.js +1 -0
  1960. package/dist-browser/three/addons/curves/NURBSCurve.js +1 -0
  1961. package/dist-browser/three/addons/curves/NURBSSurface.js +1 -0
  1962. package/dist-browser/three/addons/curves/NURBSUtils.js +1 -0
  1963. package/dist-browser/three/addons/curves/NURBSVolume.js +1 -0
  1964. package/dist-browser/three/addons/effects/AnaglyphEffect.js +1 -0
  1965. package/dist-browser/three/addons/effects/AsciiEffect.js +1 -0
  1966. package/dist-browser/three/addons/effects/OutlineEffect.js +1 -0
  1967. package/dist-browser/three/addons/effects/ParallaxBarrierEffect.js +1 -0
  1968. package/dist-browser/three/addons/effects/StereoEffect.js +1 -0
  1969. package/dist-browser/three/addons/environments/ColorEnvironment.js +1 -0
  1970. package/dist-browser/three/addons/environments/DebugEnvironment.js +1 -0
  1971. package/dist-browser/three/addons/environments/RoomEnvironment.js +1 -0
  1972. package/dist-browser/three/addons/exporters/DRACOExporter.js +1 -0
  1973. package/dist-browser/three/addons/exporters/EXRExporter.js +1 -0
  1974. package/dist-browser/three/addons/exporters/GLTFExporter.js +1 -0
  1975. package/dist-browser/three/addons/exporters/KTX2Exporter.js +1 -0
  1976. package/dist-browser/three/addons/exporters/OBJExporter.js +1 -0
  1977. package/dist-browser/three/addons/exporters/PLYExporter.js +1 -0
  1978. package/dist-browser/three/addons/exporters/STLExporter.js +1 -0
  1979. package/dist-browser/three/addons/exporters/USDZExporter.js +1 -0
  1980. package/dist-browser/three/addons/generators/CityGenerator.js +1 -0
  1981. package/dist-browser/three/addons/generators/ForestGenerator.js +1 -0
  1982. package/dist-browser/three/addons/generators/TerrainGenerator.js +1 -0
  1983. package/dist-browser/three/addons/generators/TreeGenerator.js +1 -0
  1984. package/dist-browser/three/addons/generators/city/BenchGenerator.js +1 -0
  1985. package/dist-browser/three/addons/generators/city/CarGenerator.js +1 -0
  1986. package/dist-browser/three/addons/generators/city/CityGeneratorUtils.js +1 -0
  1987. package/dist-browser/three/addons/generators/city/HydrantGenerator.js +1 -0
  1988. package/dist-browser/three/addons/generators/city/InstancedMeshGenerator.js +1 -0
  1989. package/dist-browser/three/addons/generators/city/PersonGenerator.js +1 -0
  1990. package/dist-browser/three/addons/generators/city/SidewalkGenerator.js +1 -0
  1991. package/dist-browser/three/addons/generators/city/SkyscraperGenerator.js +1 -0
  1992. package/dist-browser/three/addons/generators/city/StreetTreeGenerator.js +1 -0
  1993. package/dist-browser/three/addons/generators/city/StreetlightGenerator.js +1 -0
  1994. package/dist-browser/three/addons/generators/city/TrafficlightGenerator.js +1 -0
  1995. package/dist-browser/three/addons/generators/city/TrashcanGenerator.js +1 -0
  1996. package/dist-browser/three/addons/geometries/BoxLineGeometry.js +1 -0
  1997. package/dist-browser/three/addons/geometries/ConvexGeometry.js +1 -0
  1998. package/dist-browser/three/addons/geometries/DecalGeometry.js +1 -0
  1999. package/dist-browser/three/addons/geometries/LoftGeometry.js +1 -0
  2000. package/dist-browser/three/addons/geometries/ParametricFunctions.js +1 -0
  2001. package/dist-browser/three/addons/geometries/ParametricGeometry.js +1 -0
  2002. package/dist-browser/three/addons/geometries/RoundedBoxGeometry.js +1 -0
  2003. package/dist-browser/three/addons/geometries/TeapotGeometry.js +1 -0
  2004. package/dist-browser/three/addons/geometries/TextGeometry.js +1 -0
  2005. package/dist-browser/three/addons/gpgpu/BitonicSort.js +1 -0
  2006. package/dist-browser/three/addons/gpgpu/CountingSort.js +1 -0
  2007. package/dist-browser/three/addons/helpers/AnimationPathHelper.js +1 -0
  2008. package/dist-browser/three/addons/helpers/LightProbeGridHelper.js +1 -0
  2009. package/dist-browser/three/addons/helpers/LightProbeGridHelperWebGL.js +80 -0
  2010. package/dist-browser/three/addons/helpers/LightProbeHelper.js +1 -0
  2011. package/dist-browser/three/addons/helpers/LightProbeHelperGPU.js +1 -0
  2012. package/dist-browser/three/addons/helpers/OctreeHelper.js +1 -0
  2013. package/dist-browser/three/addons/helpers/PositionalAudioHelper.js +1 -0
  2014. package/dist-browser/three/addons/helpers/RapierHelper.js +1 -0
  2015. package/dist-browser/three/addons/helpers/RectAreaLightHelper.js +1 -0
  2016. package/dist-browser/three/addons/helpers/TextureHelper.js +1 -0
  2017. package/dist-browser/three/addons/helpers/TextureHelperGPU.js +1 -0
  2018. package/dist-browser/three/addons/helpers/VertexNormalsHelper.js +1 -0
  2019. package/dist-browser/three/addons/helpers/VertexTangentsHelper.js +1 -0
  2020. package/dist-browser/three/addons/helpers/ViewHelper.js +1 -0
  2021. package/dist-browser/three/addons/inspector/Extension.js +1 -0
  2022. package/dist-browser/three/addons/inspector/Inspector.js +1 -0
  2023. package/dist-browser/three/addons/inspector/RendererInspector.js +1 -0
  2024. package/dist-browser/three/addons/inspector/extensions/color-grading/ColorGrading.js +1 -0
  2025. package/dist-browser/three/addons/inspector/extensions/color-grading/ColorWheel.js +1 -0
  2026. package/dist-browser/three/addons/inspector/extensions/color-grading/CurveEditor.js +1 -0
  2027. package/dist-browser/three/addons/inspector/extensions/color-grading/LUT3DStyle.js +1 -0
  2028. package/dist-browser/three/addons/inspector/extensions/color-grading/LUTMath.js +1 -0
  2029. package/dist-browser/three/addons/inspector/extensions/color-grading/modules/BrightnessModule.js +1 -0
  2030. package/dist-browser/three/addons/inspector/extensions/color-grading/modules/ColorWheelModule.js +1 -0
  2031. package/dist-browser/three/addons/inspector/extensions/color-grading/modules/ContrastModule.js +1 -0
  2032. package/dist-browser/three/addons/inspector/extensions/color-grading/modules/CurvesModule.js +1 -0
  2033. package/dist-browser/three/addons/inspector/extensions/color-grading/modules/ExposureHueModule.js +1 -0
  2034. package/dist-browser/three/addons/inspector/extensions/color-grading/modules/ExposureModule.js +1 -0
  2035. package/dist-browser/three/addons/inspector/extensions/color-grading/modules/HueModule.js +1 -0
  2036. package/dist-browser/three/addons/inspector/extensions/color-grading/modules/ImportedCubeModule.js +1 -0
  2037. package/dist-browser/three/addons/inspector/extensions/color-grading/modules/Module.js +1 -0
  2038. package/dist-browser/three/addons/inspector/extensions/color-grading/modules/OutputModule.js +1 -0
  2039. package/dist-browser/three/addons/inspector/extensions/color-grading/modules/RendererModule.js +1 -0
  2040. package/dist-browser/three/addons/inspector/extensions/color-grading/modules/SatVibranceModule.js +1 -0
  2041. package/dist-browser/three/addons/inspector/extensions/color-grading/modules/SaturationModule.js +1 -0
  2042. package/dist-browser/three/addons/inspector/extensions/color-grading/modules/VibranceModule.js +1 -0
  2043. package/dist-browser/three/addons/inspector/extensions/color-grading/modules/WhiteBalanceModule.js +1 -0
  2044. package/dist-browser/three/addons/inspector/extensions/tsl-graph/TSLGraphEditor.js +1 -0
  2045. package/dist-browser/three/addons/inspector/extensions/tsl-graph/TSLGraphLoader.js +1 -0
  2046. package/dist-browser/three/addons/inspector/tabs/Console.js +1 -0
  2047. package/dist-browser/three/addons/inspector/tabs/Memory.js +1 -0
  2048. package/dist-browser/three/addons/inspector/tabs/Parameters.js +1 -0
  2049. package/dist-browser/three/addons/inspector/tabs/Performance.js +1 -0
  2050. package/dist-browser/three/addons/inspector/tabs/Settings.js +1 -0
  2051. package/dist-browser/three/addons/inspector/tabs/Timeline.js +1 -0
  2052. package/dist-browser/three/addons/inspector/tabs/Viewer.js +1 -0
  2053. package/dist-browser/three/addons/inspector/ui/Graph.js +1 -0
  2054. package/dist-browser/three/addons/inspector/ui/Item.js +1 -0
  2055. package/dist-browser/three/addons/inspector/ui/List.js +1 -0
  2056. package/dist-browser/three/addons/inspector/ui/Profiler.js +1 -0
  2057. package/dist-browser/three/addons/inspector/ui/Style.js +1 -0
  2058. package/dist-browser/three/addons/inspector/ui/Tab.js +1 -0
  2059. package/dist-browser/three/addons/inspector/ui/Values.js +1 -0
  2060. package/dist-browser/three/addons/inspector/ui/utils.js +1 -0
  2061. package/dist-browser/three/addons/interaction/InteractionManager.js +1 -0
  2062. package/dist-browser/three/addons/interactive/HTMLMesh.js +1 -0
  2063. package/dist-browser/three/addons/interactive/InteractiveGroup.js +1 -0
  2064. package/dist-browser/three/addons/interactive/SelectionBox.js +1 -0
  2065. package/dist-browser/three/addons/interactive/SelectionHelper.js +1 -0
  2066. package/dist-browser/three/addons/libs/chevrotain.module.min.js +1 -0
  2067. package/dist-browser/three/addons/libs/demuxer_mp4.js +1 -0
  2068. package/dist-browser/three/addons/libs/fflate.module.js +1 -0
  2069. package/dist-browser/three/addons/libs/ktx-parse.module.js +1 -0
  2070. package/dist-browser/three/addons/libs/lil-gui.module.min.js +4 -0
  2071. package/dist-browser/three/addons/libs/meshopt_clusterizer.module.js +1 -0
  2072. package/dist-browser/three/addons/libs/meshopt_decoder.module.js +1 -0
  2073. package/dist-browser/three/addons/libs/meshopt_simplifier.module.js +1 -0
  2074. package/dist-browser/three/addons/libs/mikktspace.module.js +1 -0
  2075. package/dist-browser/three/addons/libs/motion-controllers.module.js +1 -0
  2076. package/dist-browser/three/addons/libs/potpack.module.js +1 -0
  2077. package/dist-browser/three/addons/libs/stats.module.js +1 -0
  2078. package/dist-browser/three/addons/libs/surfaceNet.js +1 -0
  2079. package/dist-browser/three/addons/libs/tween.module.js +1 -0
  2080. package/dist-browser/three/addons/libs/utif.module.js +1 -0
  2081. package/dist-browser/three/addons/libs/zstddec.module.js +1 -0
  2082. package/dist-browser/three/addons/lighting/ClusteredLighting.js +1 -0
  2083. package/dist-browser/three/addons/lighting/DynamicLighting.js +1 -0
  2084. package/dist-browser/three/addons/lighting/LightProbeGrid.js +1 -0
  2085. package/dist-browser/three/addons/lighting/LightProbeGridUtils.js +1 -0
  2086. package/dist-browser/three/addons/lighting/LightProbeGridWebGL.js +135 -0
  2087. package/dist-browser/three/addons/lighting/vxgi/VXGIConeTracer.js +1 -0
  2088. package/dist-browser/three/addons/lighting/vxgi/VXGINode.js +1 -0
  2089. package/dist-browser/three/addons/lighting/vxgi/VXGISceneCollector.js +1 -0
  2090. package/dist-browser/three/addons/lighting/vxgi/VXGIVolume.js +1 -0
  2091. package/dist-browser/three/addons/lights/LightProbeGenerator.js +1 -0
  2092. package/dist-browser/three/addons/lights/RectAreaLightTexturesLib.js +1 -0
  2093. package/dist-browser/three/addons/lights/RectAreaLightUniformsLib.js +1 -0
  2094. package/dist-browser/three/addons/lights/SunLight.js +1 -0
  2095. package/dist-browser/three/addons/lights/SunLightNode.js +1 -0
  2096. package/dist-browser/three/addons/lights/SunLightShadow.js +1 -0
  2097. package/dist-browser/three/addons/lights/SunShadowNode.js +1 -0
  2098. package/dist-browser/three/addons/lines/Line2.js +1 -0
  2099. package/dist-browser/three/addons/lines/LineGeometry.js +1 -0
  2100. package/dist-browser/three/addons/lines/LineMaterial.js +1 -0
  2101. package/dist-browser/three/addons/lines/LineSegments2.js +1 -0
  2102. package/dist-browser/three/addons/lines/LineSegmentsGeometry.js +1 -0
  2103. package/dist-browser/three/addons/lines/Wireframe.js +1 -0
  2104. package/dist-browser/three/addons/lines/WireframeGeometry2.js +1 -0
  2105. package/dist-browser/three/addons/lines/webgpu/Line2.js +1 -0
  2106. package/dist-browser/three/addons/lines/webgpu/LineSegments2.js +1 -0
  2107. package/dist-browser/three/addons/lines/webgpu/Wireframe.js +1 -0
  2108. package/dist-browser/three/addons/loaders/3DMLoader.js +1 -0
  2109. package/dist-browser/three/addons/loaders/3MFLoader.js +1 -0
  2110. package/dist-browser/three/addons/loaders/AMFLoader.js +1 -0
  2111. package/dist-browser/three/addons/loaders/BVHLoader.js +1 -0
  2112. package/dist-browser/three/addons/loaders/ColladaLoader.js +1 -0
  2113. package/dist-browser/three/addons/loaders/DDSLoader.js +1 -0
  2114. package/dist-browser/three/addons/loaders/DRACOLoader.js +1 -0
  2115. package/dist-browser/three/addons/loaders/EXRLoader.js +1 -0
  2116. package/dist-browser/three/addons/loaders/FBXLoader.js +1 -0
  2117. package/dist-browser/three/addons/loaders/FontLoader.js +1 -0
  2118. package/dist-browser/three/addons/loaders/GCodeLoader.js +1 -0
  2119. package/dist-browser/three/addons/loaders/GLTFGaussianSplatLoaderExtension.js +1 -0
  2120. package/dist-browser/three/addons/loaders/GLTFLoader.js +1 -0
  2121. package/dist-browser/three/addons/loaders/GaussianSplatPLYLoader.js +1 -0
  2122. package/dist-browser/three/addons/loaders/HDRCubeTextureLoader.js +1 -0
  2123. package/dist-browser/three/addons/loaders/HDRLoader.js +1 -0
  2124. package/dist-browser/three/addons/loaders/IESLoader.js +1 -0
  2125. package/dist-browser/three/addons/loaders/KMZLoader.js +1 -0
  2126. package/dist-browser/three/addons/loaders/KSPLATLoader.js +1 -0
  2127. package/dist-browser/three/addons/loaders/KTX2Loader.js +1 -0
  2128. package/dist-browser/three/addons/loaders/KTXLoader.js +1 -0
  2129. package/dist-browser/three/addons/loaders/LDrawLoader.js +1 -0
  2130. package/dist-browser/three/addons/loaders/LUT3dlLoader.js +1 -0
  2131. package/dist-browser/three/addons/loaders/LUTCubeLoader.js +1 -0
  2132. package/dist-browser/three/addons/loaders/LUTImageLoader.js +1 -0
  2133. package/dist-browser/three/addons/loaders/LWOLoader.js +1 -0
  2134. package/dist-browser/three/addons/loaders/MD2Loader.js +1 -0
  2135. package/dist-browser/three/addons/loaders/MDDLoader.js +1 -0
  2136. package/dist-browser/three/addons/loaders/MTLLoader.js +1 -0
  2137. package/dist-browser/three/addons/loaders/MaterialXLoader.js +1 -0
  2138. package/dist-browser/three/addons/loaders/NRRDLoader.js +1 -0
  2139. package/dist-browser/three/addons/loaders/OBJLoader.js +1 -0
  2140. package/dist-browser/three/addons/loaders/PCDLoader.js +1 -0
  2141. package/dist-browser/three/addons/loaders/PDBLoader.js +1 -0
  2142. package/dist-browser/three/addons/loaders/PLYLoader.js +1 -0
  2143. package/dist-browser/three/addons/loaders/PVRLoader.js +1 -0
  2144. package/dist-browser/three/addons/loaders/RGBELoader.js +1 -0
  2145. package/dist-browser/three/addons/loaders/SPLATLoader.js +1 -0
  2146. package/dist-browser/three/addons/loaders/SPZLoader.js +1 -0
  2147. package/dist-browser/three/addons/loaders/STLLoader.js +1 -0
  2148. package/dist-browser/three/addons/loaders/SVGLoader.js +1 -0
  2149. package/dist-browser/three/addons/loaders/TDSLoader.js +1 -0
  2150. package/dist-browser/three/addons/loaders/TGALoader.js +1 -0
  2151. package/dist-browser/three/addons/loaders/TIFFLoader.js +1 -0
  2152. package/dist-browser/three/addons/loaders/TTFLoader.js +1 -0
  2153. package/dist-browser/three/addons/loaders/USDLoader.js +1 -0
  2154. package/dist-browser/three/addons/loaders/USDZLoader.js +1 -0
  2155. package/dist-browser/three/addons/loaders/UltraHDRLoader.js +1 -0
  2156. package/dist-browser/three/addons/loaders/VOXLoader.js +1 -0
  2157. package/dist-browser/three/addons/loaders/VRMLLoader.js +1 -0
  2158. package/dist-browser/three/addons/loaders/VTKLoader.js +1 -0
  2159. package/dist-browser/three/addons/loaders/XYZLoader.js +1 -0
  2160. package/dist-browser/three/addons/loaders/collada/ColladaComposer.js +1 -0
  2161. package/dist-browser/three/addons/loaders/collada/ColladaParser.js +1 -0
  2162. package/dist-browser/three/addons/loaders/lwo/IFFParser.js +1 -0
  2163. package/dist-browser/three/addons/loaders/lwo/LWO2Parser.js +1 -0
  2164. package/dist-browser/three/addons/loaders/lwo/LWO3Parser.js +1 -0
  2165. package/dist-browser/three/addons/loaders/materialx/MaterialXArchive.js +1 -0
  2166. package/dist-browser/three/addons/loaders/materialx/MaterialXDocument.js +1 -0
  2167. package/dist-browser/three/addons/loaders/materialx/MaterialXHextile.js +1 -0
  2168. package/dist-browser/three/addons/loaders/materialx/MaterialXInterfaceValidation.js +1 -0
  2169. package/dist-browser/three/addons/loaders/materialx/MaterialXLog.js +1 -0
  2170. package/dist-browser/three/addons/loaders/materialx/MaterialXNodeInterfaceRegistry.js +1 -0
  2171. package/dist-browser/three/addons/loaders/materialx/MaterialXNodeLibrary.js +1 -0
  2172. package/dist-browser/three/addons/loaders/materialx/MaterialXSurfaceMappings.js +1 -0
  2173. package/dist-browser/three/addons/loaders/materialx/MaterialXUtils.js +1 -0
  2174. package/dist-browser/three/addons/loaders/materialx/compile/MaterialXCompileRegistry.js +1 -0
  2175. package/dist-browser/three/addons/loaders/materialx/parse/MaterialXParser.js +1 -0
  2176. package/dist-browser/three/addons/loaders/usd/USDAParser.js +1 -0
  2177. package/dist-browser/three/addons/loaders/usd/USDCParser.js +1 -0
  2178. package/dist-browser/three/addons/loaders/usd/USDComposer.js +1 -0
  2179. package/dist-browser/three/addons/materials/LDrawConditionalLineMaterial.js +1 -0
  2180. package/dist-browser/three/addons/materials/LDrawConditionalLineNodeMaterial.js +1 -0
  2181. package/dist-browser/three/addons/materials/WoodNodeMaterial.js +42 -0
  2182. package/dist-browser/three/addons/math/Capsule.js +1 -0
  2183. package/dist-browser/three/addons/math/ColorConverter.js +1 -0
  2184. package/dist-browser/three/addons/math/ColorSpaces.js +1 -0
  2185. package/dist-browser/three/addons/math/ConvexHull.js +1 -0
  2186. package/dist-browser/three/addons/math/ImprovedNoise.js +1 -0
  2187. package/dist-browser/three/addons/math/Lut.js +1 -0
  2188. package/dist-browser/three/addons/math/MeshSurfaceSampler.js +1 -0
  2189. package/dist-browser/three/addons/math/OBB.js +1 -0
  2190. package/dist-browser/three/addons/math/Octree.js +1 -0
  2191. package/dist-browser/three/addons/math/SimplexNoise.js +1 -0
  2192. package/dist-browser/three/addons/misc/ConvexObjectBreaker.js +1 -0
  2193. package/dist-browser/three/addons/misc/GPUComputationRenderer.js +1 -0
  2194. package/dist-browser/three/addons/misc/Gyroscope.js +1 -0
  2195. package/dist-browser/three/addons/misc/MD2Character.js +1 -0
  2196. package/dist-browser/three/addons/misc/MD2CharacterComplex.js +1 -0
  2197. package/dist-browser/three/addons/misc/MorphAnimMesh.js +1 -0
  2198. package/dist-browser/three/addons/misc/MorphBlendMesh.js +1 -0
  2199. package/dist-browser/three/addons/misc/ProgressiveLightMap.js +1 -0
  2200. package/dist-browser/three/addons/misc/ProgressiveLightMapGPU.js +1 -0
  2201. package/dist-browser/three/addons/misc/RollerCoaster.js +1 -0
  2202. package/dist-browser/three/addons/misc/Sculptor.js +1 -0
  2203. package/dist-browser/three/addons/misc/SculptorMesh.js +1 -0
  2204. package/dist-browser/three/addons/misc/SculptorTools.js +1 -0
  2205. package/dist-browser/three/addons/misc/SculptorUtils.js +1 -0
  2206. package/dist-browser/three/addons/misc/TileCreasedNormalsPlugin.js +1 -0
  2207. package/dist-browser/three/addons/misc/TubePainter.js +1 -0
  2208. package/dist-browser/three/addons/misc/Volume.js +1 -0
  2209. package/dist-browser/three/addons/misc/VolumeSlice.js +1 -0
  2210. package/dist-browser/three/addons/modifiers/CurveModifier.js +1 -0
  2211. package/dist-browser/three/addons/modifiers/CurveModifierGPU.js +1 -0
  2212. package/dist-browser/three/addons/modifiers/EdgeSplitModifier.js +1 -0
  2213. package/dist-browser/three/addons/modifiers/SimplifyModifier.js +1 -0
  2214. package/dist-browser/three/addons/modifiers/TessellateModifier.js +1 -0
  2215. package/dist-browser/three/addons/objects/GaussianSplat.js +1 -0
  2216. package/dist-browser/three/addons/objects/GroundedSkybox.js +1 -0
  2217. package/dist-browser/three/addons/objects/Lensflare.js +1 -0
  2218. package/dist-browser/three/addons/objects/LensflareMesh.js +1 -0
  2219. package/dist-browser/three/addons/objects/MarchingCubes.js +1 -0
  2220. package/dist-browser/three/addons/objects/Reflector.js +1 -0
  2221. package/dist-browser/three/addons/objects/ReflectorForSSRPass.js +1 -0
  2222. package/dist-browser/three/addons/objects/Refractor.js +1 -0
  2223. package/dist-browser/three/addons/objects/ShadowMesh.js +1 -0
  2224. package/dist-browser/three/addons/objects/Sky.js +1 -0
  2225. package/dist-browser/three/addons/objects/SkyMesh.js +1 -0
  2226. package/dist-browser/three/addons/objects/Water.js +1 -0
  2227. package/dist-browser/three/addons/objects/Water2.js +1 -0
  2228. package/dist-browser/three/addons/objects/Water2Mesh.js +1 -0
  2229. package/dist-browser/three/addons/objects/WaterMesh.js +1 -0
  2230. package/dist-browser/three/addons/offscreen/jank.js +1 -0
  2231. package/dist-browser/three/addons/offscreen/offscreen.js +0 -0
  2232. package/dist-browser/three/addons/offscreen/scene.js +1 -0
  2233. package/dist-browser/three/addons/physics/AmmoPhysics.js +1 -0
  2234. package/dist-browser/three/addons/physics/JoltPhysics.js +1 -0
  2235. package/dist-browser/three/addons/physics/RapierPhysics.js +1 -0
  2236. package/dist-browser/three/addons/postprocessing/AfterimagePass.js +1 -0
  2237. package/dist-browser/three/addons/postprocessing/BloomPass.js +1 -0
  2238. package/dist-browser/three/addons/postprocessing/BokehPass.js +1 -0
  2239. package/dist-browser/three/addons/postprocessing/ClearPass.js +1 -0
  2240. package/dist-browser/three/addons/postprocessing/CubeTexturePass.js +1 -0
  2241. package/dist-browser/three/addons/postprocessing/DotScreenPass.js +1 -0
  2242. package/dist-browser/three/addons/postprocessing/EffectComposer.js +1 -0
  2243. package/dist-browser/three/addons/postprocessing/FXAAPass.js +1 -0
  2244. package/dist-browser/three/addons/postprocessing/FilmPass.js +1 -0
  2245. package/dist-browser/three/addons/postprocessing/GTAOPass.js +1 -0
  2246. package/dist-browser/three/addons/postprocessing/GlitchPass.js +1 -0
  2247. package/dist-browser/three/addons/postprocessing/HalftonePass.js +1 -0
  2248. package/dist-browser/three/addons/postprocessing/LUTPass.js +1 -0
  2249. package/dist-browser/three/addons/postprocessing/MaskPass.js +1 -0
  2250. package/dist-browser/three/addons/postprocessing/OutlinePass.js +1 -0
  2251. package/dist-browser/three/addons/postprocessing/OutputPass.js +1 -0
  2252. package/dist-browser/three/addons/postprocessing/Pass.js +1 -0
  2253. package/dist-browser/three/addons/postprocessing/RenderPass.js +1 -0
  2254. package/dist-browser/three/addons/postprocessing/RenderPixelatedPass.js +1 -0
  2255. package/dist-browser/three/addons/postprocessing/RenderTransitionPass.js +1 -0
  2256. package/dist-browser/three/addons/postprocessing/SAOPass.js +1 -0
  2257. package/dist-browser/three/addons/postprocessing/SMAAPass.js +1 -0
  2258. package/dist-browser/three/addons/postprocessing/SSAARenderPass.js +1 -0
  2259. package/dist-browser/three/addons/postprocessing/SSAOPass.js +1 -0
  2260. package/dist-browser/three/addons/postprocessing/SSRPass.js +1 -0
  2261. package/dist-browser/three/addons/postprocessing/SavePass.js +1 -0
  2262. package/dist-browser/three/addons/postprocessing/ShaderPass.js +1 -0
  2263. package/dist-browser/three/addons/postprocessing/TAARenderPass.js +1 -0
  2264. package/dist-browser/three/addons/postprocessing/TexturePass.js +1 -0
  2265. package/dist-browser/three/addons/postprocessing/UnrealBloomPass.js +1 -0
  2266. package/dist-browser/three/addons/renderers/CSS2DRenderer.js +1 -0
  2267. package/dist-browser/three/addons/renderers/CSS3DRenderer.js +1 -0
  2268. package/dist-browser/three/addons/renderers/Projector.js +1 -0
  2269. package/dist-browser/three/addons/renderers/SVGRenderer.js +1 -0
  2270. package/dist-browser/three/addons/shaders/ACESFilmicToneMappingShader.js +1 -0
  2271. package/dist-browser/three/addons/shaders/AfterimageShader.js +1 -0
  2272. package/dist-browser/three/addons/shaders/BasicShader.js +1 -0
  2273. package/dist-browser/three/addons/shaders/BleachBypassShader.js +1 -0
  2274. package/dist-browser/three/addons/shaders/BlendShader.js +1 -0
  2275. package/dist-browser/three/addons/shaders/BokehShader.js +1 -0
  2276. package/dist-browser/three/addons/shaders/BokehShader2.js +1 -0
  2277. package/dist-browser/three/addons/shaders/BrightnessContrastShader.js +1 -0
  2278. package/dist-browser/three/addons/shaders/ColorCorrectionShader.js +1 -0
  2279. package/dist-browser/three/addons/shaders/ColorifyShader.js +1 -0
  2280. package/dist-browser/three/addons/shaders/ConvolutionShader.js +1 -0
  2281. package/dist-browser/three/addons/shaders/CopyShader.js +1 -0
  2282. package/dist-browser/three/addons/shaders/DOFMipMapShader.js +1 -0
  2283. package/dist-browser/three/addons/shaders/DepthLimitedBlurShader.js +1 -0
  2284. package/dist-browser/three/addons/shaders/DigitalGlitch.js +1 -0
  2285. package/dist-browser/three/addons/shaders/DotScreenShader.js +1 -0
  2286. package/dist-browser/three/addons/shaders/ExposureShader.js +1 -0
  2287. package/dist-browser/three/addons/shaders/FXAAShader.js +1 -0
  2288. package/dist-browser/three/addons/shaders/FilmShader.js +1 -0
  2289. package/dist-browser/three/addons/shaders/FocusShader.js +1 -0
  2290. package/dist-browser/three/addons/shaders/FreiChenShader.js +1 -0
  2291. package/dist-browser/three/addons/shaders/GTAOShader.js +1 -0
  2292. package/dist-browser/three/addons/shaders/GammaCorrectionShader.js +1 -0
  2293. package/dist-browser/three/addons/shaders/HalftoneShader.js +1 -0
  2294. package/dist-browser/three/addons/shaders/HorizontalBlurShader.js +1 -0
  2295. package/dist-browser/three/addons/shaders/HorizontalTiltShiftShader.js +1 -0
  2296. package/dist-browser/three/addons/shaders/HueSaturationShader.js +1 -0
  2297. package/dist-browser/three/addons/shaders/KaleidoShader.js +1 -0
  2298. package/dist-browser/three/addons/shaders/LuminosityHighPassShader.js +1 -0
  2299. package/dist-browser/three/addons/shaders/LuminosityShader.js +1 -0
  2300. package/dist-browser/three/addons/shaders/MirrorShader.js +1 -0
  2301. package/dist-browser/three/addons/shaders/NormalMapShader.js +1 -0
  2302. package/dist-browser/three/addons/shaders/OutputShader.js +1 -0
  2303. package/dist-browser/three/addons/shaders/PoissonDenoiseShader.js +1 -0
  2304. package/dist-browser/three/addons/shaders/RGBShiftShader.js +1 -0
  2305. package/dist-browser/three/addons/shaders/SAOShader.js +1 -0
  2306. package/dist-browser/three/addons/shaders/SMAAShader.js +1 -0
  2307. package/dist-browser/three/addons/shaders/SSAOShader.js +1 -0
  2308. package/dist-browser/three/addons/shaders/SSRShader.js +1 -0
  2309. package/dist-browser/three/addons/shaders/SepiaShader.js +1 -0
  2310. package/dist-browser/three/addons/shaders/SobelOperatorShader.js +1 -0
  2311. package/dist-browser/three/addons/shaders/SubsurfaceScatteringShader.js +1 -0
  2312. package/dist-browser/three/addons/shaders/TechnicolorShader.js +1 -0
  2313. package/dist-browser/three/addons/shaders/ToonShader.js +1 -0
  2314. package/dist-browser/three/addons/shaders/TriangleBlurShader.js +1 -0
  2315. package/dist-browser/three/addons/shaders/UnpackDepthRGBAShader.js +1 -0
  2316. package/dist-browser/three/addons/shaders/VelocityShader.js +1 -0
  2317. package/dist-browser/three/addons/shaders/VerticalBlurShader.js +1 -0
  2318. package/dist-browser/three/addons/shaders/VerticalTiltShiftShader.js +1 -0
  2319. package/dist-browser/three/addons/shaders/VignetteShader.js +1 -0
  2320. package/dist-browser/three/addons/shaders/VolumeShader.js +1 -0
  2321. package/dist-browser/three/addons/shaders/WaterRefractionShader.js +1 -0
  2322. package/dist-browser/three/addons/textures/FlakesTexture.js +1 -0
  2323. package/dist-browser/three/addons/transpiler/AST.js +1 -0
  2324. package/dist-browser/three/addons/transpiler/GLSLDecoder.js +1 -0
  2325. package/dist-browser/three/addons/transpiler/Linker.js +1 -0
  2326. package/dist-browser/three/addons/transpiler/ShaderToyDecoder.js +1 -0
  2327. package/dist-browser/three/addons/transpiler/TSLEncoder.js +55 -0
  2328. package/dist-browser/three/addons/transpiler/Transpiler.js +1 -0
  2329. package/dist-browser/three/addons/transpiler/TranspilerUtils.js +1 -0
  2330. package/dist-browser/three/addons/transpiler/WGSLEncoder.js +30 -0
  2331. package/dist-browser/three/addons/tsl/WebGLNodesHandler.js +1 -0
  2332. package/dist-browser/three/addons/tsl/display/AfterImageNode.js +1 -0
  2333. package/dist-browser/three/addons/tsl/display/AnaglyphPassNode.js +1 -0
  2334. package/dist-browser/three/addons/tsl/display/BilateralBlurNode.js +1 -0
  2335. package/dist-browser/three/addons/tsl/display/BleachBypass.js +1 -0
  2336. package/dist-browser/three/addons/tsl/display/BloomNode.js +1 -0
  2337. package/dist-browser/three/addons/tsl/display/CRT.js +1 -0
  2338. package/dist-browser/three/addons/tsl/display/ChromaticAberrationNode.js +1 -0
  2339. package/dist-browser/three/addons/tsl/display/DenoiseNode.js +1 -0
  2340. package/dist-browser/three/addons/tsl/display/DepthOfFieldNode.js +1 -0
  2341. package/dist-browser/three/addons/tsl/display/DotScreenNode.js +1 -0
  2342. package/dist-browser/three/addons/tsl/display/FSR1Node.js +1 -0
  2343. package/dist-browser/three/addons/tsl/display/FXAANode.js +1 -0
  2344. package/dist-browser/three/addons/tsl/display/FilmNode.js +1 -0
  2345. package/dist-browser/three/addons/tsl/display/GTAONode.js +1 -0
  2346. package/dist-browser/three/addons/tsl/display/GaussianBlurNode.js +1 -0
  2347. package/dist-browser/three/addons/tsl/display/GodraysNode.js +1 -0
  2348. package/dist-browser/three/addons/tsl/display/ImportanceSampledEnvironment.js +1 -0
  2349. package/dist-browser/three/addons/tsl/display/LensflareNode.js +1 -0
  2350. package/dist-browser/three/addons/tsl/display/Lut3DNode.js +1 -0
  2351. package/dist-browser/three/addons/tsl/display/MotionBlur.js +1 -0
  2352. package/dist-browser/three/addons/tsl/display/OITPassNode.js +1 -0
  2353. package/dist-browser/three/addons/tsl/display/OutlineNode.js +1 -0
  2354. package/dist-browser/three/addons/tsl/display/ParallaxBarrierPassNode.js +1 -0
  2355. package/dist-browser/three/addons/tsl/display/PixelationPassNode.js +1 -0
  2356. package/dist-browser/three/addons/tsl/display/RGBShiftNode.js +1 -0
  2357. package/dist-browser/three/addons/tsl/display/RecurrentDenoiseNode.js +1 -0
  2358. package/dist-browser/three/addons/tsl/display/RetroPassNode.js +1 -0
  2359. package/dist-browser/three/addons/tsl/display/SMAANode.js +1 -0
  2360. package/dist-browser/three/addons/tsl/display/SSAAPassNode.js +1 -0
  2361. package/dist-browser/three/addons/tsl/display/SSAONode.js +1 -0
  2362. package/dist-browser/three/addons/tsl/display/SSGINode.js +1 -0
  2363. package/dist-browser/three/addons/tsl/display/SSRNode.js +1 -0
  2364. package/dist-browser/three/addons/tsl/display/SSSNode.js +1 -0
  2365. package/dist-browser/three/addons/tsl/display/Sepia.js +1 -0
  2366. package/dist-browser/three/addons/tsl/display/Shape.js +1 -0
  2367. package/dist-browser/three/addons/tsl/display/SharpenNode.js +1 -0
  2368. package/dist-browser/three/addons/tsl/display/SobelOperatorNode.js +1 -0
  2369. package/dist-browser/three/addons/tsl/display/StereoCompositePassNode.js +1 -0
  2370. package/dist-browser/three/addons/tsl/display/StereoPassNode.js +1 -0
  2371. package/dist-browser/three/addons/tsl/display/TAAUNode.js +1 -0
  2372. package/dist-browser/three/addons/tsl/display/TRAANode.js +1 -0
  2373. package/dist-browser/three/addons/tsl/display/TemporalReprojectNode.js +1 -0
  2374. package/dist-browser/three/addons/tsl/display/TransitionNode.js +1 -0
  2375. package/dist-browser/three/addons/tsl/display/boxBlur.js +1 -0
  2376. package/dist-browser/three/addons/tsl/display/depthAwareBlend.js +1 -0
  2377. package/dist-browser/three/addons/tsl/display/depthAwareBlur.js +1 -0
  2378. package/dist-browser/three/addons/tsl/display/hashBlur.js +1 -0
  2379. package/dist-browser/three/addons/tsl/display/radialBlur.js +1 -0
  2380. package/dist-browser/three/addons/tsl/lighting/ClusteredLightsNode.js +1 -0
  2381. package/dist-browser/three/addons/tsl/lighting/DynamicLightsNode.js +1 -0
  2382. package/dist-browser/three/addons/tsl/lighting/LightProbeGridNode.js +1 -0
  2383. package/dist-browser/three/addons/tsl/lighting/data/AmbientLightDataNode.js +1 -0
  2384. package/dist-browser/three/addons/tsl/lighting/data/DirectionalLightDataNode.js +1 -0
  2385. package/dist-browser/three/addons/tsl/lighting/data/HemisphereLightDataNode.js +1 -0
  2386. package/dist-browser/three/addons/tsl/lighting/data/PointLightDataNode.js +1 -0
  2387. package/dist-browser/three/addons/tsl/lighting/data/SpotLightDataNode.js +1 -0
  2388. package/dist-browser/three/addons/tsl/math/Bayer.js +1 -0
  2389. package/dist-browser/three/addons/tsl/math/curlNoise.js +1 -0
  2390. package/dist-browser/three/addons/tsl/math/voronoiNoise.js +1 -0
  2391. package/dist-browser/three/addons/tsl/shadows/TileShadowNode.js +1 -0
  2392. package/dist-browser/three/addons/tsl/shadows/TileShadowNodeHelper.js +1 -0
  2393. package/dist-browser/three/addons/tsl/utils/GroundedSkybox.js +1 -0
  2394. package/dist-browser/three/addons/tsl/utils/RNoise.js +1 -0
  2395. package/dist-browser/three/addons/tsl/utils/Raymarching.js +1 -0
  2396. package/dist-browser/three/addons/tsl/utils/SoftParticles.js +1 -0
  2397. package/dist-browser/three/addons/tsl/utils/SpecularHelpers.js +1 -0
  2398. package/dist-browser/three/addons/tsl/utils/TAAUtils.js +1 -0
  2399. package/dist-browser/three/addons/utils/BufferGeometryUtils.js +1 -0
  2400. package/dist-browser/three/addons/utils/CameraUtils.js +1 -0
  2401. package/dist-browser/three/addons/utils/ColorUtils.js +1 -0
  2402. package/dist-browser/three/addons/utils/GaussianSplatUtils.js +1 -0
  2403. package/dist-browser/three/addons/utils/GeometryCompressionUtils.js +1 -0
  2404. package/dist-browser/three/addons/utils/GeometryUtils.js +1 -0
  2405. package/dist-browser/three/addons/utils/LDrawUtils.js +1 -0
  2406. package/dist-browser/three/addons/utils/SceneOptimizer.js +1 -0
  2407. package/dist-browser/three/addons/utils/SceneUtils.js +1 -0
  2408. package/dist-browser/three/addons/utils/ShadowMapViewer.js +1 -0
  2409. package/dist-browser/three/addons/utils/ShadowMapViewerGPU.js +1 -0
  2410. package/dist-browser/three/addons/utils/SkeletonUtils.js +1 -0
  2411. package/dist-browser/three/addons/utils/SortUtils.js +1 -0
  2412. package/dist-browser/three/addons/utils/UVsDebug.js +1 -0
  2413. package/dist-browser/three/addons/utils/WebGLTextureUtils.js +1 -0
  2414. package/dist-browser/three/addons/utils/WebGPUTextureUtils.js +1 -0
  2415. package/dist-browser/three/addons/utils/WorkerPool.js +1 -0
  2416. package/dist-browser/three/addons/webxr/ARButton.js +1 -0
  2417. package/dist-browser/three/addons/webxr/OculusHandModel.js +1 -0
  2418. package/dist-browser/three/addons/webxr/OculusHandPointerModel.js +1 -0
  2419. package/dist-browser/three/addons/webxr/Text2D.js +1 -0
  2420. package/dist-browser/three/addons/webxr/VRButton.js +1 -0
  2421. package/dist-browser/three/addons/webxr/WebGLXRFallback.js +1 -0
  2422. package/dist-browser/three/addons/webxr/XRButton.js +1 -0
  2423. package/dist-browser/three/addons/webxr/XRControllerModelFactory.js +1 -0
  2424. package/dist-browser/three/addons/webxr/XREstimatedLight.js +1 -0
  2425. package/dist-browser/three/addons/webxr/XRHandMeshModel.js +1 -0
  2426. package/dist-browser/three/addons/webxr/XRHandModelFactory.js +1 -0
  2427. package/dist-browser/three/addons/webxr/XRHandPrimitiveModel.js +1 -0
  2428. package/dist-browser/three/addons/webxr/XRPlanes.js +1 -0
  2429. package/dist-browser/three/addons.js +1 -0
  2430. package/dist-browser/three/tsl.js +1 -0
  2431. package/dist-browser/three/webgpu.js +1 -0
  2432. package/dist-browser/three.js +1 -0
  2433. package/dist-browser/three.quarks.js +1 -0
  2434. package/dist-browser/zustand/middleware.js +1 -0
  2435. package/dist-browser/zustand/shallow.js +1 -0
  2436. package/dist-browser/zustand/vanilla.js +1 -0
  2437. package/dist-browser/zustand.js +1 -0
  2438. package/package.json +194 -0
  2439. package/rapier/LICENSE +201 -0
  2440. package/rapier/NOTICE +23 -0
  2441. package/rapier/simd/coarena.js +1 -0
  2442. package/rapier/simd/control/character_controller.js +1 -0
  2443. package/rapier/simd/control/index.js +1 -0
  2444. package/rapier/simd/control/pid_controller.js +1 -0
  2445. package/rapier/simd/control/ray_cast_vehicle_controller.js +1 -0
  2446. package/rapier/simd/dynamics/ccd_solver.js +1 -0
  2447. package/rapier/simd/dynamics/coefficient_combine_rule.js +1 -0
  2448. package/rapier/simd/dynamics/impulse_joint.js +1 -0
  2449. package/rapier/simd/dynamics/impulse_joint_set.js +1 -0
  2450. package/rapier/simd/dynamics/index.js +1 -0
  2451. package/rapier/simd/dynamics/integration_parameters.js +1 -0
  2452. package/rapier/simd/dynamics/island_manager.js +1 -0
  2453. package/rapier/simd/dynamics/multibody_joint.js +1 -0
  2454. package/rapier/simd/dynamics/multibody_joint_set.js +1 -0
  2455. package/rapier/simd/dynamics/rigid_body.js +1 -0
  2456. package/rapier/simd/dynamics/rigid_body_set.js +1 -0
  2457. package/rapier/simd/exports.js +1 -0
  2458. package/rapier/simd/geometry/broad_phase.js +1 -0
  2459. package/rapier/simd/geometry/collider.js +1 -0
  2460. package/rapier/simd/geometry/collider_set.js +1 -0
  2461. package/rapier/simd/geometry/contact.js +1 -0
  2462. package/rapier/simd/geometry/feature.js +1 -0
  2463. package/rapier/simd/geometry/index.js +1 -0
  2464. package/rapier/simd/geometry/interaction_groups.js +0 -0
  2465. package/rapier/simd/geometry/narrow_phase.js +1 -0
  2466. package/rapier/simd/geometry/point.js +1 -0
  2467. package/rapier/simd/geometry/ray.js +1 -0
  2468. package/rapier/simd/geometry/shape.js +1 -0
  2469. package/rapier/simd/geometry/toi.js +1 -0
  2470. package/rapier/simd/init.js +0 -0
  2471. package/rapier/simd/math.js +1 -0
  2472. package/rapier/simd/pipeline/debug_render_pipeline.js +1 -0
  2473. package/rapier/simd/pipeline/event_queue.js +1 -0
  2474. package/rapier/simd/pipeline/index.js +1 -0
  2475. package/rapier/simd/pipeline/physics_hooks.js +1 -0
  2476. package/rapier/simd/pipeline/physics_pipeline.js +1 -0
  2477. package/rapier/simd/pipeline/query_pipeline.js +1 -0
  2478. package/rapier/simd/pipeline/serialization_pipeline.js +1 -0
  2479. package/rapier/simd/pipeline/world.js +1 -0
  2480. package/rapier/simd/rapier.js +1 -0
  2481. package/rapier/simd/rapier_wasm3d.js +1 -0
  2482. package/rapier/simd/rapier_wasm3d_bg.js +1 -0
  2483. package/rapier/simd/rapier_wasm3d_bg.wasm +0 -0
  2484. package/rapier/simd/raw.js +1 -0
  2485. package/rapier/simd-compat/rapier.mjs +1 -0
  2486. package/rapier/types/coarena.d.ts +15 -0
  2487. package/rapier/types/control/character_controller.d.ts +191 -0
  2488. package/rapier/types/control/index.d.ts +3 -0
  2489. package/rapier/types/control/pid_controller.d.ts +50 -0
  2490. package/rapier/types/control/ray_cast_vehicle_controller.d.ts +277 -0
  2491. package/rapier/types/dynamics/ccd_solver.d.ts +15 -0
  2492. package/rapier/types/dynamics/coefficient_combine_rule.d.ts +13 -0
  2493. package/rapier/types/dynamics/impulse_joint.d.ts +375 -0
  2494. package/rapier/types/dynamics/impulse_joint_set.d.ts +79 -0
  2495. package/rapier/types/dynamics/index.d.ts +10 -0
  2496. package/rapier/types/dynamics/integration_parameters.d.ts +57 -0
  2497. package/rapier/types/dynamics/island_manager.d.ts +24 -0
  2498. package/rapier/types/dynamics/multibody_joint.d.ts +42 -0
  2499. package/rapier/types/dynamics/multibody_joint_set.d.ts +76 -0
  2500. package/rapier/types/dynamics/rigid_body.d.ts +803 -0
  2501. package/rapier/types/dynamics/rigid_body_set.d.ts +78 -0
  2502. package/rapier/types/exports.d.ts +8 -0
  2503. package/rapier/types/geometry/broad_phase.d.ts +164 -0
  2504. package/rapier/types/geometry/collider.d.ts +996 -0
  2505. package/rapier/types/geometry/collider_set.d.ts +72 -0
  2506. package/rapier/types/geometry/contact.d.ts +36 -0
  2507. package/rapier/types/geometry/feature.d.ts +6 -0
  2508. package/rapier/types/geometry/index.d.ts +11 -0
  2509. package/rapier/types/geometry/interaction_groups.d.ts +18 -0
  2510. package/rapier/types/geometry/narrow_phase.d.ts +130 -0
  2511. package/rapier/types/geometry/point.d.ts +58 -0
  2512. package/rapier/types/geometry/ray.d.ts +108 -0
  2513. package/rapier/types/geometry/shape.d.ts +632 -0
  2514. package/rapier/types/geometry/toi.d.ts +44 -0
  2515. package/rapier/types/init.d.ts +5 -0
  2516. package/rapier/types/math.d.ts +98 -0
  2517. package/rapier/types/pipeline/debug_render_pipeline.d.ts +40 -0
  2518. package/rapier/types/pipeline/event_queue.d.ts +101 -0
  2519. package/rapier/types/pipeline/index.d.ts +7 -0
  2520. package/rapier/types/pipeline/physics_hooks.d.ts +39 -0
  2521. package/rapier/types/pipeline/physics_pipeline.d.ts +12 -0
  2522. package/rapier/types/pipeline/query_pipeline.d.ts +38 -0
  2523. package/rapier/types/pipeline/serialization_pipeline.d.ts +37 -0
  2524. package/rapier/types/pipeline/world.d.ts +602 -0
  2525. package/rapier/types/rapier.d.ts +3 -0
  2526. package/rapier/types/rapier_wasm3d.d.ts +2204 -0
  2527. package/rapier/types/rapier_wasm3d_bg.wasm.d.ts +582 -0
  2528. package/rapier/types/raw.d.ts +1 -0
  2529. package/readable/rounds/LevelBanner.tsx +44 -0
  2530. package/readable/rounds/Round.tsx +228 -0
  2531. package/readable/rounds/RoundScreen.tsx +89 -0
  2532. package/readable/rounds/dist/LevelBanner.d.ts +13 -0
  2533. package/readable/rounds/dist/LevelBanner.d.ts.map +1 -0
  2534. package/readable/rounds/dist/LevelBanner.js +20 -0
  2535. package/readable/rounds/dist/LevelBanner.js.map +1 -0
  2536. package/readable/rounds/dist/Round.d.ts +74 -0
  2537. package/readable/rounds/dist/Round.d.ts.map +1 -0
  2538. package/readable/rounds/dist/Round.js +137 -0
  2539. package/readable/rounds/dist/Round.js.map +1 -0
  2540. package/readable/rounds/dist/RoundScreen.d.ts +39 -0
  2541. package/readable/rounds/dist/RoundScreen.d.ts.map +1 -0
  2542. package/readable/rounds/dist/RoundScreen.js +23 -0
  2543. package/readable/rounds/dist/RoundScreen.js.map +1 -0
  2544. package/readable/rounds/dist/index.d.ts +7 -0
  2545. package/readable/rounds/dist/index.d.ts.map +1 -0
  2546. package/readable/rounds/dist/index.js +11 -0
  2547. package/readable/rounds/dist/index.js.map +1 -0
  2548. package/readable/rounds/dist/rounds.d.ts +16 -0
  2549. package/readable/rounds/dist/rounds.d.ts.map +1 -0
  2550. package/readable/rounds/dist/rounds.js +82 -0
  2551. package/readable/rounds/dist/rounds.js.map +1 -0
  2552. package/readable/rounds/dist/rules.d.ts +65 -0
  2553. package/readable/rounds/dist/rules.d.ts.map +1 -0
  2554. package/readable/rounds/dist/rules.js +150 -0
  2555. package/readable/rounds/dist/rules.js.map +1 -0
  2556. package/readable/rounds/dist/traits.d.ts +103 -0
  2557. package/readable/rounds/dist/traits.d.ts.map +1 -0
  2558. package/readable/rounds/dist/traits.js +79 -0
  2559. package/readable/rounds/dist/traits.js.map +1 -0
  2560. package/readable/rounds/index.ts +11 -0
  2561. package/readable/rounds/rounds.ts +117 -0
  2562. package/readable/rounds/rules.ts +182 -0
  2563. package/readable/rounds/traits.ts +82 -0
@@ -0,0 +1,623 @@
1
+ import{G as e,S as t,Y as n,_ as r,a as i,b as a,c as o,g as s,h as c,i as l,o as u,r as d}from"./CU0epHFG.js";import{$d as f,Al as p,Bl as m,Bt as h,Bu as g,Cl as _,Co as v,Dl as y,El as b,Gc as x,Hc as ee,Jc as S,Ln as C,Md as te,Nt as ne,Od as re,Oo as w,Os as T,Pd as E,Pt as ie,Rt as D,Sl as O,Tl as k,Tu as ae,Uc as A,Ut as j,Vc as M,Vt as N,Wn as oe,Wt as se,Xa as ce,Xf as le,Xn as ue,Y as de,Yc as fe,Yn as pe,_l as P,_u as me,al as he,bd as ge,bl as _e,cc as ve,cf as ye,dl as be,dn as xe,fc as Se,ff as Ce,fl as we,fn as Te,gl as Ee,gu as De,hf as Oe,hu as ke,ic as Ae,if as je,il as Me,ko as Ne,lf as Pe,ll as Fe,nu as Ie,ol as Le,pc as Re,rl as ze,rs as Be,sc as Ve,sf as He,tf as Ue,tp as F,tu as We,ul as Ge,un as Ke,us as qe,vd as Je,vl as Ye,wl as Xe,x as Ze,xl as Qe,xo as $e,yd as et,yl as I}from"./-MLBVTaO.js";import{$n as tt,Bn as nt,Fn as rt,Jn as it,Pn as at,Qn as ot,Rn as st,Sn as ct,Vn as lt,Vt as ut,Yn as dt,_n as ft,ir as pt,lr as mt,or as ht,rr as gt,tr as _t,zn as vt}from"./V70ADx0g.js";import{n as yt,o as bt,s as L}from"./BrfUaL46.js";import{_ as xt,c as St,f as Ct,l as R,o as wt,p as Tt,s as Et,y as Dt}from"./BobsCMiL.js";import{C as Ot,_ as kt,a as At,b as jt,f as Mt,h as Nt,p as Pt,s as Ft,u as It,v as Lt,w as Rt,y as zt}from"./CVgRrBP4.js";import{At as Bt,C as Vt,Ct as Ht,Et as Ut,Ft as Wt,Mt as Gt,Nt as Kt,Ot as qt,Pt as Jt,ht as Yt,mt as Xt,ot as Zt,st as Qt,y as $t}from"./Cq6VqPHb.js";import{E as en,_ as tn,d as nn,f as rn,g as an,m as on,p as sn,t as cn,u as ln}from"./BH6Ftfg9.js";import{n as un,r as dn,t as fn}from"./BJIJuxaE.js";import{i as pn,r as mn,t as hn}from"./DsgWLyZo.js";import{l as gn,o as _n,s as vn,u as yn}from"./Dwfie-ev.js";import{C as bn,E as xn,O as Sn,S as Cn,T as wn,_ as Tn,a as En,b as Dn,c as On,d as kn,g as An,h as jn,i as Mn,l as Nn,n as Pn,o as Fn,r as In,s as Ln,t as Rn,u as zn,x as Bn,y as Vn}from"./Bydoy8wO.js";import{t as Hn}from"./DHsBnfoU.js";import{i as Un,t as Wn}from"./BzaiZux2.js";import{t as Gn}from"./BJclgjKG.js";import{t as Kn}from"./DZIhHLUn.js";import{a as qn}from"./DlkDsMQd.js";import{a as Jn,i as Yn,n as Xn,r as Zn}from"./Cg33N9Ej.js";import{t as Qn}from"./DkKmurqu.js";import{v as $n,y as er}from"./CHntUxHl.js";import{n as tr}from"./Chcm92bZ.js";import{d as nr,i as rr}from"./D8jIS84n.js";import{a as ir}from"./DgMhVbMU.js";import{d as ar,f as or,i as sr,l as cr,r as lr,s as ur,t as dr,u as fr}from"./Bw06YsIc.js";import{n as pr}from"./BWlq9jqw.js";import{n as z,t as mr}from"./3rj0AvB6.js";import{t as hr}from"./Bpe0g5hX.js";import{n as gr,r as _r}from"./CQPA3y5T.js";import{n as vr,t as yr}from"./DyHjwN2H.js";import{createPortal as br,useFrame as xr,useInstanceHandle as Sr,useLoader as Cr,useThree as B}from"@react-three/fiber";import{AnimationMixer as wr,AudioContext as Tr,AudioLoader as Er,BackSide as Dr,Bone as Or,Box3 as kr,BufferAttribute as Ar,CanvasTexture as jr,Color as Mr,DataArrayTexture as Nr,DataTexture as Pr,DataUtils as Fr,DoubleSide as Ir,EquirectangularReflectionMapping as Lr,Euler as Rr,FloatType as zr,Fog as Br,Group as Vr,HalfFloatType as Hr,InstancedBufferAttribute as Ur,InstancedBufferGeometry as Wr,LinearFilter as Gr,LinearMipmapLinearFilter as Kr,LinearSRGBColorSpace as qr,LoopOnce as Jr,LoopRepeat as Yr,MathUtils as V,Matrix4 as Xr,Mesh as Zr,MeshDepthMaterial as Qr,MeshStandardMaterial as $r,NearestFilter as ei,NoColorSpace as ti,Object3D as ni,PMREMGenerator as ri,PlaneGeometry as ii,Quaternion as ai,RGBAFormat as oi,Ray as si,RedFormat as ci,RepeatWrapping as li,SRGBColorSpace as ui,Scene as di,ShaderMaterial as fi,SkinnedMesh as pi,Source as mi,Sphere as hi,TextureLoader as gi,UnsignedByteType as _i,Vector2 as vi,Vector3 as H,Vector4 as yi}from"three";import{trait as bi}from"koota";import{PropShape as xi,ScatterFamily as Si,ScatterKind as Ci,scatterKinds as wi,toDisplayName as Ti}from"@spawnite/schema";import Ei from"alea";import{acceleratedRaycast as Di}from"three-mesh-bvh";import{Suspense as Oi,createContext as ki,use as U,useCallback as Ai,useEffect as W,useLayoutEffect as G,useMemo as K,useReducer as ji,useRef as q,useState as J,useSyncExternalStore as Mi}from"react";import{shallow as Ni}from"zustand/shallow";import{GLInstancedBufferAttribute as Pi}from"@three.ez/instanced-mesh";import{CameraControls as Fi,GradientTexture as Ii,Sky as Li}from"@react-three/drei";import{useHas as Ri,useQuery as zi,useQueryFirst as Bi,useTrait as Y,useWorld as X}from"koota/react";import Vi from"camera-controls";import{clone as Hi}from"three/addons/utils/SkeletonUtils.js";import{Fragment as Ui,jsx as Z,jsxs as Q}from"react/jsx-runtime";import{useFiber as Wi}from"its-fine";import{HDRLoader as Gi}from"three/addons/loaders/HDRLoader.js";import{Sky as Ki}from"three-stdlib";var qi=[`keydown`,`pointerdown`,`touchend`],Ji=!1,Yi=!1;function Xi(){try{return Tr.getContext()??void 0}catch(e){Tr.setContext(null),console.warn(`Web Audio is unavailable in this browser, so the game runs silent: its sounds, music and footsteps play nothing, and the game needs no change. The browser said: ${String(e)}`);return}}function Zi(){let e=Xi();if(e!==void 0&&!Ji){Ji=!0;for(let e of qi)window.addEventListener(e,()=>{Yi||Zi()?.resume()})}return e}function Qi(){return Yi=!0,Ji&&Zi()?.suspend(),()=>{Yi=!1,Ji&&navigator.userActivation?.hasBeenActive!==!1&&Zi()?.resume()}}var $i=/* @__PURE__ */ new Map,ea=Promise.resolve(void 0);function ta(e){if(Zi()===void 0)return ea;let t=$i.get(e);return t===void 0&&(t=new Er().loadAsync(e),$i.set(e,t)),t}var na=/* @__PURE__ */ function(e){return e.Music=`music`,e.Effects=`effects`,e.Interface=`interface`,e.Voice=`voice`,e}({}),ra={music:`musicVolume`,effects:`effectsVolume`,interface:`interfaceVolume`,voice:`voiceVolume`},ia=.5;function aa(e){return e<=0?0:10**(ia*(e-100)/20)}var oa=6;function sa(e){return e<=100?aa(e):10**(oa*(Math.min(e,200)-100)/100/20)}function ca(e,t){let n=e[ra[t]];return aa(e.masterVolume)*(t===`voice`?sa(n):aa(n))}function la({channel:e,base:t=1},n){let r=t*ca(yn.getState(),e);return n(r),yn.subscribe(i=>{let a=t*ca(i,e);a!==r&&(r=a,n(r))})}function ua(e,t){return la(t,t=>{e.gain.value=t})}var da=/* @__PURE__ */ new WeakMap;function fa(e){let t=da.get(e);return t===void 0&&(t=e.createGain(),t.connect(e.destination),ua(t,{channel:`effects`}),da.set(e,t)),t}function pa(e){let t=Zi();t?.state===`running`&&ta(e).then(e=>{if(e===void 0)return;let n=t.createBufferSource();n.buffer=e,n.connect(fa(t)),n.start()})}function ma({degrees:e,min:t,max:n,fixed:r},i){return r||i===null?e:V.clamp(i,t,n)}var ha=16/9;function ga(e,t){let n=V.degToRad(e)/2;return V.radToDeg(2*Math.atan(Math.tan(n)/t))}function _a(e){return Number.isFinite(e)&&e>0?e:1}function va(e,t){let n=ga(e,ha),r=_a(t);return r>=1?n:ga(n,r)}var ya=/* @__PURE__ */ new Set,ba=/* @__PURE__ */ new WeakMap,xa=ki(null);function Sa(e,t){e&&ba.set(e,{player:{},...ba.get(e),...t})}function Ca(e){let t=U(o),n=U(xa)!==null,r=Wi();W(()=>{n||Sa(t,{player:e,owner:wa(r)})})}function wa(e){for(let t=e?.return;t&&t.type!==i;t=t.return){if(!Da(t.type))continue;let e=Ta(t);return{Component:t.elementType,props:e.memoizedProps,holdsCamera:Ea(e)}}}function Ta(e){let t=[],n=e;for(;n.return;n=n.return)t.push(n);let r=n.stateNode?.current;for(let n of t.reverse()){let t=r?.child??null;for(;t&&t!==n&&t!==n.alternate;)t=t.sibling;if(!t)return e;r=t}return r??e}function Ea(e){for(let t=e.child;t;t=t.sibling)if(ya.has(t.type)||Ea(t))return!0;return!1}function Da(e){return typeof e==`function`||typeof e==`object`&&!!e&&(`render`in e||`compare`in e)}function Oa(e,t,n=!0){ya.add(e);let r=U(o),i=U(xa)!==null;W(()=>{n&&!i&&Sa(r,{camera:{Component:e,props:t}})})}function ka(e){return(e&&ba.get(e))??{player:{}}}var Aa=`absolute bg-white shadow-[0_0_2px_black]`;function ja(){try{return Ot(e=>e.captured)?/* @__PURE__ */ Z(Kn,{children:/* @__PURE__ */ Q(`div`,{"data-crosshair":!0,"aria-hidden":!0,className:`pointer-events-none fixed top-1/2 left-1/2 size-4 -translate-x-1/2 -translate-y-1/2`,children:[/* @__PURE__ */ Z(`div`,{className:`${Aa} top-1/2 left-0 h-0.5 w-full -translate-y-1/2`}),/* @__PURE__ */ Z(`div`,{className:`${Aa} top-0 left-1/2 h-full w-0.5 -translate-x-1/2`})]})}):null}catch(e){throw L(`Crosshair`,e)}}ja.displayName=`Crosshair`;var Ma=new vi;function Na(){let e=X(),t=B(e=>e.gl.domElement),n=Ot(e=>e.captured),r=Bi(R);return W(()=>jt(t),[t]),W(()=>{r?.get(R)?.startLocked&&Mt(t)&&r.set(R,{locked:!0})},[r,t]),W(()=>{let{ownerDocument:n}=t,r=n.defaultView,i=()=>{Ot.getState().freed||(Xn(e)&&Mt(t)?Pt(t):Lt(t))},a=n=>{mn(n)&&Mt(t)&&(Zn(e),i())},o=t=>{t.deltaY!==0&&(Jn(e,t.deltaY<0),i())},s=n=>{kt(t)&&Yn(e,Ma.set(n.movementX,n.movementY))},c=e.onChange(R,()=>{Xn(e)||Lt(t)}),l=()=>{Rt.getState().open||Ot.getState().freed||Xn(e)&&Mt(t)&&Pt(t)},u=Ot.subscribe(({freed:e},r)=>{!e&&r.freed&&zt()&&(n.pointerLockElement===t?n.addEventListener(`pointerlockchange`,l,{once:!0}):l())});return r?.addEventListener(`keydown`,a),t.addEventListener(`wheel`,o,{passive:!0}),n.addEventListener(`pointermove`,s),()=>{c(),u(),n.removeEventListener(`pointerlockchange`,l),r?.removeEventListener(`keydown`,a),t.removeEventListener(`wheel`,o),n.removeEventListener(`pointermove`,s),Lt(t)}},[e,t]),n}function Pa(e){W(()=>{if(e===void 0)return;let t,n=()=>{t?.(),t=void 0},r=n=>{n.code!==e||pn(n)||(n.preventDefault(),!(t||Rt.getState().open)&&(t=Nt()))},i=t=>{t.code===e&&(t.preventDefault(),n())};return window.addEventListener(`keydown`,r),window.addEventListener(`keyup`,i),window.addEventListener(`blur`,n),()=>{window.removeEventListener(`keydown`,r),window.removeEventListener(`keyup`,i),window.removeEventListener(`blur`,n),n()}},[e])}var Fa=`button, [role="button"], a[href], input, select, textarea`,Ia=`[data-engine-menu], [data-devtools], [data-loading-cover], [data-also-in-menu], [inert]`,La=250,Ra=/* @__PURE__ */ new Set;function za(e){return(e.getAttribute(`aria-label`)??e.textContent??``).trim().replace(/\s+/g,` `).slice(0,60)||e.tagName}function Ba(e){if(e.matches(`:disabled`)||e.closest(Ia)||e.getAttribute(`aria-keyshortcuts`)?.trim())return!1;let t=getComputedStyle(e);return t.pointerEvents===`none`?!1:typeof e.checkVisibility==`function`?e.checkVisibility({opacityProperty:!0,visibilityProperty:!0}):t.display!==`none`&&t.visibility!==`hidden`}function Va(){let e=X(),t=Ot(e=>e.captured),n=Ot(e=>e.freed),r=Ut(e=>e.covered);W(()=>{if(!t||n||r||!e.has(at))return;let i,a=()=>{i=void 0;for(let t of document.querySelectorAll(Fa)){let n=za(t);!Ra.has(n)&&Ba(t)&&(Ra.add(n),rt(e,`"${n}" is a control on screen while the camera captures the cursor, so no click reaches it. Free the cursor while it shows, with freeCursor on its Panel or Modal or with useFreeCursor, or bind it to a key and name the key with aria-keyshortcuts, keyShortcuts on a Button.`))}},o=()=>{i??=setTimeout(a,La)};o();let s=new MutationObserver(o);return s.observe(document.body,{childList:!0,subtree:!0,attributes:!0}),()=>{s.disconnect(),clearTimeout(i)}},[t,n,r,e])}var Ha={travel:5,milliseconds:400};function Ua(){let e=X(),t=B(e=>e.gl.domElement),n=B(e=>e.events.connected),r=B(e=>e.get),i=q({startedAt:0,fromX:0,fromY:0,furthest:0});W(()=>{let e=({clientX:e,clientY:t})=>{let{fromX:n,fromY:r,furthest:a}=i.current;i.current.furthest=Math.max(a,Math.hypot(e-n,t-r))},{ownerDocument:n}=t;return n.addEventListener(`pointermove`,e),()=>{n.removeEventListener(`pointermove`,e)}},[t]),W(()=>{if(!(n instanceof EventTarget))return;let a=e=>{if(!(e instanceof MouseEvent))return;let{timeStamp:t,clientX:n,clientY:r}=e;i.current={startedAt:t,fromX:n,fromY:r,furthest:0}},o=n=>{if(!(n instanceof MouseEvent)||!e.queryFirst(R)?.get(R)?.clickToWalk||kt(t))return;let{startedAt:a,furthest:o}=i.current;if(o>Ha.travel||n.timeStamp-a>Ha.milliseconds)return;let s=r();s.events.compute?.(n,s);let c=e.queryFirst(Me,_t)?.get(_t)?.object,[l]=c?s.raycaster.intersectObject(c,!1):[];if(e.has(C)&&oe(e,s.raycaster))return;let u=ue(e,s.raycaster.ray,l?.distance);u?pe(e,u):l&&x(e,l.point)};return n.addEventListener(`pointerdown`,a),n.addEventListener(`click`,o),()=>{n.removeEventListener(`pointerdown`,a),n.removeEventListener(`click`,o)}},[n,r,e,t])}function Wa(){let e=B(e=>e.get);return K(()=>class extends Vi{timedFrame=-1;update(t){let n=e(),r=$n(n),i=r!==this.timedFrame;return this.timedFrame=r,super.update(i?er(n,t):t)}},[e])}function Ga({follow:e=St.ViewTarget,distance:t,pitch:n,through:r=ro,settle:i=!0,latch:a=!1,fov:o=F.fov,fieldOfView:s=null,minDistance:c=F.minDistance,maxDistance:l=F.maxDistance,minPolarAngle:u=F.minPolarAngle,maxPolarAngle:d=F.maxPolarAngle,firstPersonMinPolarAngle:f=F.firstPersonMinPolarAngle,firstPersonMaxPolarAngle:p=F.firstPersonMaxPolarAngle,bodyNearEye:m=wt.Fade,eyeHeightFraction:h=F.eyeHeightFraction,tuning:g}={}){let[_,v]=J(null),y=Wa(),[b,x]=J(null),S=X(),C=yn(e=>e.fieldOfView),te=B(e=>e.size.width/e.size.height),ne=s?va(ma(s,C),te):o,w=K(()=>({fov:ne,minDistance:c,maxDistance:l,minPolarAngle:u,maxPolarAngle:d,firstPersonMinPolarAngle:f,firstPersonMaxPolarAngle:p,bodyNearEye:m,eyeHeightFraction:h,settle:i,latch:a}),[ne,c,l,u,d,f,p,m,h,i,a]),T=K(()=>({...w,...g}),[w,g]),E=q(T),ie=q(t),D=q(t);W(()=>{_&&t!==D.current&&(D.current=t,t!==void 0&&_.dollyTo(t,!0))},[_,t]);let O=q(n),k=q(s);W(()=>{E.current=T,ie.current=t,O.current=n,k.current=s},[T,t,n,s]);let ae=Un({id:b&&String(b.id()),through:r,kind:Qt.Entity,entityId:b?ut(S,b):void 0}),{wiki:A,description:j,ranges:M}=Et;Un({id:b&&`${b.id()}:settings`,parent:ae,name:`Settings`,kind:Qt.Behaviour,props:T,wiki:A,description:j,ranges:M,entity:b??void 0,traits:[R]}),W(()=>{if(!_)return;let t=S.spawn(R({orbit:_,follow:e,...E.current,fieldOfView:k.current}));x(t);let n=t.get(R);n&&Dt(n);let r=ee(S)?.get(ht)?.rotation,i=e===null?_.azimuthAngle:r?re(r):0,a=O.current===void 0?_.polarAngle:Math.PI/2-V.degToRad(O.current);return _.rotateTo(i,a,!1),_.dollyTo(ie.current??_.distance,!1),()=>{x(null),xt(S),t.destroy()}},[_,S,e]);let N=Ri(b,R),oe=q(T);W(()=>{if(!b||!N||Ni(oe.current,T))return;oe.current=T,b.set(R,T);let e=b.get(R);e&&Dt(e)},[b,N,T]);let se=q(s);return W(()=>{b&&N&&!Ni(se.current,s)&&(se.current=s,b.set(R,{fieldOfView:s}))},[b,N,s]),{ref:v,impl:y,...hn}}var Ka=/* @__PURE__ */ function(e){return e.Default=`default`,e.Shooter=`shooter`,e.Classic=`classic`,e}({}),qa={minDistance:F.minDistance,maxDistance:F.maxDistance,fieldOfView:F.fieldOfView,minFieldOfView:gn.fieldOfView.min,maxFieldOfView:gn.fieldOfView.max,fixedFieldOfView:!1,minPolarAngle:F.minPolarAngle,maxPolarAngle:F.maxPolarAngle,firstPersonMinPolarAngle:F.firstPersonMinPolarAngle,firstPersonMaxPolarAngle:F.firstPersonMaxPolarAngle,bodyNearEye:wt.Fade,eyeHeightFraction:F.eyeHeightFraction,shoulderOffset:F.shoulderOffset,pivotRise:F.pivotRise,lookSpeed:F.lookSpeed},Ja={...qa,fieldOfView:102,lookSpeed:V.degToRad(.5),shoulderOffset:.55,pivotRise:.45,distance:2.75,pitch:10},$={default:{...qa,firstPerson:!0,lockToggle:!0,startLocked:!1,clickToWalk:!1,orbitButton:Qn.Secondary},shooter:{...Ja,firstPerson:!0,lockToggle:!1,startLocked:!0,clickToWalk:!1,orbitButton:Qn.Secondary},classic:{...qa,firstPerson:!1,lockToggle:!1,startLocked:!1,clickToWalk:!0,orbitButton:Qn.Primary}},{ROTATE:Ya,DOLLY:Xa,NONE:Za}=Vi.ACTION,Qa={[Qn.Primary]:hn.mouseButtons,[Qn.Secondary]:{left:Za,middle:Xa,right:Ya,wheel:Xa}},$a={left:Za,middle:Za,right:Za,wheel:Xa};function eo({rig:e,orbitButton:t,freeCursorKey:n}){try{let r=Ot(e=>e.captured);return/* @__PURE__ */ Q(Ui,{children:[/* @__PURE__ */ Z(Fi,{makeDefault:!0,...e,mouseButtons:r?$a:Qa[t]}),/* @__PURE__ */ Z(to,{freeCursorKey:n})]})}catch(e){throw L(`LockableOrbit`,e)}}function to({freeCursorKey:e}){try{return Na(),Pa(e),Va(),Ua(),/* @__PURE__ */ Z(ja,{})}catch(e){throw L(`OrbitLock`,e)}}function no(e){let t=X(),n=U(o),r=Bi(R)?.get(R)?.orbit;W(()=>{let i=n?.camera;if(!e||!r||!i)return;let{framing:a}=i.getState();a&&Ct(t,a);let o=()=>{let e=Tt(t);e&&i.getState().keepFraming(e)};return r.addEventListener(`rest`,o),()=>{r.removeEventListener(`rest`,o),o()}},[e,r,n,t])}function ro(e){try{let{follow:t,preset:n=`default`,distance:r=$[n].distance,pitch:i=$[n].pitch,rememberFraming:a=!1,freeCursorKey:o,...s}=e;Oa(ro,e,t!==null),no(a);let c=t!==null,{minDistance:l=$[n].minDistance,maxDistance:u=$[n].maxDistance,fieldOfView:f=$[n].fieldOfView,minFieldOfView:p=$[n].minFieldOfView,maxFieldOfView:m=$[n].maxFieldOfView,fixedFieldOfView:h=$[n].fixedFieldOfView,minPolarAngle:g=$[n].minPolarAngle,maxPolarAngle:_=$[n].maxPolarAngle,firstPersonMinPolarAngle:v=$[n].firstPersonMinPolarAngle,firstPersonMaxPolarAngle:y=$[n].firstPersonMaxPolarAngle,bodyNearEye:b=$[n].bodyNearEye,eyeHeightFraction:x=$[n].eyeHeightFraction,shoulderOffset:ee=$[n].shoulderOffset,pivotRise:S=$[n].pivotRise,lookSpeed:C=$[n].lookSpeed,firstPerson:te=c&&$[n].firstPerson,lockToggle:ne=c&&$[n].lockToggle,startLocked:re=c&&$[n].startLocked,clickToWalk:w=$[n].clickToWalk}=s,{orbitButton:T}=$[n],E=yn(e=>e.mouseSensitivity),ie=yn(e=>e.invertLook),D=yn(e=>e.shiftLock),O=X();W(()=>{!D&&ne&&O.queryFirst(R)?.set(R,{locked:!1})},[D,ne,O]);let k=Ga({follow:t,distance:r,pitch:i,minDistance:l,maxDistance:u,fieldOfView:K(()=>({degrees:f,min:p,max:m,fixed:h}),[f,p,m,h]),minPolarAngle:g,maxPolarAngle:_,firstPersonMinPolarAngle:v,firstPersonMaxPolarAngle:y,bodyNearEye:b,eyeHeightFraction:x,tuning:{firstPerson:te,lockToggle:ne&&D,lockToggleOffered:ne,clickToWalk:w,startLocked:re,playerLook:!0,lookSpeed:C*E,shoulderOffset:ee,pivotRise:S,rotateSpeed:E,invertLook:ie}});return d()?null:/* @__PURE__ */ Z(eo,{rig:k,orbitButton:T,freeCursorKey:o})}catch(e){throw L(`Camera`,e)}}eo.displayName=`LockableOrbit`,to.displayName=`OrbitLock`,ro.displayName=`Camera`;var io=`varying vec2 vUv;
2
+ varying vec3 vWorldPosition;
3
+ void main() {
4
+ vUv = uv;
5
+ vec4 worldPosition = modelMatrix * vec4(position, 1.0);
6
+ vWorldPosition = worldPosition.xyz;
7
+ gl_Position = projectionMatrix * viewMatrix * worldPosition;
8
+ }
9
+ `;function ao(e){return typeof e==`number`?`float`:e instanceof vi?`vec2`:e instanceof H||e instanceof Mr?`vec3`:`sampler2D`}function oo(e,t){return`uniform float uTime;
10
+ uniform vec2 uPointer;
11
+ varying vec2 vUv;
12
+ varying vec3 vWorldPosition;
13
+ `+Object.entries(t).map(([e,t])=>`uniform ${ao(t)} ${e};\n`).join(``)+e}function so(e,t){return t>0&&!Vt.getState().paused?er(e,t):0}var co={};function lo({fragment:e,uniforms:t=co,transparent:n=!1,clock:r=`world`,material:i}){try{let a=Hn(Ft.Shader),o=oo(e,t),s=Object.keys(t).join(` `),c=K(()=>{let e={uTime:{value:0},uPointer:{value:new vi}};for(let t of s.split(` `))t&&(e[t]={value:null});return e},[s]),l=K(()=>new fi({uniforms:c,vertexShader:io,fragmentShader:o,transparent:n,depthWrite:!n}),[c,o,n]);W(()=>()=>l.dispose(),[l]);let u=K(()=>kn(i,l),[i,l]),d=q(t);return d.current=t,xr(bt(`ShaderView`,(e,t)=>{r===`world`?l.uniforms.uTime.value=Zt.getState().seconds:l.uniforms.uTime.value+=so(e,t),l.uniforms.uPointer.value.copy(e.pointer);for(let[e,t]of Object.entries(d.current))l.uniforms[e].value=t})),a?/* @__PURE__ */ Z(`primitive`,{object:u,attach:`material`}):/* @__PURE__ */ Z(`meshBasicMaterial`,{visible:!1})}catch(e){throw L(`ShaderView`,e)}}lo.displayName=`ShaderView`;var uo=e=>`/*\ncontributors: [Stefan Gustavson, Ian McEwan]\ndescription: modulus of 289\nuse: <float|vec2|vec3|vec4> mod289(<float|vec2|vec3|vec4> x)\n*/\n\n#ifndef FNC_MOD289\n#define FNC_MOD289\n\nfloat mod289(const in float x) { return x - floor(x * (1. / 289.)) * 289.; }\nvec2 mod289(const in vec2 x) { return x - floor(x * (1. / 289.)) * 289.; }\nvec3 mod289(const in vec3 x) { return x - floor(x * (1. / 289.)) * 289.; }\nvec4 mod289(const in vec4 x) { return x - floor(x * (1. / 289.)) * 289.; }\n\n#endif\n\n\n\n/*\ncontributors: [Stefan Gustavson, Ian McEwan]\ndescription: permute\nuse: <float|vec2|vec3|vec4> permute(<float|vec2|vec3|vec4> x)\nexamples:\n - https://raw.githubusercontent.com/patriciogonzalezvivo/lygia_examples/main/math_functions.frag\n*/\n\n#ifndef FNC_PERMUTE\n#define FNC_PERMUTE\n\nfloat permute(const in float v) { return mod289(((v * 34.0) + 1.0) * v); }\nvec2 permute(const in vec2 v) { return mod289(((v * 34.0) + 1.0) * v); }\nvec3 permute(const in vec3 v) { return mod289(((v * 34.0) + 1.0) * v); }\nvec4 permute(const in vec4 v) { return mod289(((v * 34.0) + 1.0) * v); }\n\n#endif\n\n/*\ncontributors: [Stefan Gustavson, Ian McEwan]\ndescription: Fast, accurate inverse square root. \nuse: <float|vec2|vec3|vec4> taylorInvSqrt(<float|vec2|vec3|vec4> x)\n*/\n\n#ifndef FNC_TAYLORINVSQRT\n#define FNC_TAYLORINVSQRT\nfloat taylorInvSqrt(in float r) { return 1.79284291400159 - 0.85373472095314 * r; }\nvec2 taylorInvSqrt(in vec2 r) { return 1.79284291400159 - 0.85373472095314 * r; }\nvec3 taylorInvSqrt(in vec3 r) { return 1.79284291400159 - 0.85373472095314 * r; }\nvec4 taylorInvSqrt(in vec4 r) { return 1.79284291400159 - 0.85373472095314 * r; }\n#endif\n/*\ncontributors: [Stefan Gustavson, Ian McEwan]\ndescription: grad4, used for snoise(vec4 v)\nuse: grad4(<float> j, <vec4> ip)\n*/\n\n#ifndef FNC_GRAD4\n#define FNC_GRAD4\nvec4 grad4(float j, vec4 ip) {\n const vec4 ones = vec4(1.0, 1.0, 1.0, -1.0);\n vec4 p,s;\n p.xyz = floor( fract (vec3(j) * ip.xyz) * 7.0) * ip.z - 1.0;\n p.w = 1.5 - dot(abs(p.xyz), ones.xyz);\n s = vec4(lessThan(p, vec4(0.0)));\n p.xyz = p.xyz + (s.xyz*2.0 - 1.0) * s.www;\n return p;\n}\n#endif\n\n\n/*\ncontributors: [Stefan Gustavson, Ian McEwan]\ndescription: Simplex Noise https://github.com/stegu/webgl-noise\nuse: snoise(<vec2|vec3|vec4> pos)\nlicense: |\n Copyright 2021-2023 by Stefan Gustavson and Ian McEwan.\n Published under the terms of the MIT license:\n https://opensource.org/license/mit/\nexamples:\n - /shaders/generative_snoise.frag\n*/\n\n#ifndef FNC_SNOISE\n#define FNC_SNOISE\nfloat snoise(in vec2 v) {\n const vec4 C = vec4(0.211324865405187, // (3.0-sqrt(3.0))/6.0\n 0.366025403784439, // 0.5*(sqrt(3.0)-1.0)\n -0.577350269189626, // -1.0 + 2.0 * C.x\n 0.024390243902439); // 1.0 / 41.0\n // First corner\n vec2 i = floor(v + dot(v, C.yy) );\n vec2 x0 = v - i + dot(i, C.xx);\n\n // Other corners\n vec2 i1;\n //i1.x = step( x0.y, x0.x ); // x0.x > x0.y ? 1.0 : 0.0\n //i1.y = 1.0 - i1.x;\n i1 = (x0.x > x0.y) ? vec2(1.0, 0.0) : vec2(0.0, 1.0);\n // x0 = x0 - 0.0 + 0.0 * C.xx ;\n // x1 = x0 - i1 + 1.0 * C.xx ;\n // x2 = x0 - 1.0 + 2.0 * C.xx ;\n vec4 x12 = x0.xyxy + C.xxzz;\n x12.xy -= i1;\n\n // Permutations\n i = mod289(i); // Avoid truncation effects in permutation\n vec3 p = permute( permute( i.y + vec3(0.0, i1.y, 1.0 ))\n + i.x + vec3(0.0, i1.x, 1.0 ));\n\n vec3 m = max(0.5 - vec3(dot(x0,x0), dot(x12.xy,x12.xy), dot(x12.zw,x12.zw)), 0.0);\n m = m*m ;\n m = m*m ;\n\n // Gradients: 41 points uniformly over a line, mapped onto a diamond.\n // The ring size 17*17 = 289 is close to a multiple of 41 (41*7 = 287)\n\n vec3 x = 2.0 * fract(p * C.www) - 1.0;\n vec3 h = abs(x) - 0.5;\n vec3 ox = floor(x + 0.5);\n vec3 a0 = x - ox;\n\n // Normalise gradients implicitly by scaling m\n // Approximation of: m *= inversesqrt( a0*a0 + h*h );\n m *= 1.79284291400159 - 0.85373472095314 * ( a0*a0 + h*h );\n\n // Compute final noise value at P\n vec3 g;\n g.x = a0.x * x0.x + h.x * x0.y;\n g.yz = a0.yz * x12.xz + h.yz * x12.yw;\n return 130.0 * dot(m, g);\n}\n\n\nfloat snoise(in vec3 v) {\n const vec2 C = vec2(1.0/6.0, 1.0/3.0) ;\n const vec4 D = vec4(0.0, 0.5, 1.0, 2.0);\n\n // First corner\n vec3 i = floor(v + dot(v, C.yyy) );\n vec3 x0 = v - i + dot(i, C.xxx) ;\n\n // Other corners\n vec3 g = step(x0.yzx, x0.xyz);\n vec3 l = 1.0 - g;\n vec3 i1 = min( g.xyz, l.zxy );\n vec3 i2 = max( g.xyz, l.zxy );\n\n // x0 = x0 - 0.0 + 0.0 * C.xxx;\n // x1 = x0 - i1 + 1.0 * C.xxx;\n // x2 = x0 - i2 + 2.0 * C.xxx;\n // x3 = x0 - 1.0 + 3.0 * C.xxx;\n vec3 x1 = x0 - i1 + C.xxx;\n vec3 x2 = x0 - i2 + C.yyy; // 2.0*C.x = 1/3 = C.y\n vec3 x3 = x0 - D.yyy; // -1.0+3.0*C.x = -0.5 = -D.y\n\n // Permutations\n i = mod289(i);\n vec4 p = permute( permute( permute(\n i.z + vec4(0.0, i1.z, i2.z, 1.0 ))\n + i.y + vec4(0.0, i1.y, i2.y, 1.0 ))\n + i.x + vec4(0.0, i1.x, i2.x, 1.0 ));\n\n // Gradients: 7x7 points over a square, mapped onto an octahedron.\n // The ring size 17*17 = 289 is close to a multiple of 49 (49*6 = 294)\n float n_ = 0.142857142857; // 1.0/7.0\n vec3 ns = n_ * D.wyz - D.xzx;\n\n vec4 j = p - 49.0 * floor(p * ns.z * ns.z); // mod(p,7*7)\n\n vec4 x_ = floor(j * ns.z);\n vec4 y_ = floor(j - 7.0 * x_ ); // mod(j,N)\n\n vec4 x = x_ *ns.x + ns.yyyy;\n vec4 y = y_ *ns.x + ns.yyyy;\n vec4 h = 1.0 - abs(x) - abs(y);\n\n vec4 b0 = vec4( x.xy, y.xy );\n vec4 b1 = vec4( x.zw, y.zw );\n\n //vec4 s0 = vec4(lessThan(b0,0.0))*2.0 - 1.0;\n //vec4 s1 = vec4(lessThan(b1,0.0))*2.0 - 1.0;\n vec4 s0 = floor(b0)*2.0 + 1.0;\n vec4 s1 = floor(b1)*2.0 + 1.0;\n vec4 sh = -step(h, vec4(0.0));\n\n vec4 a0 = b0.xzyw + s0.xzyw*sh.xxyy ;\n vec4 a1 = b1.xzyw + s1.xzyw*sh.zzww ;\n\n vec3 p0 = vec3(a0.xy,h.x);\n vec3 p1 = vec3(a0.zw,h.y);\n vec3 p2 = vec3(a1.xy,h.z);\n vec3 p3 = vec3(a1.zw,h.w);\n\n //Normalise gradients\n vec4 norm = taylorInvSqrt(vec4(dot(p0,p0), dot(p1,p1), dot(p2, p2), dot(p3,p3)));\n p0 *= norm.x;\n p1 *= norm.y;\n p2 *= norm.z;\n p3 *= norm.w;\n\n // Mix final noise value\n vec4 m = max(0.6 - vec4(dot(x0,x0), dot(x1,x1), dot(x2,x2), dot(x3,x3)), 0.0);\n m = m * m;\n return 42.0 * dot( m*m, vec4( dot(p0,x0), dot(p1,x1),\n dot(p2,x2), dot(p3,x3) ) );\n}\n\nfloat snoise(in vec4 v) {\n const vec4 C = vec4( 0.138196601125011, // (5 - sqrt(5))/20 G4\n 0.276393202250021, // 2 * G4\n 0.414589803375032, // 3 * G4\n -0.447213595499958); // -1 + 4 * G4\n\n // First corner\n vec4 i = floor(v + dot(v, vec4(.309016994374947451)) ); // (sqrt(5) - 1)/4\n vec4 x0 = v - i + dot(i, C.xxxx);\n\n // Other corners\n\n // Rank sorting originally contributed by Bill Licea-Kane, AMD (formerly ATI)\n vec4 i0;\n vec3 isX = step( x0.yzw, x0.xxx );\n vec3 isYZ = step( x0.zww, x0.yyz );\n // i0.x = dot( isX, vec3( 1.0 ) );\n i0.x = isX.x + isX.y + isX.z;\n i0.yzw = 1.0 - isX;\n // i0.y += dot( isYZ.xy, vec2( 1.0 ) );\n i0.y += isYZ.x + isYZ.y;\n i0.zw += 1.0 - isYZ.xy;\n i0.z += isYZ.z;\n i0.w += 1.0 - isYZ.z;\n\n // i0 now contains the unique values 0,1,2,3 in each channel\n vec4 i3 = clamp( i0, 0.0, 1.0 );\n vec4 i2 = clamp( i0-1.0, 0.0, 1.0 );\n vec4 i1 = clamp( i0-2.0, 0.0, 1.0 );\n\n // x0 = x0 - 0.0 + 0.0 * C.xxxx\n // x1 = x0 - i1 + 1.0 * C.xxxx\n // x2 = x0 - i2 + 2.0 * C.xxxx\n // x3 = x0 - i3 + 3.0 * C.xxxx\n // x4 = x0 - 1.0 + 4.0 * C.xxxx\n vec4 x1 = x0 - i1 + C.xxxx;\n vec4 x2 = x0 - i2 + C.yyyy;\n vec4 x3 = x0 - i3 + C.zzzz;\n vec4 x4 = x0 + C.wwww;\n\n // Permutations\n i = mod289(i);\n float j0 = permute( permute( permute( permute(i.w) + i.z) + i.y) + i.x);\n vec4 j1 = permute( permute( permute( permute (\n i.w + vec4(i1.w, i2.w, i3.w, 1.0 ))\n + i.z + vec4(i1.z, i2.z, i3.z, 1.0 ))\n + i.y + vec4(i1.y, i2.y, i3.y, 1.0 ))\n + i.x + vec4(i1.x, i2.x, i3.x, 1.0 ));\n\n // Gradients: 7x7x6 points over a cube, mapped onto a 4-cross polytope\n // 7*7*6 = 294, which is close to the ring size 17*17 = 289.\n vec4 ip = vec4(1.0/294.0, 1.0/49.0, 1.0/7.0, 0.0) ;\n\n vec4 p0 = grad4(j0, ip);\n vec4 p1 = grad4(j1.x, ip);\n vec4 p2 = grad4(j1.y, ip);\n vec4 p3 = grad4(j1.z, ip);\n vec4 p4 = grad4(j1.w, ip);\n\n // Normalise gradients\n vec4 norm = taylorInvSqrt(vec4(dot(p0,p0), dot(p1,p1), dot(p2, p2), dot(p3,p3)));\n p0 *= norm.x;\n p1 *= norm.y;\n p2 *= norm.z;\n p3 *= norm.w;\n p4 *= taylorInvSqrt(dot(p4,p4));\n\n // Mix contributions from the five corners\n vec3 m0 = max(0.6 - vec3(dot(x0,x0), dot(x1,x1), dot(x2,x2)), 0.0);\n vec2 m1 = max(0.6 - vec2(dot(x3,x3), dot(x4,x4) ), 0.0);\n m0 = m0 * m0;\n m1 = m1 * m1;\n return 49.0 * ( dot(m0*m0, vec3( dot( p0, x0 ), dot( p1, x1 ), dot( p2, x2 )))\n + dot(m1*m1, vec2( dot( p3, x3 ), dot( p4, x4 ) ) ) ) ;\n}\n\nvec2 snoise2( vec2 x ){\n float s = snoise(vec2( x ));\n float s1 = snoise(vec2( x.y - 19.1, x.x + 47.2 ));\n return vec2( s , s1 );\n}\n\nvec3 snoise3( vec3 x ){\n float s = snoise(vec3( x ));\n float s1 = snoise(vec3( x.y - 19.1 , x.z + 33.4 , x.x + 47.2 ));\n float s2 = snoise(vec3( x.z + 74.2 , x.x - 124.5 , x.y + 99.4 ));\n return vec3( s , s1 , s2 );\n}\n\nvec3 snoise3( vec4 x ){\n float s = snoise(vec4( x ));\n float s1 = snoise(vec4( x.y - 19.1 , x.z + 33.4 , x.x + 47.2, x.w ));\n float s2 = snoise(vec4( x.z + 74.2 , x.x - 124.5 , x.y + 99.4, x.w ));\n return vec3( s , s1 , s2 );\n}\n\n#endif\n
14
+
15
+ const vec3 shallowTint = vec3(0.55, 0.92, 0.86);
16
+ const vec3 sky = vec3(0.68, 0.84, 0.96);
17
+ const vec3 foamColour = vec3(0.94, 0.98, 1.0);
18
+ const float shoreWidth = 0.14;
19
+ const float foamWidth = 0.035;
20
+
21
+ void main() {
22
+ // The flat normal, from the screen-space slope of the position. It comes
23
+ // before the discard below, since a slope is undefined once neighbouring
24
+ // pixels have left.
25
+ vec3 normal = normalize(cross(dFdx(vWorldPosition), dFdy(vWorldPosition)));
26
+
27
+ ${e} if (inland < 0.0) discard;
28
+
29
+ // Waves: two layers of noise scrolling across each other, on the world's
30
+ // ground so a longer river keeps the same wave, -1 to 1.
31
+ vec2 ground = vWorldPosition.xz / max(uWaveSize, 0.01);
32
+ float drift = uTime * uWaveSpeed;
33
+ float waves = 0.6 * snoise(ground + vec2(0.30, 0.20) * drift)
34
+ + 0.4 * snoise(ground * 2.3 - vec2(0.25, -0.35) * drift);
35
+
36
+ // Depth: shallow at the shore and deep inland, the line moved by the waves.
37
+ float shore = inland + waves * 0.012;
38
+ float depth = smoothstep(0.0, shoreWidth, shore);
39
+
40
+ // Colour: the deep colour in sRGB, as the constants are written, lightened
41
+ // toward the shallow tint near the shore, with brighter crests.
42
+ vec3 deep = sRGBTransferOETF(vec4(uColor, 1.0)).rgb;
43
+ vec3 colour = mix(mix(deep, shallowTint, 0.55), deep, depth);
44
+ colour += smoothstep(0.5, 0.95, waves) * 0.07;
45
+
46
+ // Foam: a bright line where the water is shallowest, broken by noise.
47
+ float breakup = 0.5 + 0.5 * snoise(ground * 4.0 - vec2(0.4, 0.1) * drift);
48
+ float foam = (1.0 - smoothstep(0.0, foamWidth, shore)) * smoothstep(0.25, 0.6, breakup);
49
+ foam = max(foam, 1.0 - smoothstep(0.0, 0.012, shore));
50
+
51
+ // Sky: a fake reflection, stronger where the view grazes the surface.
52
+ vec3 view = normalize(cameraPosition - vWorldPosition);
53
+ float fresnel = pow(1.0 - abs(dot(view, normal)), 3.0);
54
+ fresnel = clamp(fresnel + waves * 0.08, 0.0, 1.0);
55
+ colour = mix(colour, sky, fresnel * 0.7);
56
+
57
+ colour = mix(colour, foamColour, foam);
58
+ gl_FragColor = vec4(colour, 1.0);
59
+ }
60
+ `,fo=uo(` // The shore: how far this point lies inside the plane's edge, 0 at the
61
+ // edge and 0.5 at the centre, or inside the circle when round.
62
+ vec2 edge = min(vUv, 1.0 - vUv);
63
+ float inland = mix(min(edge.x, edge.y), 0.5 - length(vUv - 0.5), uRound);
64
+ `),po=uo(` // The sea's bed: the ground under the point, on the triangle the ground's mesh draws
65
+ // there: each cell split from its far-left to its near-right corner.
66
+ vec2 grid = clamp((vWorldPosition.xz + uGrid.x) / uGrid.y, 0.0, uGrid.z - 1.0);
67
+ vec2 corner = min(floor(grid), uGrid.z - 2.0);
68
+ vec2 along = grid - corner;
69
+ float near = texture2D(uGround, (corner + 0.5) / uGrid.z).r;
70
+ float right = texture2D(uGround, (corner + vec2(1.5, 0.5)) / uGrid.z).r;
71
+ float far = texture2D(uGround, (corner + vec2(0.5, 1.5)) / uGrid.z).r;
72
+ float both = texture2D(uGround, (corner + 1.5) / uGrid.z).r;
73
+ float bed = along.x + along.y <= 1.0
74
+ ? near + along.x * (right - near) + along.y * (far - near)
75
+ : both + (1.0 - along.x) * (far - both) + (1.0 - along.y) * (right - both);
76
+
77
+ // The shore: the water's depth over it, a metre of depth to a tenth of
78
+ // a pond's inland, so the shallows span 1.4 m of depth.
79
+ float inland = (uLevel - bed) * 0.1;
80
+ `),mo=/* @__PURE__ */ new WeakSet;function ho(e){mo.add(e)}var go={BloomEffect:`bloom`,SelectiveBloomEffect:`selective bloom`,SMAAEffect:`SMAA`,DepthOfFieldEffect:`depth of field`,SSAOEffect:`SSAO`,GodRaysEffect:`god rays`,OutlineEffect:`outline`,TiltShiftEffect:`tilt shift`},_o=3;function vo(e,t){if(mo.has(e)){let t=[{label:`ambient occlusion`,target:e,method:`render`},{label:`ambient occlusion: transparency`,target:e,method:`renderTransparency`}],n=Reflect.get(e,`effectCompositerQuad`);return typeof n==`object`&&n&&t.push({label:`ambient occlusion: composite`,target:n,method:`render`}),t}if(e.name===`RenderPass`)return[{label:`scene`,target:e,method:`render`}];if(e.name===`CopyPass`)return[{label:`copy`,target:e,method:`render`}];if(e.name===`EffectPass`){let{effects:n}=e;return[{label:t===0?`effects`:`effects ${t+1}`,target:e,method:`render`,detail:n.map(e=>e.name).join(`, `)},...n.flatMap(e=>{let t=e.name===`ToneMappingEffect`&&e.mode===_o?`tone mapping`:go[e.name];return t===void 0?[]:[{label:t,target:e,method:`update`}]})]}return[{label:e.name,target:e,method:`render`}]}function yo(e,t){if(It(e,Ft.GpuScopes))return[];let n={label:`shadow map`,target:e.shadowMap,method:`render`};if(!t)return[n,{label:`scene`,target:e,method:`render`}];let r=0;return[n,...t.passes.filter(e=>e.enabled).flatMap(e=>{let t=vo(e,r);return e.name===`EffectPass`&&(r+=1),t})]}function bo(e){return n()?(window.__GAME_GPU_SCOPES__=e,()=>{window.__GAME_GPU_SCOPES__===e&&delete window.__GAME_GPU_SCOPES__}):()=>void 0}var xo=3,So=[],Co=[],wo=[],To=0,Eo=[],Do=new Mr,Oo=new Mr(0,0,0);function ko(e,t){let n=To++;So[n]=e,Co[n]=t,wo[n]=e.visible;let{children:r}=e;for(let e=0;e<r.length;e++)ko(r[e],n)}function Ao(e){return!!e.material}function jo(e){let t=e;return t.isLight===!0||t.isLightProbeGrid===!0}function Mo({material:e,userData:t}){let n=e;return n.transparent===!0&&!n.depthWrite&&!t.treatAsOpaque||!!t.cannotReceiveAO}function No({material:e,userData:t}){let n=e;return n.transparent===!0&&n.depthWrite===!0&&!t.treatAsOpaque}function Po(e){for(let e=0;e<To;e++)Eo[e]=!1;for(let t=To-1;t>0;t--){let n=So[t];if(!n)continue;let r=wo[t];Ao(n)?(r&&=e(n),Eo[t]=r):(Eo[t]=r&&(Eo[t]||jo(n)),r=Eo[t]),n.visible=r,Eo[t]&&(Eo[Co[t]]=!0)}return Eo[0]}function Fo(e,t,n,r){t.setRenderTarget(n);let i=Po(r);t.clear(!0,!0,!0),e.depthCopyPass.render(t),i&&t.render(e.scene,e.camera)}function Io(e){let{scene:t,camera:n}=this,r=t.background;e.getClearColor(Do);let i=e.getClearAlpha(),a=e.autoClearDepth,o=t.matrixWorldAutoUpdate,s=n.matrixWorldAutoUpdate,{shadowMap:c}=e,l=c.autoUpdate,u=c.needsUpdate;To=0,ko(t,-1),t.background=null,e.autoClearDepth=!1,e.setClearColor(Oo,0),t.matrixWorldAutoUpdate=!1,n.matrixWorldAutoUpdate=!1,c.autoUpdate=!1,c.needsUpdate=!1;let{uniforms:d}=this.depthCopyPass.material;d.depthTexture.value=this.depthTexture,d.reverseDepthBuffer.value=this.configuration.depthBufferType===xo;try{Fo(this,e,this.transparencyRenderTargetDWFalse,Mo),Fo(this,e,this.transparencyRenderTargetDWTrue,No)}finally{for(let e=0;e<To;e++){let t=So[e];t&&(t.visible=wo[e]),So[e]=null}To=0,c.autoUpdate=l,c.needsUpdate=u,n.matrixWorldAutoUpdate=s,t.matrixWorldAutoUpdate=o,e.setClearColor(Do,i),t.background=r,e.autoClearDepth=a}}function Lo(e){e.renderTransparency=Io}var Ro=/*#__PURE__*/ bi({part:e.Grading});function zo(e){let t=X(),n=e.join(` `);W(()=>{let e=n.split(` `).filter(Boolean).map(e=>t.spawn(Ro({part:e})));return()=>e.forEach(e=>e.destroy())},[t,n])}function Bo(){let e=zi(Ro).map(e=>e.get(Ro)?.part).sort().join(` `);return K(()=>new Set(e.split(` `).filter(Boolean)),[e])}var Vo={LINEAR:0,REINHARD:1,REINHARD2:2,REINHARD2_ADAPTIVE:3,UNCHARTED2:4,OPTIMIZED_CINEON:5,CINEON:5,ACES_FILMIC:6,AGX:7,NEUTRAL:8},Ho=ge(async()=>{let{Bloom:e,EffectComposer:t,EffectComposerContext:n,groupPasses:r,N8AO:i,ToneMapping:a,Vignette:o,wrapEffect:s}=await import(`@react-three/postprocessing`),{ContrastEffect:c,Effect:l,Pass:u,SaturationEffect:d,TintEffect:f}=await import(`./jMKXPXIH.js`);return{Bloom:e,BrightnessContrast:s(c),Effect:l,EffectComposer:t,EffectComposerContext:n,groupPasses:r,HueSaturation:s(d),N8AO:i,Pass:u,Tint:s(f),ToneMapping:a,Vignette:o}},`The post-processing libraries are read before they load`);function Uo({children:e,toneMapping:t=Vo.ACES_FILMIC,multisampling:n,ref:i,fromLook:a=!1}){try{let o=X(),s=r().multisampling,c=d(),l=Hn(Ft.PostProcessing),[u,f]=J(null);W(()=>{if(c)return;let e=o.spawn(Jt({fromLook:a}));return f(e),()=>{e.destroy(),f(null)}},[o,c,a]);let p=Un({id:u&&String(u.id()),through:Uo,kind:Qt.Entity,entityId:u?ut(o,u):void 0});return c||!u||!l?null:/* @__PURE__ */ Z(Pn,{value:u,children:/* @__PURE__ */ Z(Wn,{value:p,children:/* @__PURE__ */ Z(Oi,{fallback:/* @__PURE__ */ Z(Sn,{name:`the post-processing stack`}),children:/* @__PURE__ */ Z(Go,{ref:i,multisampling:n??s,toneMapping:t,children:e})})})})}catch(e){throw L(`PostProcessing`,e)}}var Wo=ki(!1);function Go({children:e,toneMapping:t,multisampling:n,ref:r}){try{let i=U(Ho.load());return/* @__PURE__ */ Q(i.EffectComposer,{ref:r,multisampling:n,children:[/* @__PURE__ */ Z(Xo,{}),/* @__PURE__ */ Z(Wo,{value:t!==!1,children:/* @__PURE__ */ Z(Ko,{children:e})}),t===!1?null:/* @__PURE__ */ Z(i.ToneMapping,{mode:t})]})}catch(e){throw L(`LoadedComposer`,e)}}function Ko({children:e}){try{let t=U(Ho.load()),n=U(t.EffectComposerContext),r=X(),[,i]=J(0),a=K(()=>({...n,requestRebuild:()=>{n.requestRebuild(),i(e=>e+1)}}),[n]),[o]=J(()=>({})),s=q(null),c=Sr(s),l=q(/* @__PURE__ */ new WeakSet);return G(()=>{for(let{object:e}of c.current?.parent?.children??[]){if(e===o||e instanceof t.Effect||e instanceof t.Pass||l.current.has(e))continue;let n=`PostProcessing was handed a ${e.constructor?.name??typeof e}, which is not an Effect or a Pass of the "postprocessing" library the engine draws with, so the stack draws without it. Build it from "postprocessing" at the version @spawnite/engine names as its peer, and mount it as <primitive object={effect} />: a class from a second copy of the library, such as another version in the game's dependencies, is one the stack cannot use.`;if(r.has(at))throw yt(Error(n),`SP0011`,void 0);l.current.add(e),console.error(n)}}),/* @__PURE__ */ Q(t.EffectComposerContext,{value:a,children:[e,/* @__PURE__ */ Z(`primitive`,{ref:s,object:o})]})}catch(e){throw L(`CheckedChildren`,e)}}var qo=/* @__PURE__ */ new WeakMap,Jo=new vi;function Yo(e){return qo.get(e)}function Xo(){try{let{composer:e,camera:t}=U(U(Ho.load()).EffectComposerContext),n=B(e=>e.viewport.dpr);return G(()=>{let{outputBuffer:t}=e;t.samples!==0&&(t.samples=0,t.dispose())},[e]),G(()=>{let{width:t,height:n}=e.getRenderer().getSize(Jo);e.setSize(t,n)},[e,n]),G(()=>{let n=e.getRenderer(),r={composer:e,camera:t};return qo.set(n,r),()=>{qo.get(n)===r&&qo.delete(n)}},[e,t]),null}catch(e){throw L(`StackRegistration`,e)}}function Zo(e,t){Gn(e,t);let{requestRebuild:n}=U(U(Ho.load()).EffectComposerContext);return G(()=>n()),G(()=>n,[n]),Y(In(),e.trait)??t}function Qo(t){try{return zo([e.Bloom]),a(e=>e.bloom)?/* @__PURE__ */ Z($o,{...t}):null}catch(e){throw L(`Bloom`,e)}}var $o=function({intensity:e=.6,threshold:t=.85,radius:n=.7}){let r=U(Ho.load()),i=K(()=>({intensity:e,threshold:t,radius:n}),[e,t,n]),a=Zo(Kt,i),o=q(null);return W(()=>{o.current&&(o.current.luminanceMaterial.threshold=a.threshold,o.current.mipmapBlurPass.radius=a.radius)},[a.threshold,a.radius]),/* @__PURE__ */ Z(r.Bloom,{ref:o,mipmapBlur:!0,intensity:a.intensity})};function es(t){try{return zo([e.Occlusion]),a(e=>e.occlusion)?/* @__PURE__ */ Z(ts,{...t}):null}catch(e){throw L(`AmbientOcclusion`,e)}}var ts=function({radius:e=2,intensity:t=2,quality:n,halfResolution:i}){let a=U(Ho.load()),o=r(),s=U(Wo),c=n??o.occlusionQuality,l=i??o.halfResolution,u=K(()=>({radius:e,intensity:t}),[e,t]),d=Zo(Gt,u),f=q(null);return G(()=>{f.current?.setQualityMode(Ti(c))},[c,l,d.radius,d.intensity]),G(()=>{f.current&&(Lo(f.current),ho(f.current),s?a.groupPasses.delete(f.current):a.groupPasses.add(f.current))}),/* @__PURE__ */ Z(a.N8AO,{ref:f,aoRadius:d.radius,intensity:d.intensity,quality:c,halfRes:l})};function ns({offset:e=.3,darkness:t=.5}){try{let n=U(Ho.load()),r=K(()=>({offset:e,darkness:t}),[e,t]),i=Zo(Wt,r);return/* @__PURE__ */ Z(n.Vignette,{offset:i.offset,darkness:i.darkness})}catch(e){throw L(`Vignette`,e)}}Uo.displayName=`PostProcessing`,Go.displayName=`LoadedComposer`,Ko.displayName=`CheckedChildren`,Xo.displayName=`StackRegistration`,Qo.displayName=`Bloom`,es.displayName=`AmbientOcclusion`,ns.displayName=`Vignette`;var rs={family:`ui-sans-serif, system-ui, -apple-system, "Segoe UI", Roboto, sans-serif`,weight:600,outline:`rgba(0, 0, 0, 0.7)`,shadow:`rgba(0, 0, 0, 0.5)`,fill:`rgba(0, 0, 0, 0.5)`,speaking:`#34d399`},is=[`M12 19v3`,`M19 10v2a7 7 0 0 1-14 0v-2`],as=`M9 5a3 3 0 0 1 6 0v7a3 3 0 0 1-6 0Z`;function os(){return getComputedStyle(document.documentElement).getPropertyValue(`--color-voice-speaking`).trim()||rs.speaking}function ss(e,t,n,r){let i=Math.ceil(t*1.3),a=r?Math.round(t*.6):3,o=r?Math.round(t*.25):3,s=n?Math.round(t*10/12):0,c=n?Math.round(t*4/12):0;return{width:a*2+s+c+e,height:i+o*2,bottom:r?0:o,microphoneLeft:a,microphoneSize:s,textLeft:a+s+c}}function cs({name:e,speaking:t,color:n,size:r,background:i}){let a=`${rs.weight} ${r}px ${rs.family}`,o=document.createElement(`canvas`),s=o.getContext(`2d`),c=typeof s?.measureText==`function`;c&&(s.font=a);let l=ss(Math.ceil(c?s.measureText(e).width:e.length*r*.6),r,t,i);if(!c)return{texture:null,layout:l};let{width:u,height:d}=l,f=Math.min(3,Math.max(2,Math.ceil(devicePixelRatio)));o.width=u*f,o.height=d*f,s.scale(f,f);let p=d/2;if(i?(s.beginPath(),s.roundRect(0,0,u,d,d/2),s.fillStyle=rs.fill,s.fill()):(s.shadowColor=rs.shadow,s.shadowOffsetY=f,s.shadowBlur=2*f),s.lineJoin=`round`,s.lineCap=`round`,t){let{microphoneLeft:e,microphoneSize:t}=l;s.save(),s.translate(e,p-t/2),s.scale(t/24,t/24);let n=is.map(e=>new Path2D(e)),r=new Path2D(as);s.lineWidth=3+24/t,s.strokeStyle=rs.outline;for(let e of[...n,r])s.stroke(e);s.shadowColor=`transparent`;let i=os();s.lineWidth=3,s.strokeStyle=i;for(let e of n)s.stroke(e);s.fillStyle=i,s.fill(r),s.restore()}s.font=a,s.textBaseline=`middle`,s.lineWidth=2,s.strokeStyle=rs.outline,s.strokeText(e,l.textLeft,p),s.shadowColor=`transparent`,s.fillStyle=n,s.fillText(e,l.textLeft,p);let m=new jr(o);return m.colorSpace=ui,m.minFilter=Gr,m.generateMipmaps=!1,{texture:m,layout:l}}function ls({name:e,speaking:t,color:n,size:r,background:i}){try{let a=K(()=>cs({name:e,speaking:t,color:n,size:r,background:i}),[e,t,n,r,i]);W(()=>()=>a.texture?.dispose(),[a]);let{width:o,height:s,bottom:c}=a.layout;return/* @__PURE__ */ Q(`mesh`,{"position-y":s/2-c,scale:[o,s,1],renderOrder:1e3,raycast:()=>!1,children:[/* @__PURE__ */ Z(`planeGeometry`,{}),/* @__PURE__ */ Z(`meshBasicMaterial`,{map:a.texture,transparent:!0,depthTest:!1,depthWrite:!1,toneMapped:!1})]})}catch(e){throw L(`Nameplate`,e)}}ls.displayName=`Nameplate`;var us=/* @__PURE__ */ function(e){return e.Metres=`metres`,e.Pixels=`pixels`,e}({}),ds=new ai,fs=new ai,ps=new H,ms=new H,hs=new H,gs=new H,_s=/* @__PURE__ */ new WeakMap;function vs(e,t,n){if(`isOrthographicCamera`in e&&e.isOrthographicCamera)return(e.top-e.bottom)/e.zoom/n;let{fov:r,zoom:i}=e;return 2*t*Math.tan(V.degToRad(r)/2)/i/n}function ys(e,t,n){let r=_s.get(e);if(t>=1){if(n.delete(e),!r)return;_s.delete(e),e.opacity=r.opacity,e.transparent!==r.transparent&&(e.transparent=r.transparent,e.needsUpdate=!0);return}r||(r={opacity:e.opacity,transparent:e.transparent},_s.set(e,r)),n.add(e),e.transparent||(e.transparent=!0,e.needsUpdate=!0),e.opacity=r.opacity*t}function bs(e,t,n){e.traverse(e=>{let{material:r}=e;if(r){if(!Array.isArray(r))return ys(r,t,n);for(let e of r)ys(e,t,n)}})}function xs({offset:e=[0,0,0],units:t=`metres`,maxDistance:n=1/0,fade:r=0,children:i}){try{let a=q(null),[o]=J(()=>/* @__PURE__ */ new Set);return W(()=>()=>{for(let e of o)ys(e,1,o)},[o]),xr(bt(`Billboard`,({camera:i,size:s})=>{let c=a.current,l=c?.parent;if(!c||!l)return;c.position.fromArray(e),l.getWorldQuaternion(ds),i.getWorldQuaternion(fs),c.quaternion.copy(ds.invert().multiply(fs)),c.getWorldPosition(ms),i.getWorldPosition(hs);let u=hs.distanceTo(ms);if(c.visible=u<=n,!c.visible)return;if(t===`pixels`){i.getWorldDirection(gs);let e=vs(i,Math.max(i.near,gs.dot(ms.sub(hs))),s.height);l.getWorldScale(ps),c.scale.set(e/ps.x,e/ps.y,e/ps.z)}else c.scale.setScalar(1);let d=r>0&&Number.isFinite(n)?V.clamp((n-u)/r,0,1):1;(d<1||o.size>0)&&bs(c,d,o)})),/* @__PURE__ */ Z(`group`,{ref:a,name:`billboard`,children:i})}catch(e){throw L(`Billboard`,e)}}xs.displayName=`Billboard`;function Ss(e){let t=Y(e,dt)?.name,n=Y(e,ke)?.name,r=Y(e,ce)?.name,i=Y(e,tt)?.name;return t||n||r||Ze(i??``)}function Cs(e){let t=e!==void 0&&M(e),n=e?.get(vt)?.id;return qn(e=>t?e.talking:n!==void 0&&e.speakers.includes(n))}var ws=/*#__PURE__*/ bi(),Ts=.2;function Es(e){if(e===!1)return null;let t=e===!0?{}:typeof e==`function`||`$$typeof`in e?{component:e}:e;if(t.show===`none`)return null;let n=t.distance??30,r=t.fade??(t.distance===void 0?void 0:[n*2/3,n]);return{fade:r??[20,30],teamFade:r??[1/0,1/0],offset:t.offset??[0,.15,0],size:t.size??12,background:t.background??!1,color:t.color??`#ffffff`,throughWalls:t.throughWalls??`team`,show:t.show??`all`,component:t.component??ls}}function Ds({setting:e}){try{let t=X(),n=Es(e),r=n!==null,i=yn(e=>e.showPlayerNames),a=zi(le,ke,_t),o=zi(le,it).find(M),s=Y(o,ae)?.name??``;return W(()=>{if(r)return t.add(ws),()=>t.remove(ws)},[t,r]),!n||!i?null:a.filter(e=>!M(e)).map(e=>/* @__PURE__ */ Z(js,{entity:e,options:n,ownTeam:s},e))}catch(e){throw L(`Nameplates`,e)}}var Os=new H,ks=new H,As={ray:new si,range:0,target:null};function js({entity:e,options:t,ownTeam:n}){try{let r=X(),i=Ss(e),a=Y(e,ae),o=Y(e,_t)?.object,s=Y(e,ot)?.height,c=Y(e,He),l=Cs(e),u=q(null),d=q(0),f=a!==void 0&&a.name!==``&&a.name===n,[p,m]=f?t.teamFade:t.fade,h=t.throughWalls===`always`||t.throughWalls===`team`&&f;if(xr(bt(`CharacterNameplate`,({camera:t},n)=>{let i=u.current,a=i?.children[0];if(i&&a){if(h){i.visible=!0;return}d.current-=n,!(d.current>0)&&(d.current=Ts,t.getWorldPosition(Os),a.getWorldPosition(ks),As.ray.origin.copy(Os),As.range=As.ray.direction.subVectors(ks,Os).length(),!(As.range===0||As.range>m)&&(As.ray.direction.divideScalar(As.range),As.target=e,i.visible=Be(r,As)===null))}})),!i||!o||t.show===`team`&&!f)return null;let g=s||c?.height||Oe.height,[_,v,y]=t.offset,b=t.component;return br(/* @__PURE__ */ Z(`group`,{name:`nameplate`,ref:u,children:/* @__PURE__ */ Z(xs,{offset:[_,g+v,y],units:us.Pixels,maxDistance:m,fade:Number.isFinite(m)?m-p:0,children:/* @__PURE__ */ Z(b,{entity:e,name:i,speaking:l,color:a?.color||t.color,teammate:f,size:t.size,background:t.background})})}),o)}catch(e){throw L(`CharacterNameplate`,e)}}Ds.displayName=`Nameplates`,js.displayName=`CharacterNameplate`;function Ms(e,t){let n=/* @__PURE__ */ new Set,r=!1,i=Rs(e,(i,a)=>{let o=i.getRenderTarget()!==null;r||n.has(o)||(n.add(o),i.compileAsync(e,a).then(()=>{r||(Ps(i),Fs(i,e),t())}))});return()=>{r=!0,i()}}async function Ns({renderer:e,scene:t,camera:n,target:r,change:i,undo:a}){i();let o=e.getRenderTarget(),s=[e.compileAsync(t,n)];r&&(e.setRenderTarget(r),s.push(e.compileAsync(t,n)),e.setRenderTarget(o)),a(),await Promise.all(s),Ps(e)}function Ps(e){for(let t of e.info.programs??[])t.getUniforms(),t.getAttributes()}function Fs(e,t){let n=/* @__PURE__ */ new Set,r=t=>{if(typeof t==`object`&&t&&!n.has(t)){if(n.add(t),t.isTexture){e.initTexture(t);return}if(Array.isArray(t))for(let e of t)r(e);else if(Is(t))for(let e of Object.values(t))r(e)}},i=e=>{for(let t of Object.values(e??{}))r(t?.value)};t.traverse(t=>{let n=t.material;if(n)for(let t of Array.isArray(n)?n:[n]){for(let e of Object.values(t))e?.isTexture&&r(e);i(t.uniforms),i(e.properties.get(t).uniforms)}})}function Is(e){let t=Object.getPrototypeOf(e);return t===Object.prototype||t===null}function Ls(e){let t=!1,n=Rs(e,(n,r)=>{t||n.compile(e,r)});return()=>{t=!0,n()}}function Rs(e,t){let n=e.onBeforeRender,r=(r,i,a,...o)=>{n.call(e,r,i,a,...o);try{t(r,a)}catch(e){console.warn(`The shader warm-up failed, so the first draw compiles the shaders instead. Check the custom materials' shaders:`,e)}};return e.onBeforeRender=r,()=>{e.onBeforeRender===r&&(e.onBeforeRender=n)}}function zs(e){if(!(`base`in e))return e;let{base:t,...n}=e,r={...t};for(let[e,t]of Object.entries(n)){if(t===void 0)continue;let n=Reflect.get(r,e);Reflect.set(r,e,Bs(t)&&Bs(n)?{...n,...Vs(t)}:t)}return r}var Bs=e=>typeof e==`object`&&!!e,Vs=e=>Object.fromEntries(Object.entries(e).filter(([,e])=>e!==void 0));function Hs(e,t){return Math.atan2(e.x,e.z)+2*Math.PI*t-3*Math.PI/2}var Us=ge(()=>import(`three/addons/loaders/EXRLoader.js`),`Await the EXR loader before reading it`);function Ws(e){return/\.exr$/i.test(e.split(/[?#]/)[0])}function Gs(e){let t=Ws(e)?U(Us.load()).EXRLoader:Gi;return Cr(t,e)}var Ks=4,qs=.55,Js=1.8,Ys={x:5.2,y:9.1},Xs=.55,Zs=.72;function Qs(e,t,n){let r=Math.floor(e),i=Math.floor(t),a=V.smootherstep(e-r,0,1),o=V.smootherstep(t-i,0,1),s=(e,t)=>ft(V.euclideanModulo(r+e,n),V.euclideanModulo(i+t,n));return V.lerp(V.lerp(s(0,0),s(1,0),a),V.lerp(s(0,1),s(1,1),a),o)}function $s(e,t,n){let r=0,i=1,a=0;for(let o=0;o<Ks;o++){let s=2**o;r+=Qs(e*s,t*s,n*s)*i,a+=i,i*=qs}return r/a}function ec(e){let t=Array.from({length:e**2},(t,n)=>ft(n%e,Math.floor(n/e))),n=Math.min(...t);return{low:n,span:Math.max(...t)-n}}function tc(e,t,n){let r=Qs(e+Ys.x,t+Ys.y,n),i=Qs(e-Ys.y,t-Ys.x,n);return $s(e+Js*(r-.5),t+Js*(i-.5),n)}function nc({textureSize:e,cells:t,coverage:n,clumping:r,clumpCells:i,softness:a}){let o=new Uint8Array(e*e*4),s=ec(i),c=Math.max(a,.001)/2;for(let a=0;a<e;a++)for(let l=0;l<e;l++){let u=l/e*t,d=a/e*t,f=tc(u,d,t),p=1-(n+r*(2*((Qs(u/t*i,d/t*i,i)-s.low)/s.span)-1)*2*n*(1-n)),m=V.smoothstep(f,p-c,p+c)*V.lerp(Xs,1,f),h=Math.round(V.lerp(1,Zs,f)*255),g=(a*e+l)*4;o.fill(h,g,g+3),o[g+3]=Math.round(m*255)}let l=new Pr(o,e,e,oi,_i);return l.wrapS=li,l.wrapT=li,l.magFilter=Gr,l.minFilter=Kr,l.generateMipmaps=!0,l.colorSpace=ui,l.needsUpdate=!0,l}var rc=1.1,ic=64;function ac({height:e,scale:t,fadeGone:n,fadeFull:r}){if(n<=0||n>=r)throw yt(/* @__PURE__ */ Error(`The clouds' fade.gone is ${n} and fade.full is ${r}: set gone above 0 and below full, both in radians, such as the defaults of 8° and 35°.`),`SP0383`,void 0);let i=rc*e/Math.tan(n),a=new ii(i*2,i*2,ic,ic);a.rotateX(-Math.PI/2),a.translate(0,e,0);let o=a.attributes.position,s=new Float32Array(o.count*2),c=new Float32Array(o.count*4).fill(1);for(let i=0;i<o.count;i++){let a=o.getX(i),l=o.getZ(i);s[i*2]=a/t,s[i*2+1]=l/t,c[i*4+3]=V.smoothstep(Math.atan2(e,Math.hypot(a,l)),n,r)}return a.setAttribute(`uv`,new Ar(s,2)),a.setAttribute(`color`,new Ar(c,4)),a}var oc=/* @__PURE__ */ new Map;function sc(e){let{textureSize:t,cells:n,coverage:r,clumping:i,clumpCells:a,softness:o}=e,s=[t,n,r,i,a,o].join(),c=oc.get(s);return c===void 0&&(c=nc(e),oc.set(s,c)),c.clone()}function cc({textureSize:e,cells:t,coverage:n,clumping:r,clumpCells:i,softness:a,height:o,scale:s,fadeGone:c,fadeFull:l,opacity:u,renderOrder:d,name:f,ref:p,color:m=I.cloudNight,offset:h}){try{let g=K(()=>sc({textureSize:e,cells:t,coverage:n,clumping:r,clumpCells:i,softness:a}),[e,t,n,r,i,a]),_=K(()=>ac({height:o,scale:s,fadeGone:c,fadeFull:l}),[o,s,c,l]);W(()=>()=>g.dispose(),[g]),W(()=>()=>_.dispose(),[_]);let[v,y]=h??[];return G(()=>{v!==void 0&&y!==void 0&&g.offset.set(v,y)},[g,v,y]),/* @__PURE__ */ Z(`mesh`,{name:f,geometry:_,renderOrder:d,frustumCulled:!1,children:/* @__PURE__ */ Z(`meshBasicMaterial`,{ref:p,color:m,map:g,vertexColors:!0,transparent:!0,opacity:u,depthWrite:!1,side:Dr,fog:!1})})}catch(e){throw L(`SkyClouds`,e)}}cc.displayName=`SkyClouds`;var lc=400;function uc({color:e,strength:t,stops:n,colors:r,renderOrder:i,name:a,ref:o}){try{return/* @__PURE__ */ Q(`mesh`,{name:a,renderOrder:i,frustumCulled:!1,children:[/* @__PURE__ */ Z(`sphereGeometry`,{args:[lc,16,24,0,Math.PI*2,0,Math.PI/2]}),/* @__PURE__ */ Z(`meshBasicMaterial`,{ref:o,color:e,transparent:!0,opacity:t,depthWrite:!1,side:Dr,fog:!1,children:/* @__PURE__ */ Z(Ii,{attach:`alphaMap`,colorSpace:ti,stops:n,colors:r})})]})}catch(e){throw L(`SkyDome`,e)}}uc.displayName=`SkyDome`;function dc({clouds:e,horizonBand:t,tintStrength:n,bandColor:r,bandStrength:i,cloudColor:a,cloudOffset:o,tintRef:s,bandRef:c,cloudRef:l}){try{return/* @__PURE__ */ Q(Ui,{children:[/* @__PURE__ */ Z(uc,{ref:s,color:I.skyTint,strength:n,stops:[0,1],colors:[I.maskFull,I.maskEmpty],...Ye.tint}),e.decks.map((t,n)=>/* @__PURE__ */ Z(cc,{ref:l?.(n),textureSize:e.textureSize,cells:t.cells,coverage:t.coverage,clumping:e.clumping,clumpCells:e.clumpCells,softness:e.softness,scale:e.scale,fadeGone:e.fade.gone,fadeFull:e.fade.full,height:t.height,opacity:t.opacity,renderOrder:t.renderOrder,name:t.name,color:a,offset:o},t.name)),/* @__PURE__ */ Z(uc,{ref:c,color:r,strength:i,stops:[1-t.span,1],colors:[I.maskEmpty,I.maskFull],...Ye.band})]})}catch(e){throw L(`SkyLayers`,e)}}dc.displayName=`SkyLayers`;var fc=256,pc=1e3,mc=450,hc=`gl_FragColor = vec4( retColor, 1.0 );`,gc=`gl_FragColor = vec4( min( retColor, vec3( ${20 .toFixed(1)} ) ), 1.0 );`;function _c(e){if(!e.includes(hc))throw yt(/* @__PURE__ */ Error(`The sky's bake cannot find "${hc}" in three-stdlib's sky shader, which 2.36.1 ends on: match the bake's clip in SkyBake.tsx to the installed three-stdlib.`),`SP0382`,void 0);return e.replace(hc,gc)}var vc=/* @__PURE__ */ new Set([`speed`,`drift`]);function yc({hour:e,settings:t}){try{let n=B(e=>e.gl),r=B(e=>e.scene),[i]=J(()=>new di),a=K(()=>{let e=Ki.material.clone();return e.fragmentShader=_c(e.fragmentShader),e},[]);W(()=>()=>a.dispose(),[a]);let[o,s]=J(0);W(()=>{let e=n.domElement,t=()=>s(e=>e+1);return e.addEventListener(`webglcontextrestored`,t),()=>e.removeEventListener(`webglcontextrestored`,t)},[n]);let c=Ee(e,t),l=c.direction.toArray(),u=c.tintStrength,d=c.bandColor.clone(),f=t.horizonBand.peak*c.bandShare,p=c.cloudColor.clone(),{hourOffset:m}=t.clouds,h=new Mr(I.groundBounce).multiplyScalar(c.sunIntensity*Math.max(c.direction.y,0)/Math.PI),{turbidity:g,rayleigh:_,mieCoefficient:v,mieDirectionalG:y,distance:b}=t.sky,x=[e*m.x,e*m.y],ee=JSON.stringify([l,u,d,f,p,h,x,t.sky,t.clouds,t.horizonBand],(e,t)=>vc.has(e)?void 0:t);return G(()=>{let{uniforms:e}=a;e.sunPosition.value.fromArray(l),e.turbidity.value=g,e.rayleigh.value=_,e.mieCoefficient.value=v,e.mieDirectionalG.value=y}),G(()=>{let e=new ri(n),t=e.fromScene(i,0,.1,pc,{size:fc});e.dispose();let a=r.environment;return r.environment=t.texture,()=>{r.environment=a,t.dispose()}},[n,r,i,ee,o]),br(/* @__PURE__ */ Q(Ui,{children:[/* @__PURE__ */ Z(`mesh`,{name:`skyScattering`,material:a,scale:b,frustumCulled:!1,children:/* @__PURE__ */ Z(`boxGeometry`,{})}),/* @__PURE__ */ Z(dc,{clouds:t.clouds,horizonBand:t.horizonBand,tintStrength:u,bandColor:d,bandStrength:f,cloudColor:p,cloudOffset:x}),/* @__PURE__ */ Q(`mesh`,{name:`skyGround`,frustumCulled:!1,children:[/* @__PURE__ */ Z(`sphereGeometry`,{args:[mc,16,12,0,Math.PI*2,Math.PI/2,Math.PI/2]}),/* @__PURE__ */ Z(`meshBasicMaterial`,{color:h,side:Dr,fog:!1})]})]}),i)}catch(e){throw L(`SkyBake`,e)}}yc.displayName=`SkyBake`;function bc(e,t){let n=B(e=>e.get),[r,i]=J(t);return W(()=>{let a=e.current;if(t===r)return;let{gl:o,scene:s,camera:c}=n();if(!a||It(o,Ft.ProgramWarmUp)||!o.getContext().getExtension(`KHR_parallel_shader_compile`)){i(t);return}let l=!1,u=()=>{l||i(t)};return Ns({renderer:o,scene:s,camera:c,target:Yo(o)?.composer.inputBuffer,change:()=>a.castShadow=t,undo:()=>a.castShadow=r}).then(u,u),()=>{l=!0}},[e,t,r,n]),r}function xc({scattering:e,clouds:t,horizonBand:n,shadowMapSize:r=P.shadow.mapSize,hour:i,clock:a,look:o,focus:s,shadowBox:c,sky:l,sun:u=!0,fog:d}){try{let f=l||void 0,p=X(),{normalBias:m,radius:h}=P.shadow,g=c?.halfWidth??P.shadow.halfWidth,_=c?.depth??P.shadow.depth,v={...P.clouds,...t},y={...P.horizonBand,...n},b={...P,clouds:v,horizonBand:y},[x]=J(()=>new ni),ee=q(null),S=q(null),C=bc(S,r>0),te=Hn(Ft.Sky),re=Hn(Ft.SkyBake),w=q(r);r>0&&(w.current=r);let T=q(null),E=q(null),ie=q(null),D=q([]),O=q(0),k=q(null),ae=Ai(e=>{if(!e){k.current=null;return}let t=e.material,n=t instanceof fi?t.uniforms.sunPosition.value:void 0;if(!(n instanceof H))throw yt(/* @__PURE__ */ Error(`The sky has no sun position to write`),`SP0381`,void 0);k.current=n},[]),A=B(e=>e.scene),j=o!==void 0,M=d===void 0,N=K(()=>M&&o?.fog?new Br(o.fog.color,o.fog.near,o.fog.far):void 0,[o?.fog,M]),oe=M?N:d||void 0,se=K(()=>N&&N.color.clone(),[N]),ce=K(()=>o&&Cc(Ee(o.hour),o),[o]),le=K(()=>o&&Ee(o.hour).skyIntensity,[o]),ue=o?.environment.image||void 0,de=j&&!ue;G(()=>{if(!j)return;let e=A.environmentIntensity,t=A.environmentRotation.clone();return()=>{A.environmentIntensity=e,A.environmentRotation.copy(t)}},[A,j]),G(()=>{de&&A.environmentRotation.set(0,0,0)},[A,de]),G(()=>{S.current?.shadow.camera.updateProjectionMatrix()},[g,_]);let fe=f!==void 0;return G(()=>{if(!fe)return;let e=A.backgroundRotation.clone();return()=>{A.backgroundRotation.copy(e)}},[A,fe]),xr(bt(`DaylightRig`,(e,t)=>{let{gl:n}=e;ee.current&&(s?ee.current.position.copy(s):ne(p,ee.current));let r=a?.get(ze)?.hour,c=i??r??o?.hour??P.dayCycle.startHour,l=Ee(c,b);if(S.current){let e=l.moonIntensity>0;S.current.position.copy(e?l.moonDirection:l.direction),S.current.intensity=(e?l.moonIntensity:l.sunIntensity)*(o?.sun??1),S.current.color.set(e?I.moon:I.sun)}T.current&&(T.current.intensity=l.skyIntensity*(o?.fill??1)),o&&le&&(A.environmentIntensity=o.environment.intensity*l.skyIntensity/le,N&&se&&ce&&N.color.copy(se).multiplyScalar(Math.min(1,Cc(l,o)/ce)),ue&&A.environmentRotation.set(0,Hs(l.direction,ue.sunU),0)),f&&A.backgroundRotation.set(0,Hs(l.direction,f.sunU),0),k.current?.copy(l.direction),E.current&&(E.current.opacity=l.tintStrength),ie.current&&(ie.current.color.copy(l.bandColor),ie.current.opacity=y.peak*l.bandShare),O.current+=so(e,t)*v.speed;for(let e of D.current)e&&(e.color.copy(l.cloudColor),e.map?.offset.set(c*v.hourOffset.x+O.current*v.drift.x,c*v.hourOffset.y+O.current*v.drift.y));n.toneMappingExposure=l.exposure*(o?.exposure??1)})),/* @__PURE__ */ Q(Ui,{children:[/* @__PURE__ */ Z(`hemisphereLight`,{ref:T,args:[I.sky,I.groundBounce,P.skyIntensity]}),/* @__PURE__ */ Q(`group`,{ref:ee,children:[u&&/* @__PURE__ */ Z(`directionalLight`,{ref:S,color:I.sun,target:x,castShadow:C,"shadow-camera-left":-g,"shadow-camera-right":g,"shadow-camera-top":g,"shadow-camera-bottom":-g,"shadow-camera-near":-_,"shadow-camera-far":_,"shadow-mapSize":[w.current,w.current],"shadow-normalBias":m,"shadow-radius":h}),/* @__PURE__ */ Z(`primitive`,{object:x}),l===void 0&&/* @__PURE__ */ Z(dc,{clouds:v,horizonBand:y,tintStrength:P.tintStrength,bandColor:I.sun,bandStrength:y.peak,tintRef:E,bandRef:ie,cloudRef:e=>t=>{D.current[e]=t}})]}),f&&/* @__PURE__ */ Z(Oi,{fallback:null,children:/* @__PURE__ */ Z(Sc,{file:f.file})}),l===void 0&&te&&/* @__PURE__ */ Z(Li,{ref:ae,...P.sky,...e}),ue&&/* @__PURE__ */ Z(Oi,{fallback:null,children:/* @__PURE__ */ Z(wc,{file:ue.file})}),o&&!ue&&re&&/* @__PURE__ */ Z(yc,{hour:o.hour,settings:{...b,sky:{...P.sky,...e}}}),oe&&/* @__PURE__ */ Z(Tc,{fog:oe})]})}catch(e){throw L(`DaylightRig`,e)}}function Sc({file:e}){try{let t=Cr(gi,e),n=B(e=>e.scene);return G(()=>{t.mapping=Lr,t.colorSpace=ui;let e=n.background;return n.background=t,()=>{n.background=e}},[n,t]),null}catch(e){throw L(`LookBackgroundView`,e)}}var Cc=(e,t)=>e.sunIntensity*t.sun+e.skyIntensity*t.fill;function wc({file:e}){try{let t=Gs(e),n=B(e=>e.scene),r=K(()=>{let e=t.image,n=e.data.slice(),r=n instanceof Uint16Array?Fr.toHalfFloat(20):20;for(let e=0;e<n.length;e++)n[e]=Math.min(n[e],r);let i=t.clone();return i.source=new mi({...e,data:n}),i.mapping=Lr,i.colorSpace=qr,i.needsUpdate=!0,i},[t]);return G(()=>{let e=n.environment;return n.environment=r,()=>{n.environment=e,r.dispose()}},[n,r]),null}catch(e){throw L(`LookSky`,e)}}function Tc({fog:e}){try{let t=B(e=>e.scene);return G(()=>{let n=t.fog;return t.fog=e,()=>{t.fog=n}},[t,e]),null}catch(e){throw L(`LookFogView`,e)}}xc.displayName=`DaylightRig`,Sc.displayName=`LookBackgroundView`,wc.displayName=`LookSky`,Tc.displayName=`LookFogView`;var Ec=/* @__PURE__ */ new WeakMap;function Dc(e){let t=Ec.get(e);return t||(t={hue:0,saturation:0,brightness:0,contrast:0,tint:new Mr(1,1,1)},Ec.set(e,t)),t}function Oc(e,t){e.hue=t.hue,e.saturation=t.saturation,e.brightness=t.brightness,e.contrast=t.contrast,e.tint.set(t.tint??16777215)}function kc({look:t,ref:n}){try{let{ambientOcclusion:r,bloom:i,grading:o,vignette:s}=t,c=zi(Jt).some(e=>!e.get(Jt)?.fromLook),l=d();zo(c||l?[]:[e.Grading,...i===!1?[]:[e.Bloom],...r===!1?[]:[e.Occlusion]]);let u=a(e=>({grading:e.grading,bloom:e.bloom,occlusion:e.occlusion})),f=u.grading||u.bloom&&i!==!1||u.occlusion&&r!==!1,p=q(!1);return W(()=>{c&&!p.current&&(p.current=!0,console.warn(`The look mounts no post-processing: the scene holds its own <PostProcessing>. Pass postProcessing: false to the look to silence this.`))},[c]),c||!f?null:/* @__PURE__ */ Q(Uo,{ref:n,fromLook:!0,children:[r&&/* @__PURE__ */ Z(es,{...r}),i&&/* @__PURE__ */ Z(Qo,{...i}),u.grading&&/* @__PURE__ */ Z(Mc,{grading:o}),u.grading&&s&&/* @__PURE__ */ Z(ns,{...s})]})}catch(e){throw L(`LookPostProcessing`,e)}}function Ac(){return Dc(X())}var jc=.5;function Mc({grading:e}){try{let t=U(Ho.load()),n=Ac();G(()=>Oc(n,e),[n,e]);let r=q(null),i=q(null),a=q(null),o=q(e.hue);return xr(bt(`Grading`,()=>{r.current?.tint.copy(n.tint);let e=i.current;e&&(n.hue!==o.current&&(e.hue=n.hue,o.current=n.hue),e.saturation=n.saturation);let t=a.current;t&&(t.brightness=n.brightness,t.contrast=n.contrast)}),jc),/* @__PURE__ */ Q(Ui,{children:[/* @__PURE__ */ Z(t.Tint,{ref:r}),/* @__PURE__ */ Z(t.HueSaturation,{ref:i,hue:e.hue,saturation:e.saturation}),/* @__PURE__ */ Z(t.BrightnessContrast,{ref:a,brightness:e.brightness,contrast:e.contrast})]})}catch(e){throw L(`Grading`,e)}}kc.displayName=`LookPostProcessing`,Mc.displayName=`Grading`;function Nc({look:e,...t}){try{let n=l(),r=K(()=>e&&zs(e),[e]);return n?null:/* @__PURE__ */ Q(Ui,{children:[/* @__PURE__ */ Z(xc,{look:r,...t}),r?.postProcessing&&/* @__PURE__ */ Z(kc,{look:r})]})}catch(e){throw L(`Lighting`,e)}}Nc.displayName=`Lighting`;var Pc=.5;function Fc(e){if(!e)return;for(let[t,n]of Object.entries(e))if(n!==void 0&&!(Number.isFinite(n)&&n>0))throw yt(/* @__PURE__ */ Error(`clipSpeeds gives the ${t} ${n}, where it takes a positive number of metres a second: the ground speed at which the clip plays at its own pace. Set clipSpeeds={{ ${t}: 1.2 }}, or leave the ${t} out for the engine to measure it off the model's feet.`),`SP0377`,void 0);let{walk:t,run:n}=e;if(t!==void 0&&n!==void 0&&t>=n)throw yt(/* @__PURE__ */ Error(`clipSpeeds gives the walk ${t} m/s and the run ${n} m/s, where the walk's speed is below the run's: the blend plays the walk at the slower speed. Swap them, or name the clips the other way round in \`clips\`.`),`SP0378`,void 0)}function Ic(e,t){let n=/* @__PURE__ */ new Map;for(let r of Object.values(z)){let i=t[r]??r,a=e.find(e=>e.name===i);a&&n.set(r,a)}return n}var Lc=/* @__PURE__ */ new WeakMap;function Rc(e){let t=1/0;for(let n of e.tracks)t=Math.min(t,n.times[0]);if(!(t>0&&t<e.duration))return e;let n=Lc.get(e);if(!n){n=e.clone();for(let e of n.tracks)e.shift(-t);n.duration=e.duration-t,Lc.set(e,n)}return n}var zc=k.speed/3;function Bc({entity:e,sounds:t}){try{let n=q(null),r=q(0);return W(()=>{for(let e of t)ta(e)},[t]),xr(bt(`FootstepsView`,()=>{let i=e.get(ht)?.position;if(!i)return;let a=n.current;if(a===null){n.current=i.clone();return}r.current+=Math.hypot(i.x-a.x,i.z-a.z),a.copy(i),!(r.current<zc)&&(r.current%=zc,pa(t[Math.floor(Math.random()*t.length)]))})),null}catch(e){throw L(`FootstepsView`,e)}}Bc.displayName=`FootstepsView`;var Vc=/(left|(^|[^a-z])l)[^a-z]*toe(base)?$|toe(base)?[^a-z]*(left|l)$/i,Hc=/(right|(^|[^a-z])r)[^a-z]*toe(base)?$|toe(base)?[^a-z]*(right|r)$/i,Uc=/(left|(^|[^a-z])l)[^a-z]*foot$|foot[^a-z]*(left|l)$/i,Wc=/(right|(^|[^a-z])r)[^a-z]*foot$|foot[^a-z]*(right|r)$/i,Gc=60,Kc=.15,qc=.01,Jc=new H,Yc=new H,Xc=/* @__PURE__ */ new WeakMap;function Zc(e,t){let n;return e.traverse(e=>{!n&&e instanceof Or&&t.test(e.name)&&(n=e)}),n}function Qc(e,t){let n=/* @__PURE__ */ new Set;for(let t=e;t;t=t.parent)n.add(t);for(let e=t;e;e=e.parent)if(n.has(e))return e}function $c(e,t){if(Xc.has(t))return Xc.get(t);let n=el(e,t);return Xc.set(t,n),n}function el(e,t){let n=Hi(e),r=[Zc(n,Vc),Zc(n,Hc)],[i,a]=r[0]&&r[1]?r:[Zc(n,Uc),Zc(n,Wc)],o=i&&a&&Qc(i,a);if(!i||!a||!o||t.duration<=0)return;let s=new wr(n),c=s.clipAction(t).play(),l=Math.max(2,Math.round(t.duration*Gc)),u=t.duration/l,d=[i,a].map(e=>({bone:e,ahead:new Float32Array(l),height:new Float32Array(l)}));for(let e=0;e<l;e++){c.time=e*u,s.update(0),n.updateMatrixWorld(!0),Yc.setFromMatrixPosition(o.matrixWorld);for(let{bone:t,ahead:n,height:r}of d)Jc.setFromMatrixPosition(t.matrixWorld),n[e]=Jc.z-Yc.z,r[e]=Jc.y}s.stopAllAction(),s.uncacheRoot(n);let f=0,p=0;for(let{ahead:e,height:t}of d){let n=Math.min(...t),r=n+Kc*(Math.max(...t)-n);for(let n=0;n<l;n++){let i=(n+1)%l;t[n]<=r&&t[i]<=r&&e[i]<e[n]&&(f+=e[n]-e[i],p+=u)}}let m=p===0?0:f/p;return m<qc?void 0:m}function tl(e,{walk:t,run:n}){let r=t??n;if(!r)return{idle:1,walk:0,run:0,cyclesPerSecond:0};if(e<r.metresPerSecond){let n=Math.max(0,e)/r.metresPerSecond;return{idle:1-n,walk:r===t?n:0,run:r===t?0:n,cyclesPerSecond:1/r.seconds}}if(t&&n&&e<n.metresPerSecond){let r=(e-t.metresPerSecond)/(n.metresPerSecond-t.metresPerSecond);return{idle:0,walk:1-r,run:r,cyclesPerSecond:e/V.lerp(t.metresPerSecond*t.seconds,n.metresPerSecond*n.seconds,r)}}let i=n??r;return{idle:0,walk:+(i===t),run:+(i===n),cyclesPerSecond:i.fixedPace?1/i.seconds:e/(i.metresPerSecond*i.seconds)}}function nl(e){return e===De.Jump||e===De.RunJump?`jump`:e===De.Run?`move`:`stand`}var rl=[z.Walk,z.Run],il={[z.Walk]:Pc,[z.Run]:1};function al(e){return e.get(Xe)?.speed??k.speed}function ol({url:e,gait:t,clipSpeeds:n}){let{walk:r,run:i}=t;if(!r||!i||r.metresPerSecond<i.metresPerSecond)return;let a=e=>Number(e.metresPerSecond.toFixed(2)),o=(e,t)=>`the ${e} at ${a(t)} m/s, ${n?.[e]===void 0?t.fixedPace?`a share of her top speed, since the engine cannot measure its stride`:`measured off its feet`:`from clipSpeeds`}`;throw yt(/* @__PURE__ */ Error(`The CharacterSpawn's model ${e} places ${o(z.Walk,r)}, and ${o(z.Run,i)}, where the blend needs the walk below the run: at ${a(r)} m/s she would snap from the walk to the run. Give clipSpeeds the ground speed each clip's feet keep, the walk's below the run's, such as clipSpeeds={{ walk: 1.2, run: 3.5 }}.`),`SP0375`,void 0)}var sl=.2,cl={},ll={legYaw:0,backward:!1,clip:null},ul=new Rr,dl=/* @__PURE__ */ new Set;function fl({entity:e,url:t,lift:n,material:r,clips:i,clipSpeeds:a,children:o}){try{let s=X(),{scene:c,animations:l}=Tn(t),{standing:u,measurements:d}=K(()=>{let e=new kr().setFromObject(c),t=e.max.y-e.min.y;return{standing:n??Se(c),measurements:{height:t,center:e.getCenter(new H).setY(t/2)}}},[n,c]);ur(e,d);let f=K(()=>Ic(l,i??cl),[l,i]);return W(()=>{let e=l.map(({name:e})=>e);for(let[n,r]of Object.entries(i??{})){let i=`${t}\n${r}`;e.includes(r)||dl.has(i)||rt(s,`The CharacterSpawn's clips name "${r}" for ${n}, which the model ${t} has no clip named. Its clips: ${e.join(`, `)||`none`}.`)&&dl.add(i)}},[l,i,t,s]),/* @__PURE__ */ Q(`group`,{ref:En(e),children:[f.size===0&&!r?/* @__PURE__ */ Z(On,{url:t,lift:u,entity:e}):/* @__PURE__ */ Z(pl,{entity:e,url:t,scene:c,animations:l,found:f,clipSpeeds:a,material:r,standing:u}),o?.({entity:e,height:d.height})]})}catch(e){throw L(`ModelBodyView`,e)}}function pl({entity:e,url:t,scene:n,animations:r,found:i,clipSpeeds:a,material:o,standing:s}){try{let c=X(),l=K(()=>{let e=Hi(n);return e.traverse(e=>{e instanceof Zr&&(e.castShadow=!0,e.receiveShadow=!0,e instanceof pi&&(e.frustumCulled=!1),o&&(e.material=Array.isArray(e.material)?e.material.map(e=>o(e)):o(e.material)))}),e},[o,n]);An(l);let u=K(()=>new wr(l),[l]),d=K(()=>new Map([...i].map(([e,t])=>[e,u.clipAction(e===z.Jump?t:Rc(t))])),[i,u]),f=K(()=>{let r={},i=al(e);for(let e of rl){let t=d.get(e);if(!t||e===z.Run&&t===d.get(z.Walk))continue;let o=t.getClip(),s=a?.[e]??$c(n,o);r[e]={seconds:o.duration,metresPerSecond:s??i*il[e],fixedPace:s===void 0}}return ol({url:t,gait:r,clipSpeeds:a}),r},[d,a,e,n,t]);W(()=>{for(let e of rl){let n=d.get(e);if(!n||!f[e]?.fixedPace)continue;let r=n.getClip().name,i=`${t}\n${r}\nstride`;dl.has(i)||rt(c,`The CharacterSpawn's model ${t} has a ${e} clip, "${r}", whose stride the engine cannot measure: it finds no left and right toe or foot bones, as Meshy, Mixamo and VRoid name them, or the clip moves neither foot back under the hips. The ${e} plays at its own pace and blends in at ${e===z.Walk?`half her top speed`:`her top speed`}. Give the ground speed its feet keep, in metres a second, such as clipSpeeds={{ ${e}: ${e===z.Walk?1.2:3.5} }}.`)&&dl.add(i)}},[d,f,t,c]);let p=K(()=>({mode:null,actions:null,starts:/* @__PURE__ */ new Map,weights:/* @__PURE__ */ new Map,elapsedSeconds:0,phase:0}),[u]),[m]=J(()=>Nn(wn(e.get(w)))),h=K(()=>Bn(wn(e.get(Ne))),[l,e]),g=K(()=>Cn(l),[l]),[_]=J(()=>({weight:0,legYaw:0,backward:!1,clipRotations:/* @__PURE__ */ new Map})),v=K(()=>new Map(r.map(e=>[e.name,e])),[r]);return W(()=>()=>{u.stopAllAction(),p.mode=null,p.actions=null,p.starts.clear(),p.weights.clear(),m.action=null,_.clipRotations.clear()},[_,l,p,u,m]),xr(bt(`PosedModel`,(n,i)=>{Vn(l),ar(_.clipRotations),xn(h);let a=nl(e.get(me)?.state??De.Idle),o=d.get(z.Jump);if(a!==p.mode||d!==p.actions){if(p.elapsedSeconds=p.weights.size===0?sl:0,p.starts=new Map(p.weights),d!==p.actions)for(let[e,t]of d){if(p.weights.has(t))continue;let n=e===z.Jump;t.setLoop(n?Jr:Yr,n?1:1/0),t.clampWhenFinished=n,t.reset().play(),t.paused=e===z.Walk||e===z.Run,p.starts.set(t,0),p.weights.set(t,0)}a===`jump`&&o?.reset().play(),p.mode=a,p.actions=d}p.elapsedSeconds+=i;let s=Math.min(p.elapsedSeconds/sl,1),b=e.get(mt),x=al(e);for(let e of rl){let t=f[e];t?.fixedPace&&(t.metresPerSecond=x*il[e])}let ee=tl(a===`move`&&b?y(b):0,f),S=e.get(Ie)?.active===!0,C=e.get(ht);ll.backward=_.backward,S&&b&&C?fr(ul.setFromQuaternion(C.rotation,`YXZ`).y,b,ll):(ll.legYaw=0,ll.backward=!1),_.backward=ll.backward,cr(_,S,ll,i),p.phase=V.euclideanModulo(p.phase+i*ee.cyclesPerSecond*(_.backward?-1:1),1);for(let e of rl){let t=d.get(e);t&&(t.time=p.phase*t.getClip().duration)}let te=a===`jump`&&o!==void 0,ne=null,re=0;for(let[e,t]of p.starts){let n=0,r=!1;for(let[t,i]of d)i===e&&(r=!0,t===z.Jump?n+=+!!te:te||(n+=ee[t]));let i=t+(n-t)*s;p.weights.set(e,i),i>re&&(re=i,ne=e),s===1&&!r&&(e.stop(),p.starts.delete(e),p.weights.delete(e))}e.isAlive()&&zn({world:c,entity:e,url:t,animations:r,oneShot:m,mixer:u,loop:ne,deltaSeconds:i});let w=1-(m.action?m.weight:0);for(let[e,t]of p.weights)e.setEffectiveWeight(t*w);u.update(i),e.isAlive()&&(bn({world:c,entity:e,layer:h,root:l,spine:g,clips:v,deltaSeconds:i}),g&&or(g,_.legYaw,_.clipRotations),Dn({entity:e,root:l,seconds:i}))})),/* @__PURE__ */ Z(`primitive`,{object:l,dispose:null,"position-y":s,"rotation-y":Re})}catch(e){throw L(`PosedModel`,e)}}fl.displayName=`ModelBodyView`,pl.displayName=`PosedModel`;function ml(e){return Object.fromEntries(Object.entries(e).filter(([e,t])=>typeof t!=`function`&&(e!==`avatar`||typeof t==`string`)))}var hl={weapons:`weapons`,abilities:`abilities`,resources:`resources`,stats:`stats`,bagSlots:`inventory`};function gl(e,t){je(e,`characters`);for(let[n,r]of Object.entries(hl))t[n]!==void 0&&je(e,r)}function _l(e){try{let t={...e,...U(xa)},{avatar:n,model:r,clips:i,clipSpeeds:a,material:s,shape:c,color:u,position:d=[0,0,0],facing:h=0,health:y=g.schema,stats:x,radius:ee=Oe.radius,height:S=Oe.height,collisionMask:C=Oe.collisionMask,controller:te,footsteps:ne,marker:re=mr.Pulse,children:w,preset:E=_.Responsive,movement:ie,respawn:D={},nameplate:O=!0}=t;Ca(e);let k=X(),ae=U(Mn),j=l(),M=k.has(st),N=r===void 0?void 0:Ae(r);$e(D),Fc(a),gl(k,t);let oe=!j&&!M&&!k.has(nt),se=typeof n==`string`?oe?Bt(n):void 0:n,[ce,ue]=J(null),de=U(o);W(()=>{se!==void 0&&!j&&!M&&(Tn.preload([se.model],pr),Tn.preload(lr(),pr))},[se,j,M]);let fe=q({position:d,facing:h,health:y,stats:x,props:ml(t),respawn:D,scene:de?.scenes.getState().active,body:{radius:ee,height:S,collisionMask:C&&ct(C)},controller:T(te)}),pe=q({position:new H(...fe.current.position),facing:fe.current.facing,health:fe.current.health,stats:fe.current.stats,movement:b(p[E],ie),body:fe.current.body,controller:fe.current.controller,avatar:typeof n==`string`?n:``,respawn:fe.current.respawn,props:fe.current.props});W(()=>{if(M)return;if(k.has(nt))return k.add(Qe(pe.current)),()=>k.remove(Qe);let{body:e,controller:t,stats:n,props:r,respawn:i,scene:a,...o}=fe.current,s=new H(...o.position),c=A(k,{...o,position:s},r);v(c,{respawn:i,spawn:s}),n&&m(c,n),c.add(He(e),pt),c.set(ye,t),c.add(it({context:gt.Client})),ae!==null&&c.add(Le({ground:ae})),a&&c.add(he({name:a}));let l=ir(k);try{l?.attachCharacter(c)}catch(e){throw f(k,c),e}ue(c);let u=k.onRemove(le,e=>{e===c&&ue(null)});return()=>{if(u(),c.isAlive())try{l?.detachCharacter(c)}finally{f(k,c)}}},[k,M,ae]);let P=Bi(le,it,vt)??null,me=M?P:ce,ge=Un({id:me&&String(me.id()),through:_l,kind:Qt.Entity,entityId:me?ut(k,me):void 0}),_e=/* @__PURE__ */ Q(Ui,{children:[me&&/* @__PURE__ */ Z(Wn,{value:ge,children:/* @__PURE__ */ Z(vl,{character:me,settings:b(p[E],ie),owned:!M},me.id())}),!j&&!k.has(nt)&&/* @__PURE__ */ Z(Ds,{setting:O})]});return ce===null||j?_e:/* @__PURE__ */ Q(Ui,{children:[_e,/* @__PURE__ */ Z(Oi,{fallback:/* @__PURE__ */ Z(Sn,{name:`the character`}),children:se===void 0?N===void 0?/* @__PURE__ */ Z(sr,{entity:ce,shape:c,color:u,children:w}):/* @__PURE__ */ Z(fl,{entity:ce,url:N,lift:r===void 0?void 0:Ve(r),clips:i,clipSpeeds:a,material:s??(r===void 0?void 0:ve(r)),children:w}):/* @__PURE__ */ Z(dr,{entity:ce,body:se,children:w})}),ne?.length?/* @__PURE__ */ Z(Bc,{entity:ce,sounds:ne}):null,/* @__PURE__ */ Z(hr,{entity:ce,shape:re})]})}catch(e){throw L(`CharacterSpawn`,e)}}function vl({character:e,settings:t,owned:n}){try{let[r]=J(()=>({...e.get(Xe)})),i=At(e=>e.edits),a=q(void 0);W(()=>{n&&e.isAlive()&&!Ni(a.current,t)&&(e.set(Xe,t),a.current=t)},[e,t,n]);let{wiki:o,description:s,ranges:c}=O;return Un({id:`${e.id()}:movement`,name:`Movement`,kind:Qt.Behaviour,props:n?t:r,wiki:o,description:s,ranges:c,entity:e,traits:[Xe],propName:`movement`,readOnlyReason:n||i?void 0:`The room keeps its settings`}),null}catch(e){throw L(`MovementLeaf`,e)}}_l.displayName=`CharacterSpawn`,vl.displayName=`MovementLeaf`;var yl=220,bl=2;function xl(e){let t=Ei(`grass`),n=Math.round(36*yl*bl*e),r=new Float32Array(n*3);for(let e=0;e<n;e++)r.set([t()*6,t()*6,e/n],e*3);return r}function Sl({distance:e,density:t,draw:n,blades:r}){let i=1-V.smoothstep(e,n.near,n.far);return Math.min(r,Math.ceil(i*Math.min(t,bl)/bl*r))}function Cl(e){let t=Math.round(e.size/e.cell),n=t+1,r=Math.ceil(e.size/6),i=(e,t,n)=>{let r=new Pr(e,t,t,n,e instanceof Float32Array?zr:_i);return r.needsUpdate=!0,r};return{cells:t,cell:e.cell,patches:r,heights:i(new Float32Array(n*n),n,ci),cover:i(new Float32Array(t*t*4),t,oi),colours:i(new Uint8Array(t*t*4),t,oi),patchDensity:new Float32Array(r*r),patchHeights:new Float32Array(r*r*2)}}function wl(e,t,n,r){let i=e=>Math.max(Math.floor(e/6),0),a=t=>Math.min(Math.ceil(t/6)-1,e-1);for(let o=i(t[0]);o<=a(t[1]);o++)for(let t=i(n[0]);t<=a(n[1]);t++)r(o*e+t)}function Tl(e,{base:t,offsets:n},r){let i=e.heights.image.data,{cell:a,patches:o,patchHeights:s}=e,c=e.cells+1,l=e=>{let r=t[e]+(Number.isNaN(n[e])?0:n[e]);i[e]=r;let l=Math.floor(e/c),u=e%c;wl(o,[(l-1)*a,(l+1)*a],[(u-1)*a,(u+1)*a],e=>{s[e*2]<=r||(s[e*2]=r),s[e*2+1]>=r||(s[e*2+1]=r)})};if(r===void 0){s.fill(NaN);for(let e=0;e<i.length;e++)l(e)}else for(let e of r)l(e);e.heights.needsUpdate=!0}var El=-1e4;function Dl(e,t,{indices:n,now:r}){let i=e.cover.image.data,a=e.colours.image.data,{cells:o,cell:s,patches:c,patchDensity:l}=e;n===void 0&&l.fill(0);let u=e=>{let n=t.density[e],u=i[e*4+1];i[e*4]=t.share[e],i[e*4+1]=n,i[e*4+2]=t.height[e],r===null?i[e*4+3]=El:u<.1&&n>=.1&&(i[e*4+3]=r);for(let n=0;n<3;n++)a[e*4+n]=Math.round(V.clamp(t.colour[e*3+n],0,1)*255);a[e*4+3]=Math.round(V.clamp(t.sway[e],0,1)*255);let d=Math.floor(e/o),f=e%o;wl(c,[(d-.5)*s,(d+1.5)*s],[(f-.5)*s,(f+1.5)*s],e=>{l[e]=Math.max(l[e],n)})};if(n===void 0)for(let e=0;e<o*o;e++)u(e);else for(let e of n)u(e);e.cover.needsUpdate=!0,e.colours.needsUpdate=!0}function Ol(e){e.heights.dispose(),e.cover.dispose(),e.colours.dispose()}var kl=.001;function Al(e){let t=e/400;return t>=1?1:t<=0?kl:Math.max(kl,1-Math.exp(-jl*t)*Math.cos(3*Math.PI*t))}var jl=-3*Math.log(.2),Ml=Math.max(...Array.from({length:1001},(e,t)=>Al(t/1e3*400)));function Nl(e){let t=Object.entries(e?.uniforms??{}).map(([e,t])=>`uniform ${ao(t)} ${e};`).join(`
81
+ `);return`
82
+ attribute vec2 blade;
83
+ attribute vec3 pattern;
84
+ // Seconds on the blades' own clock, which a pop's start is written in.
85
+ uniform float uTime;
86
+ // Seconds on the effects' clock, which the wind blows on: the devtools'
87
+ // pause holds it, and their speed leaves it alone.
88
+ uniform float uGrassWind;
89
+ // 1 where the blades sway, as the quality level or the player's Grass sway
90
+ // setting has it, and 0 where they stand still.
91
+ uniform float uGrassSway;
92
+ // Metres from the camera where the blades start to thin, and where the last goes.
93
+ uniform vec2 uGrassFade;
94
+ // Metres of a blade's width at its root for each metre of its height.
95
+ uniform float uGrassWidth;
96
+ // The cells along a side, a cell's metres, and half the map's side.
97
+ uniform vec3 uGrassGrid;
98
+ // The ground's height at each point of the grid.
99
+ uniform sampler2D uGrassHeights;
100
+ // Each cell's share that grows grass, its density, its blades' height and
101
+ // when its pop started, in seconds of uTime.
102
+ uniform sampler2D uGrassCover;
103
+ // Each cell's colour, and in alpha the share of its cover that sways.
104
+ uniform sampler2D uGrassColours;
105
+ // Where the characters stand: x, z, the radius they press, and how hard, 0 to 1.
106
+ uniform vec4 uGrassTrample[4];
107
+ varying vec3 vGrassColour;
108
+
109
+ // A hash with no sine: exact at any coordinate on the map, and cheap.
110
+ float grassHash(vec2 point) {
111
+ vec3 mixed = fract(vec3(point.xyx) * 0.1031);
112
+ mixed += dot(mixed, mixed.yzx + 33.33);
113
+ return fract((mixed.x + mixed.y) * mixed.z);
114
+ }
115
+
116
+ float grassNoise(vec2 point) {
117
+ vec2 cell = floor(point);
118
+ vec2 inside = fract(point);
119
+ vec2 blend = inside * inside * (3.0 - 2.0 * inside);
120
+ float a = grassHash(cell);
121
+ float b = grassHash(cell + vec2(1.0, 0.0));
122
+ float c = grassHash(cell + vec2(0.0, 1.0));
123
+ float d = grassHash(cell + vec2(1.0, 1.0));
124
+ return mix(mix(a, b, blend.x), mix(c, d, blend.x), blend.y);
125
+ }
126
+
127
+ // Two octaves, the second turned off the first's grid; 0 to 1.
128
+ float grassFractal(vec2 point) {
129
+ vec2 turned = mat2(0.8, -0.6, 0.6, 0.8) * point * 2.07 + 13.1;
130
+ return (grassNoise(point) + grassNoise(turned) * 0.5) / 1.5;
131
+ }
132
+
133
+ // The elastic ease the scatter grows in with, 0 before its start.
134
+ float popGrass(float elapsed) {
135
+ float progress = elapsed / ${(400/1e3).toFixed(3)};
136
+ if (progress >= 1.0) return 1.0;
137
+ if (progress <= 0.0) return 0.0;
138
+ return pow(2.0, -10.0 * progress) * sin((progress * 10.0 - 0.75) * 2.0943951) + 1.0;
139
+ }
140
+ ${t}
141
+ ${e?.functions??``}
142
+ `}function Pl(e){return`
143
+ vec3 bladeRoot = vec3(modelMatrix[3].x + pattern.x, 0.0, modelMatrix[3].z + pattern.y);
144
+ float bladeRank = pattern.z;
145
+
146
+ // The ground under the root, split as the ground's mesh splits each cell,
147
+ // from its far-left to its near-right corner.
148
+ int lastPoint = int(uGrassGrid.x);
149
+ vec2 point = (bladeRoot.xz + uGrassGrid.z) / uGrassGrid.y;
150
+ ivec2 corner = clamp(ivec2(floor(point)), ivec2(0), ivec2(lastPoint - 1));
151
+ vec2 inside = clamp(point - vec2(corner), 0.0, 1.0);
152
+ float nearLeft = texelFetch(uGrassHeights, corner, 0).r;
153
+ float nearRight = texelFetch(uGrassHeights, corner + ivec2(1, 0), 0).r;
154
+ float farLeft = texelFetch(uGrassHeights, corner + ivec2(0, 1), 0).r;
155
+ float farRight = texelFetch(uGrassHeights, corner + ivec2(1, 1), 0).r;
156
+ vec2 rise;
157
+ if (inside.x + inside.y <= 1.0) {
158
+ rise = vec2(nearRight - nearLeft, farLeft - nearLeft);
159
+ bladeRoot.y = nearLeft + dot(inside, rise);
160
+ } else {
161
+ rise = vec2(farRight - farLeft, farRight - nearRight);
162
+ bladeRoot.y = farRight - dot(1.0 - inside, rise);
163
+ }
164
+ float groundUp = inversesqrt(1.0 + dot(rise, rise) / (uGrassGrid.y * uGrassGrid.y));
165
+
166
+ // The cover, weighed across the four cells around the root from one
167
+ // cell's middle to the next's, as the ground weighs its materials.
168
+ vec2 cellAt = (bladeRoot.xz + uGrassGrid.z) / uGrassGrid.y - 0.5;
169
+ vec2 cellInside = fract(cellAt);
170
+ ivec2 cellCorner = ivec2(floor(cellAt));
171
+ ivec2 lastCell = ivec2(lastPoint - 1);
172
+ ivec2 cell00 = clamp(cellCorner, ivec2(0), lastCell);
173
+ ivec2 cell10 = clamp(cellCorner + ivec2(1, 0), ivec2(0), lastCell);
174
+ ivec2 cell01 = clamp(cellCorner + ivec2(0, 1), ivec2(0), lastCell);
175
+ ivec2 cell11 = clamp(cellCorner + ivec2(1, 1), ivec2(0), lastCell);
176
+ vec4 cover00 = texelFetch(uGrassCover, cell00, 0);
177
+ vec4 cover10 = texelFetch(uGrassCover, cell10, 0);
178
+ vec4 cover01 = texelFetch(uGrassCover, cell01, 0);
179
+ vec4 cover11 = texelFetch(uGrassCover, cell11, 0);
180
+ vec4 cover = mix(mix(cover00, cover10, cellInside.x), mix(cover01, cover11, cellInside.x), cellInside.y);
181
+ vec4 colourAndSway = mix(
182
+ mix(texelFetch(uGrassColours, cell00, 0), texelFetch(uGrassColours, cell10, 0), cellInside.x),
183
+ mix(texelFetch(uGrassColours, cell01, 0), texelFetch(uGrassColours, cell11, 0), cellInside.x),
184
+ cellInside.y
185
+ );
186
+ vec3 bladeColour = colourAndSway.rgb;
187
+ // The pop is the root's own cell's, so a cell's blades rise together.
188
+ float popStart = cellInside.x < 0.5
189
+ ? (cellInside.y < 0.5 ? cover00.w : cover01.w)
190
+ : (cellInside.y < 0.5 ? cover10.w : cover11.w);
191
+ float coverShare = cover.x;
192
+ float onMap = step(abs(bladeRoot.x), uGrassGrid.z) * step(abs(bladeRoot.z), uGrassGrid.z);
193
+
194
+ float bladeSeed = grassHash(bladeRoot.xz * 17.13);
195
+ float bladeSize = grassHash(bladeRoot.xz * 9.71 + 3.1);
196
+ float bladeLean = grassHash(bladeRoot.xz * 5.3 + 7.7);
197
+
198
+ // Thinned with distance and by the cover's density: the pattern holds
199
+ // twice a density of 1, so a blade ranked past the share kept here shrinks
200
+ // away rather than popping. The distance is the eye's, so a camera high
201
+ // over the map draws none.
202
+ float bladeDistance = distance(bladeRoot, cameraPosition);
203
+ float keptShare = (1.0 - smoothstep(uGrassFade.x, uGrassFade.y, bladeDistance)) * cover.y * 0.5;
204
+ float kept = 1.0 - smoothstep(keptShare - 0.03, keptShare, bladeRank);
205
+ // Low right under the camera, where a blade would fill the screen.
206
+ kept *= mix(0.35, 1.0, smoothstep(1.5, 4.5, length(bladeRoot.xz - cameraPosition.xz)));
207
+
208
+ float tall = grassFractal(bladeRoot.xz * 0.35 + 11.0);
209
+ float bladeHeight = cover.z * mix(0.5, 1.3, tall) * (0.65 + bladeSize * 0.7);
210
+ ${e?.shape??``}
211
+ bladeHeight *= smoothstep(0.05, 0.6, coverShare) * kept * onMap
212
+ * max(popGrass(uTime - popStart - bladeSeed * ${(100/1e3).toFixed(3)}), 0.001);
213
+ // Far blades are wider, so a thinner field still covers the ground.
214
+ float bladeWidth = cover.z * uGrassWidth * (0.75 + bladeLean * 0.5)
215
+ * mix(1.0, 2.4, smoothstep(uGrassFade.x, uGrassFade.y, bladeDistance));
216
+
217
+ // Bent low and pushed aside round a character.
218
+ float pressed = 0.0;
219
+ vec2 pushed = vec2(0.0);
220
+ for (int character = 0; character < 4; character++) {
221
+ vec4 trample = uGrassTrample[character];
222
+ vec2 away = bladeRoot.xz - trample.xy;
223
+ float press = (1.0 - smoothstep(trample.z * 0.6, trample.z, length(away))) * trample.w;
224
+ pressed = max(pressed, press);
225
+ pushed += normalize(away + 0.0001) * press;
226
+ }
227
+ bladeHeight *= 1.0 - pressed * 0.4;
228
+
229
+ float along = blade.y;
230
+ float yaw = bladeSeed * 6.2832;
231
+ vec2 facing = vec2(cos(yaw), sin(yaw));
232
+ vec2 across = vec2(-facing.y, facing.x);
233
+
234
+ vec2 bend = facing * (0.15 + bladeLean * 0.35) + pushed * 1.5;
235
+
236
+ // The wind: a slow sway along the map, gusts that roll across it, and a
237
+ // flutter of each blade's own. Skipped where the grass stands still.
238
+ float swayWeight = uGrassSway * colourAndSway.a;
239
+ if (swayWeight > 0.0) {
240
+ vec2 windDirection = normalize(vec2(1.0, 0.35));
241
+ float gust = grassNoise(bladeRoot.xz * 0.07 - windDirection * uGrassWind * 0.8);
242
+ float sway = sin(uGrassWind * 1.6 + dot(bladeRoot.xz, windDirection) * 0.55 + bladeSize * 2.0) * 0.3
243
+ + gust * 0.9;
244
+ float flutter = sin(uGrassWind * 5.1 + bladeLean * 6.2832) * 0.07;
245
+ bend += (windDirection * sway * 0.55 + across * flutter) * swayWeight;
246
+ }
247
+ float curve = along * along;
248
+
249
+ vec3 bladePosition = bladeRoot;
250
+ bladePosition.xz += across * blade.x * bladeWidth * (1.0 - along) + bend * curve * bladeHeight;
251
+ bladePosition.y += along * bladeHeight * (1.0 - 0.25 * curve * dot(bend, bend));
252
+
253
+ // Mostly up, so the field takes the light as the ground does, with the
254
+ // blade's own face and its curl across it.
255
+ vec3 objectNormal = normalize(
256
+ vec3(facing.x, 0.0, facing.y) * 0.35 + vec3(across.x, 0.0, across.y) * blade.x * 0.2
257
+ + vec3(0.0, 1.0, 0.0)
258
+ );
259
+
260
+ // Dark at the root, where the blades shade each other, to the cover's
261
+ // colour, lighter and warmer at the tip.
262
+ vec3 tipColour = bladeColour * vec3(1.3, 1.45, 1.1) + vec3(0.012, 0.012, 0.0) * bladeSize;
263
+ vGrassColour = mix(bladeColour * 0.3, tipColour, pow(along, 0.8));
264
+ `}var Fl=`
265
+ vec3 transformed = bladePosition - vec3(modelMatrix[3].x, 0.0, modelMatrix[3].z);
266
+ `,Il=`
267
+ varying vec3 vGrassColour;
268
+ `,Ll=.45,Rl=.15;function zl(e){return!e||e.isGrounded?1:Math.max(0,1-e.airSeconds/Rl)}var Bl=4,Vl=.03/.32,Hl=3.5,Ul=/* @__PURE__ */ new WeakMap;function Wl(e,t,n){Ul.get(e)?.cover(t,n)}function Gl(e,t,n){Ul.get(e)?.heights(t,n)}function Kl(){let e=[];for(let t=0;t<Bl;t++)e.push(-1,t/Bl,1,t/Bl);e.push(0,1);let t=[];for(let e=0;e<3;e++){let n=e*2;t.push(n,n+1,n+2,n+1,n+3,n+2)}return t.push(6,7,8),{blade:new Ar(new Float32Array(e),2),placeholder:new Ar(new Float32Array(e.length/2*3),3),index:new Ar(new Uint16Array(t),1)}}function ql(e){return{uTime:{value:0},uGrassWind:{value:0},uGrassSway:{value:0},uGrassFade:{value:new vi},uGrassWidth:{value:Vl},uGrassGrid:{value:new H},uGrassHeights:{value:e.heights},uGrassCover:{value:e.cover},uGrassColours:{value:e.colours},uGrassTrample:{value:[0,1,2,3].map(()=>new yi(1e4,1e4,1,0))}}}function Jl(e,t,n){let r=new $r({roughness:.75,metalness:0,side:Ir}),i=Nl(n),a=Pl(n);return r.onBeforeCompile=n=>{Object.assign(n.uniforms,e,t),n.vertexShader=n.vertexShader.replace(`#include <common>`,`#include <common>\n${i}`).replace(`#include <beginnormal_vertex>`,a).replace(`#include <begin_vertex>`,Fl),n.fragmentShader=n.fragmentShader.replace(`#include <common>`,`#include <common>\n${Il}`).replace(`#include <color_fragment>`,`#include <color_fragment>
269
+ diffuseColor.rgb = vGrassColour;`).replace(`#include <normal_fragment_begin>`,`#include <normal_fragment_begin>
270
+ normal = normalize(vNormal);`)},r.customProgramCacheKey=()=>i+a,r}function Yl(){let e=performance.now();return()=>(performance.now()-e)/1e3}function Xl({entity:e,shader:t}){try{let n=Y(e,Me),r=c(),i=Hn(Ft.Grass);return!n||r.share<=0||!i?null:/* @__PURE__ */ Z(Zl,{surface:n.surface,draw:r,shader:t})}catch(e){throw L(`GrassView`,e)}}function Zl({surface:e,draw:t,shader:n}){try{let r=X(),i=Mi(en,ln),[a]=J(Yl),{size:o,cell:s}=e,c=K(()=>Cl({size:o,cell:s}),[o,s]);W(()=>()=>Ol(c),[c]);let l=K(()=>ql(c),[c]),u=Object.keys(n?.uniforms??{}).join(` `),{material:d,own:f}=K(()=>{let e={};return{own:e,material:Jl(l,e,n)}},[l,n?.functions,n?.shape,u]);G(()=>{for(let[e,t]of Object.entries(n?.uniforms??{}))(f[e]??={value:t}).value=t}),W(()=>()=>d.dispose(),[d]);let p=q(null),m=q(null);G(()=>{Tl(c,{base:e.baseHeights,offsets:e.offsets});let t=gr(e);p.current=t;let{reducedMotion:n}=yn.getState(),r=m.current===c&&!(n??_n());Dl(c,t,{now:r?a():null}),m.current=c,l.uGrassGrid.value.set(c.cells,s,o/2)},[c,e,i,l,s,o,a]),W(()=>{let t=tr(e),n=sn(e.map),r=/* @__PURE__ */ new Map,i=e=>{let t=r.get(e);return t||([t]=fn([e],n),r.set(e,t)),t};return Ul.set(e,{cover:(n,r)=>{let o=p.current;if(!o)return;if(!n||!r){p.current=gr(e,t),Dl(c,p.current,{now:null});return}n.forEach((e,n)=>{let a=r[n],s=i(a.paint??t.names[t.ruled[e]]);_r(o,e,{base:s,overlay:a.overlay===null?s:i(a.overlay),blend:a.overlay===null?0:a.blend??0,multiplier:a.scatter?.tuft??1})});let{reducedMotion:s}=yn.getState();Dl(c,o,{indices:n,now:s??_n()?null:a()})},heights:(e,t)=>Tl(c,e,t)}),()=>{Ul.delete(e)}},[e,c,i,a]);let h=K(()=>{let e=new Ur(xl(t.share),3),n=Kl(),r=Math.ceil(2*t.far/6)+2,i=new Vr;return i.name=`grass`,{group:i,meshes:Array.from({length:r*r},()=>{let t=new Wr;t.setIndex(n.index),t.setAttribute(`position`,n.placeholder),t.setAttribute(`normal`,n.placeholder),t.setAttribute(`blade`,n.blade),t.setAttribute(`pattern`,e),t.instanceCount=0;let r=new hi;t.boundingSphere=r;let a=new Zr(t,d);return a.name=`grass patch`,a.receiveShadow=!0,a.visible=!1,a.raycast=()=>void 0,i.add(a),{mesh:a,geometry:t,bounds:r}}),blades:e.count}},[t.share,t.far,d]);W(()=>()=>{for(let{geometry:e}of h.meshes)e.dispose()},[h]);let[g]=J(()=>({distance:0,density:0,draw:t,blades:0}));return xr(bt(`GrassPatches`,(e,n)=>{let{camera:i}=e;l.uTime.value=a(),l.uGrassWind.value+=so(e,n),l.uGrassSway.value=+!!vn(yn.getState(),t),l.uGrassFade.value.set(t.near,t.far);let s=l.uGrassTrample.value,u=0;for(let e of r.query(le,ht)){let t=e.get(ht)?.position;t&&u!==s.length&&s[u++].set(t.x,t.z,Ll,zl(e.get(Pe)))}for(;u<s.length;u++)s[u].set(1e4,1e4,1,0);let{patches:d,patchDensity:f,patchHeights:p}=c,m=o/2,{x:_,y:v,z:y}=i.position,b=(e,t)=>Math.min(Math.max(Math.floor((e+t+m)/6),0),d-1);g.draw=t,g.blades=h.blades;let x=0;for(let e=b(y,-t.far);e<=b(y,t.far);e++)for(let n=b(_,-t.far);n<=b(_,t.far);n++){let t=e*d+n;if(f[t]<=0||x===h.meshes.length)continue;let r=n*6-m,i=e*6-m;g.distance=Math.hypot(Math.max(r-_,0,_-r-6),Math.max(i-y,0,y-i-6),Math.max(p[t*2]-v,0,v-p[t*2+1])),g.density=f[t];let a=Sl(g);if(a===0)continue;let{mesh:o,geometry:s,bounds:c}=h.meshes[x++],l=p[t*2],u=p[t*2+1];o.position.set(r,0,i),s.instanceCount=a,c.center.set(3,(l+u+Hl)/2,3),c.radius=Math.hypot(6*Math.SQRT1_2,(u-l+Hl)/2),o.visible=!0}for(let e=x;e<h.meshes.length;e++)h.meshes[e].mesh.visible=!1})),/* @__PURE__ */ Z(`primitive`,{object:h.group})}catch(e){throw L(`GrassPatches`,e)}}Xl.displayName=`GrassView`,Zl.displayName=`GrassPatches`;var Ql=[20,35],$l=.25,eu=.5,tu=256;function nu(){let e=[4,8,16,32],t=[.5,.26,.15,.09],n=(e,t)=>{let n=Math.sin(e*127.1+t*311.7)*43758.5453;return n-Math.floor(n)},r=(e,t,r,i)=>n((e%r+r)%r+i*17.3,(t%r+r)%r+i*31.9),i=e=>e*e*(3-2*e),a=(e,t,n,a)=>{let o=Math.floor(e),s=Math.floor(t),c=i(e-o),l=i(t-s),u=r(o,s,n,a),d=r(o+1,s,n,a),f=r(o,s+1,n,a),p=r(o+1,s+1,n,a);return u+(d-u)*c+(f-u)*l+(u-d-f+p)*c*l},o=[new Float32Array(tu**2),new Float32Array(tu**2)];o.forEach((n,r)=>{for(let i=0;i<tu;i++)for(let o=0;o<tu;o++){let s=0;e.forEach((e,n)=>{s+=t[n]*a(o/tu*e,i/tu*e,e,n+1+r*10)}),n[i*tu+o]=s}let i=1/0,o=-1/0;for(let e of n)i=Math.min(i,e),o=Math.max(o,e);for(let e=0;e<n.length;e++)n[e]=(n[e]-i)/(o-i)});let s=new Uint8Array(tu**2*4);for(let e=0;e<tu**2;e++)s.set([o[0][e]*255,o[1][e]*255,0,255],e*4);let c=new Pr(s,tu,tu,oi);return c.wrapS=c.wrapT=li,c.magFilter=Gr,c.minFilter=Kr,c.generateMipmaps=!0,c.needsUpdate=!0,c}function ru(e,t,n,r){let i=(e,t)=>{let i=new Nr(e,n,n,r);return i.format=oi,i.type=_i,i.colorSpace=t?ui:ti,i.wrapS=i.wrapT=li,i.magFilter=Gr,i.minFilter=n>1?Kr:ei,i.generateMipmaps=n>1,i.anisotropy=4,i.needsUpdate=!0,i};return{colour:i(e,!0),detail:i(t,!1)}}function iu(e){let t=new Pr(new Uint8Array(e*e*4),e,e,oi);return t.magFilter=t.minFilter=ei,t.generateMipmaps=!1,t}function au(e,t,n,r,i){e[t*4]=n,e[t*4+1]=r,e[t*4+2]=Math.round(i*255),e[t*4+3]=255}var ou=`
271
+ varying vec3 vGroundPosition;
272
+ varying vec3 vGroundNormal;
273
+ `,su=`
274
+ vGroundPosition = (modelMatrix * vec4(transformed, 1.0)).xyz;
275
+ vGroundNormal = normalize(mat3(modelMatrix) * objectNormal);
276
+ `,cu=`
277
+ varying vec3 vGroundPosition;
278
+ varying vec3 vGroundNormal;
279
+ uniform highp sampler2D uGroundControl;
280
+ uniform highp sampler2DArray uGroundColour;
281
+ uniform highp sampler2DArray uGroundDetail;
282
+ uniform sampler2D uGroundNoise;
283
+ // cells a side, metres a cell, half the map's size
284
+ uniform vec3 uGroundGrid;
285
+ // One row per layer, read by texelFetch rather than from uniform arrays,
286
+ // which ANGLE copies whole on every read by a varying index. Its columns:
287
+ // 1 / tile, sharpness, bumps and roughness; hex tiling, wet, turned per
288
+ // cell and metres between grid lines; scroll along x and z, frames and
289
+ // seconds a frame; the tint.
290
+ uniform highp sampler2D uGroundLayers;
291
+ uniform float uGroundTime;
292
+ uniform vec2 uGroundFade;
293
+
294
+ float groundRoughness = 0.9;
295
+
296
+ vec4 layerGround(int id, int column) {
297
+ return texelFetch(uGroundLayers, ivec2(column, id), 0);
298
+ }
299
+ vec3 groundTangentNormal = vec3(0.0, 0.0, 1.0);
300
+
301
+ vec2 hashGround(vec2 point) {
302
+ vec3 mixed = fract(point.xyx * vec3(0.1031, 0.1030, 0.0973));
303
+ mixed += dot(mixed, mixed.yzx + 33.33);
304
+ return fract((mixed.xx + mixed.yz) * mixed.zy);
305
+ }
306
+
307
+ void readLayer(float layer, vec2 uv, vec2 dx, vec2 dy, out vec3 colour, out vec3 detail) {
308
+ colour = textureGrad(uGroundColour, vec3(uv, layer), dx, dy).rgb;
309
+ detail = textureGrad(uGroundDetail, vec3(uv, layer), dx, dy).rgb;
310
+ }
311
+
312
+ // Hex tiling after Mikkelsen (JCGT 2022): three reads offset on a
313
+ // triangle grid, weighted toward the brighter, for a texture whose repeat
314
+ // shows.
315
+ void readTiled(int id, float layer, vec2 uv, vec2 dx, vec2 dy, out vec3 colour, out vec3 detail) {
316
+ #ifndef GROUND_HEX
317
+ readLayer(layer, uv, dx, dy, colour, detail);
318
+ }
319
+ #else
320
+ if (layerGround(id, 1).x < 0.5) {
321
+ readLayer(layer, uv, dx, dy, colour, detail);
322
+ return;
323
+ }
324
+ vec2 skewed = vec2(uv.x * 2.0 - 0.57735027 * uv.y * 2.0, 1.15470054 * uv.y * 2.0);
325
+ vec2 corner = floor(skewed);
326
+ vec2 inside = fract(skewed);
327
+ float z = 1.0 - inside.x - inside.y;
328
+ float s = step(0.0, -z);
329
+ float sign2 = 2.0 * s - 1.0;
330
+ vec3 w = vec3(-z * sign2, s - inside.y * sign2, s - inside.x * sign2);
331
+ vec3 c1; vec3 c2; vec3 c3; vec3 d1; vec3 d2; vec3 d3;
332
+ readLayer(layer, uv + hashGround(corner + vec2(s, s)), dx, dy, c1, d1);
333
+ readLayer(layer, uv + hashGround(corner + vec2(s, 1.0 - s)), dx, dy, c2, d2);
334
+ readLayer(layer, uv + hashGround(corner + vec2(1.0 - s, s)), dx, dy, c3, d3);
335
+ vec3 bright = mix(vec3(1.0), vec3(d1.b, d2.b, d3.b), 0.6);
336
+ vec3 weights = bright * pow(max(w, vec3(0.0)), vec3(7.0));
337
+ weights /= max(weights.x + weights.y + weights.z, 1e-5);
338
+ colour = weights.x * c1 + weights.y * c2 + weights.z * c3;
339
+ detail = weights.x * d1 + weights.y * d2 + weights.z * d3;
340
+ }
341
+ #endif
342
+
343
+ // A layer as one cell lays it: turned by the cell's own angle, moved by
344
+ // its animation where the camera is near, and tinted. slope is the normal's
345
+ // tilt turned back into the ground's frame. An animated layer keeps its
346
+ // angle, so everything it moves moves one way.
347
+ void tapGround(int id, vec2 cell, vec2 at, vec2 dx, vec2 dy, float fade,
348
+ out vec3 colour, out vec2 slope, out float height) {
349
+ vec4 layer = layerGround(id, 0);
350
+ vec4 flags = layerGround(id, 1);
351
+ float index = float(id);
352
+ #ifdef GROUND_MOTION
353
+ vec4 motion = layerGround(id, 2);
354
+ vec2 scroll = motion.xy;
355
+ float frames = motion.z;
356
+ bool moves = frames > 1.0 || dot(scroll, scroll) > 0.0;
357
+ #else
358
+ bool moves = false;
359
+ #endif
360
+ #ifdef GROUND_TURN
361
+ vec2 turn = moves || flags.z < 0.5 ? vec2(0.0) : hashGround(cell + 11.7);
362
+ #else
363
+ vec2 turn = vec2(0.0);
364
+ #endif
365
+ float angle = turn.x * 6.2831853;
366
+ mat2 rotation = mat2(cos(angle), sin(angle), -sin(angle), cos(angle));
367
+ vec2 still = rotation * (at * layer.x) + turn * 17.0;
368
+ vec2 gx = rotation * dx * layer.x;
369
+ vec2 gy = rotation * dy * layer.x;
370
+ vec3 detail;
371
+ #ifdef GROUND_MOTION
372
+ vec2 moving = still + scroll * uGroundTime;
373
+ if (frames > 1.0) {
374
+ // Frames stacked down the texture, the first at its top: each
375
+ // takes a band of v.
376
+ float frame = mod(floor(uGroundTime / motion.w), frames);
377
+ still.y = (fract(still.y) + frames - 1.0) / frames;
378
+ moving.y = (fract(moving.y) + frames - 1.0 - frame) / frames;
379
+ gx.y /= frames;
380
+ gy.y /= frames;
381
+ }
382
+ if (moves && fade > 0.0) {
383
+ readTiled(id, index, moving, gx, gy, colour, detail);
384
+ if (fade < 1.0) {
385
+ vec3 stillColour; vec3 stillDetail;
386
+ readTiled(id, index, still, gx, gy, stillColour, stillDetail);
387
+ colour = mix(stillColour, colour, fade);
388
+ detail = mix(stillDetail, detail, fade);
389
+ }
390
+ } else {
391
+ readTiled(id, index, still, gx, gy, colour, detail);
392
+ }
393
+ #else
394
+ readTiled(id, index, still, gx, gy, colour, detail);
395
+ #endif
396
+ colour *= layerGround(id, 3).rgb;
397
+ #ifdef GROUND_LINES
398
+ if (flags.w > 0.0) {
399
+ // A line a pixel wide at each multiple of the spacing, fading out
400
+ // where the lines crowd closer than a few pixels and would shimmer.
401
+ vec2 lines = at / flags.w;
402
+ vec2 pixel = max((abs(dx) + abs(dy)) / flags.w, vec2(1e-5));
403
+ vec2 off = abs(fract(lines + 0.5) - 0.5) / pixel;
404
+ float line = 1.0 - min(min(off.x, off.y), 1.0);
405
+ colour *= 1.0 - 0.45 * line * (1.0 - smoothstep(0.1, 0.4, max(pixel.x, pixel.y)));
406
+ }
407
+ #endif
408
+ slope = ((detail.rg * 2.0 - 1.0) * layer.z) * rotation;
409
+ height = detail.b;
410
+ }
411
+
412
+ vec4 cellGround(vec2 cell) {
413
+ return texelFetch(uGroundControl, ivec2(clamp(cell, vec2(0.0), vec2(uGroundGrid.x - 1.0))), 0);
414
+ }
415
+
416
+ // Rain rings on a wet material: four layers of rings at offset times.
417
+ vec2 rippleGround(vec2 at, float time) {
418
+ vec2 gradient = vec2(0.0);
419
+ for (int ring = 0; ring < 4; ring++) {
420
+ float offset = float(ring);
421
+ vec2 q = at * 0.9 + vec2(offset * 0.37, offset * 0.71);
422
+ vec2 cell = floor(q);
423
+ vec2 centre = 0.3 + 0.4 * hashGround(cell + offset * 7.1 + 3.0);
424
+ float life = fract(time * 0.8 + hashGround(cell + offset * 19.3).x + offset * 0.25);
425
+ vec2 away = q - cell - centre;
426
+ float distance = length(away) + 1e-4;
427
+ float front = distance - life * 0.3;
428
+ float envelope = (1.0 - life) * (1.0 - life) * exp(-front * front * 500.0);
429
+ gradient += (away / distance) * (-sin(front * 40.0) * 40.0 * envelope) * 0.06;
430
+ }
431
+ return gradient;
432
+ }
433
+
434
+ vec3 paintGround(vec3 world) {
435
+ vec2 at = vec2(world.x, -world.z);
436
+ vec2 dx = dFdx(at);
437
+ vec2 dy = dFdy(at);
438
+ float fade = 1.0 - smoothstep(uGroundFade.x, uGroundFade.y, distance(cameraPosition, world));
439
+ // The cell grid, bent by noise so no seam runs straight.
440
+ #ifdef GROUND_DETAIL
441
+ vec2 bend = (texture(uGroundNoise, world.xz * 0.11).rg - 0.5) * 0.7;
442
+ #else
443
+ vec2 bend = vec2(0.0);
444
+ #endif
445
+ vec2 grid = (world.xz + uGroundGrid.z) / uGroundGrid.y + bend - 0.5;
446
+ vec2 first = floor(grid);
447
+ // Bilinear across the whole cell, so a material's share runs smoothly
448
+ // from one cell's middle to the next's rather than stepping at the edge.
449
+ vec2 part = grid - first;
450
+ // A material's texture keeps its own cell's angle away from the edge.
451
+ vec2 turnPart = smoothstep(0.5 - ${$l}, 0.5 + ${$l}, part);
452
+ vec3 colour = vec3(0.0);
453
+ vec2 slope = vec2(0.0);
454
+ float roughness = 0.0;
455
+ float wet = 0.0;
456
+ float total = 0.0;
457
+ // The four cells alike, with no overlay: the path most of a map's
458
+ // pixels take. A material that keeps its angle takes one sample; one
459
+ // that turns takes a sample at each cell's angle where the band mixes
460
+ // them, and one in a cell's middle.
461
+ vec4 own = cellGround(first);
462
+ int ownId = int(own.r * 255.0 + 0.5);
463
+ bool alike = own.b < 0.004 &&
464
+ own.rgb == cellGround(first + vec2(1.0, 0.0)).rgb &&
465
+ own.rgb == cellGround(first + vec2(0.0, 1.0)).rgb &&
466
+ own.rgb == cellGround(first + vec2(1.0, 1.0)).rgb;
467
+ if (alike) {
468
+ float height;
469
+ #ifdef GROUND_TURN
470
+ if (layerGround(ownId, 1).z > 0.5) {
471
+ float sharpness = layerGround(ownId, 0).y;
472
+ for (int corner = 0; corner < 4; corner++) {
473
+ vec2 step2 = vec2(float(corner - (corner / 2) * 2), float(corner / 2));
474
+ vec2 turns2 = mix(1.0 - turnPart, turnPart, step2);
475
+ float band = turns2.x * turns2.y;
476
+ if (band <= 0.0) continue;
477
+ vec3 tapped;
478
+ vec2 tilt;
479
+ tapGround(ownId, first + step2, at, dx, dy, fade, tapped, tilt, height);
480
+ // Terrain3D's weight, so the taller of two angles shows.
481
+ float weight = band * exp2(sharpness * log2(band + 1.0 + height));
482
+ colour += tapped * weight;
483
+ slope += tilt * weight;
484
+ total += weight;
485
+ }
486
+ } else
487
+ #endif
488
+ {
489
+ tapGround(ownId, first, at, dx, dy, fade, colour, slope, height);
490
+ total = 1.0;
491
+ }
492
+ roughness = layerGround(ownId, 0).w * total;
493
+ wet = layerGround(ownId, 1).y * total;
494
+ } else {
495
+ // The four cells around the pixel, each with its bilinear share and
496
+ // its share within the band where a texture's angle turns. The loops
497
+ // run a fixed count, so the compiler unrolls them and the arrays stay
498
+ // in registers.
499
+ vec4 controls[4];
500
+ float linear[4];
501
+ float turning[4];
502
+ for (int corner = 0; corner < 4; corner++) {
503
+ vec2 step2 = vec2(float(corner - (corner / 2) * 2), float(corner / 2));
504
+ vec2 weights2 = mix(1.0 - part, part, step2);
505
+ vec2 turns2 = mix(1.0 - turnPart, turnPart, step2);
506
+ controls[corner] = cellGround(first + step2);
507
+ linear[corner] = weights2.x * weights2.y;
508
+ turning[corner] = turns2.x * turns2.y;
509
+ }
510
+ // Each entry, a cell's base or its overlay, tapped where it shows:
511
+ // at each cell's angle mixed over the band, or once for a material
512
+ // that keeps its angle, which reads alike in every cell.
513
+ vec3 colours[8];
514
+ vec2 tilts[8];
515
+ float heights[8];
516
+ float weights[8];
517
+ float peak = 0.0;
518
+ for (int entry = 0; entry < 8; entry++) {
519
+ weights[entry] = 0.0;
520
+ int corner = entry / 2;
521
+ int side = entry - corner * 2;
522
+ vec4 control = controls[corner];
523
+ float own = side == 0 ? 1.0 - control.b : control.b;
524
+ int id = int((side == 0 ? control.r : control.g) * 255.0 + 0.5);
525
+ // The material's share here: the four cells' shares of it,
526
+ // interpolated, and the same within the band.
527
+ float material = 0.0;
528
+ float band = 0.0;
529
+ bool repeat = false;
530
+ for (int other = 0; other < 8; other++) {
531
+ vec4 cell = controls[other / 2];
532
+ bool base = other - (other / 2) * 2 == 0;
533
+ if (int((base ? cell.r : cell.g) * 255.0 + 0.5) != id) continue;
534
+ float share = base ? 1.0 - cell.b : cell.b;
535
+ material += linear[other / 2] * share;
536
+ band += turning[other / 2] * share;
537
+ if (other < entry && share >= 0.004) repeat = true;
538
+ }
539
+ if (own < 0.004 || material < 0.004) continue;
540
+ #ifdef GROUND_TURN
541
+ bool turns = layerGround(id, 1).z > 0.5;
542
+ #else
543
+ bool turns = false;
544
+ #endif
545
+ // Outside the band a material reads at one cell's angle alone.
546
+ float within = turns && band > 0.0 ? turning[corner] * own / band
547
+ : repeat ? 0.0 : 1.0;
548
+ if (within <= 0.0) continue;
549
+ float height;
550
+ tapGround(id, first + vec2(float(corner - (corner / 2) * 2), float(corner / 2)) + float(side) * 0.37,
551
+ at, dx, dy, fade, colours[entry], tilts[entry], height);
552
+ heights[entry] = material * ${eu} + height;
553
+ weights[entry] = within * material;
554
+ peak = max(peak, heights[entry]);
555
+ }
556
+ // A height blend over the interpolated shares: each material's share
557
+ // plus its height, against the highest, with its sharpness as the
558
+ // falloff. Materials level with each other mix by their shares, so a
559
+ // 40% overlay reads as a soft patch rather than a checker of cells;
560
+ // one that stands higher takes over, so where two meet the line runs
561
+ // smooth and the taller texture shows.
562
+ for (int entry = 0; entry < 8; entry++) {
563
+ if (weights[entry] <= 0.0) continue;
564
+ vec4 control = controls[entry / 2];
565
+ bool base = entry - (entry / 2) * 2 == 0;
566
+ int id = int((base ? control.r : control.g) * 255.0 + 0.5);
567
+ vec4 layer = layerGround(id, 0);
568
+ float weight = weights[entry] * exp2(layer.y * (heights[entry] - peak));
569
+ colour += colours[entry] * weight;
570
+ slope += tilts[entry] * weight;
571
+ roughness += layer.w * weight;
572
+ wet += layerGround(id, 1).y * weight;
573
+ total += weight;
574
+ }
575
+ }
576
+ colour /= total;
577
+ slope /= total;
578
+ roughness /= total;
579
+ wet /= total;
580
+ // Broad colour variation, so a field of one material never reads flat;
581
+ // without it, the variation's mean tint.
582
+ #ifdef GROUND_DETAIL
583
+ float broad = texture(uGroundNoise, world.xz * 0.019 + vec2(0.31, 0.17)).r;
584
+ float patches = texture(uGroundNoise, world.xz * 0.043 + vec2(0.63, 0.05)).g;
585
+ colour *= mix(vec3(0.82, 0.87, 0.8), vec3(1.0), broad) * mix(vec3(0.96, 0.9, 0.84), vec3(1.0), patches) * 1.08;
586
+ #else
587
+ colour *= vec3(0.963, 0.959, 0.894);
588
+ #endif
589
+ #ifdef GROUND_WET
590
+ if (wet > 0.0) {
591
+ if (fade > 0.0) slope += rippleGround(world.xz, uGroundTime) * wet * fade;
592
+ colour *= mix(1.0, 0.8, wet);
593
+ roughness = mix(roughness, 0.2, wet);
594
+ }
595
+ #endif
596
+ groundTangentNormal = normalize(vec3(slope, 1.0));
597
+ groundRoughness = roughness;
598
+ return colour;
599
+ }
600
+
601
+ // The painted normal in view space: the tilt in the frame the ground's
602
+ // world position lays the layers in, x east and y north.
603
+ vec3 tiltGround(vec3 tangentNormal) {
604
+ vec3 up = normalize(vGroundNormal);
605
+ vec3 east = normalize(vec3(1.0, 0.0, 0.0) - up * up.x);
606
+ vec3 north = cross(up, east);
607
+ vec3 world = normalize(east * tangentNormal.x + north * tangentNormal.y + up * tangentNormal.z);
608
+ return normalize((viewMatrix * vec4(world, 0.0)).xyz);
609
+ }
610
+ `;function lu(e,t){let n=e.uGroundLayers.value,r=n.image.data;t.forEach((e,t)=>r.set([1/e.tile,e.sharpness,e.bumps,e.roughness,+!!e.hexTiling,+!!e.wet,+!!e.rotate,e.lines,...e.scroll,e.frames,e.frameTime,...un(e),1],t*16)),n.needsUpdate=!0}function uu(e,t,n){let r={GROUND_DETAIL:n,GROUND_TURN:n&&t.some(({rotate:e})=>e),GROUND_HEX:t.some(({hexTiling:e})=>e),GROUND_MOTION:t.some(({frames:e,scroll:t})=>e>1||t[0]!==0||t[1]!==0),GROUND_WET:t.some(({wet:e})=>e),GROUND_LINES:t.some(({lines:e})=>e>0)},i=e.defines??={},a=!1;for(let[e,t]of Object.entries(r))t!==e in i&&(t?i[e]=``:delete i[e],a=!0);return a&&(e.needsUpdate=!0),a}function du(){let e=new Pr(/* @__PURE__ */ new Float32Array(256),4,16,oi,zr);return e.magFilter=e.minFilter=ei,e.generateMipmaps=!1,e.needsUpdate=!0,e}function fu(e){let t=new $r({roughness:1,metalness:0});return t.onBeforeCompile=t=>{Object.assign(t.uniforms,e),t.vertexShader=t.vertexShader.replace(`#include <common>`,`#include <common>\n${ou}`).replace(`#include <worldpos_vertex>`,`#include <worldpos_vertex>\n${su}`),t.fragmentShader=t.fragmentShader.replace(`#include <common>`,`#include <common>\n${cu}`).replace(`#include <color_fragment>`,`#include <color_fragment>
611
+ diffuseColor.rgb = paintGround(vGroundPosition);`).replace(`#include <roughnessmap_fragment>`,`#include <roughnessmap_fragment>
612
+ roughnessFactor = groundRoughness;`).replace(`#include <normal_fragment_maps>`,`#include <normal_fragment_maps>
613
+ normal = tiltGround(groundTangentNormal);`)},t.customProgramCacheKey=()=>`spawnite-ground ${Object.keys(t.defines??{}).join(` `)}|${String(t.onBeforeCompile)}`,t}function pu(e,t,n,r){return{uGroundControl:{value:e},uGroundColour:{value:t.colour},uGroundDetail:{value:t.detail},uGroundNoise:{value:n},uGroundGrid:{value:new H(r.cells,r.cell,r.size/2)},uGroundLayers:{value:du()},uGroundTime:{value:0},uGroundFade:{value:new vi(...Ql)}}}var mu=1024,hu=[128,128,128,255],gu=/* @__PURE__ */ new Map;function _u(e,t){let n=`${t}:${e}`,r=gu.get(n);return r||(r=(async()=>{let n=await fetch(e);if(!n.ok)throw yt(/* @__PURE__ */ Error(`the ground texture ${e} answered ${n.status}`),`SP0252`,void 0);let r=await createImageBitmap(await n.blob(),{imageOrientation:`flipY`,premultiplyAlpha:`none`,colorSpaceConversion:`none`,resizeWidth:t,resizeHeight:t,resizeQuality:`high`}),i=new OffscreenCanvas(t,t).getContext(`2d`,{willReadFrequently:!0});return i.drawImage(r,0,0),r.close(),i.getImageData(0,0,t,t).data})(),r.catch(()=>gu.delete(n)),gu.set(n,r)),r}function vu({swatch:e}){let t=new Mr(e).convertLinearToSRGB();return[t.r*255,t.g*255,t.b*255,255]}function yu(e){let t=new Uint8Array(e.length*4),n=new Uint8Array(e.length*4);return e.forEach((e,r)=>{t.set(vu(e),r*4),n.set(hu,r*4)}),ru(t,n,1,Math.max(e.length,1))}async function bu(e,t=mu){let n=t*t*4,r=new Uint8Array(n*e.length),i=new Uint8Array(n*e.length);return await Promise.all(e.map(async(e,a)=>{let[o,s]=await Promise.all([e.colour===null?null:_u(e.colour,t),e.detail===null?null:_u(e.detail,t)]);if(o)r.set(o,a*n);else{let t=vu(e);for(let e=0;e<n;e+=4)r.set(t,a*n+e)}if(s)i.set(s,a*n);else for(let e=0;e<n;e+=4)i.set(hu,a*n+e)})),ru(r,i,t,e.length)}var xu=/* @__PURE__ */ new WeakMap;function Su(e,t,n){Array.isArray(e)||xu.get(e)?.(t,n)}var Cu=null;function wu(e,{base:t,overlay:n,blend:r}){let i=e.uGroundControl.value,a=i.image.data;for(let e=0;e<t.length;e++)au(a,e,t[e],r[e]>0?n[e]:t[e],r[e]);i.needsUpdate=!0}function Tu({surface:e,material:t}){try{let n=Mi(en,ln),r=s();Hn(Ft.Ground);let i=tr(e),a=Math.round(e.size/e.cell),o=nr(e=>e.tool===`paint`||e.tool===`fill`?e.material:null),{names:c,layers:l}=K(()=>{let t=sn(e.map),n=o!==null&&!i.names.includes(o)&&i.names.length<16&&(o in dn||o in t.materials)?[...i.names,o]:i.names;return{names:n,layers:fn(n,t)}},[i,e.map,n,o]),u=n.set!==`flat`&&l.some(({colour:e})=>e!==null),d=r&&u,f=l.map(({colour:e,detail:t,swatch:n})=>`${e} ${t} ${n}`).join(`|`),[{material:p,uniforms:m}]=J(()=>{Cu??=nu();let t=pu(iu(a),yu(l),Cu,{cells:a,cell:e.cell,size:e.size}),n=fu(t);return n.userData.groundUniforms=t,{uniforms:t,material:n}}),h=K(()=>kn(t,p),[t,p]);return G(()=>{let t=m.uGroundControl;t.value.image.width!==a&&(t.value.dispose(),t.value=iu(a)),m.uGroundGrid.value.set(a,e.cell,e.size/2),wu(m,i)},[m,i,a,e.cell,e.size]),G(()=>{lu(m,l),uu(p,l,d)},[p,m,l,d]),W(()=>{let e=!0;function t(e){m.uGroundColour.value.dispose(),m.uGroundDetail.value.dispose(),m.uGroundColour.value=e.colour,m.uGroundDetail.value=e.detail}if(!u||typeof createImageBitmap!=`function`||typeof OffscreenCanvas!=`function`){t(yu(l));return}return bu(l).then(n=>{if(e)return t(n);n.colour.dispose(),n.detail.dispose()},n=>{e&&t(yu(l)),console.error(`The ground draws its materials' swatch colours: ${n instanceof Error?n.message:String(n)}. Check each material's texture in src/maps/materials.json and the map's materials.`)}),()=>{e=!1}},[m,f,u]),W(()=>{let e=(e,t)=>{if(!e||!t){wu(m,i);return}let{ruled:n}=i,r=m.uGroundControl.value.image.data;e.forEach((e,i)=>{let a=t[i],o=c.indexOf(a.paint??c[n[e]]),s=a.overlay===null?o:c.indexOf(a.overlay);o<0||s<0||au(r,e,o,s,a.overlay===null?0:a.blend??0)}),m.uGroundControl.value.needsUpdate=!0};xu.set(p,e),xu.set(h,e)},[p,h,m,i,c]),W(()=>()=>{p.dispose(),m.uGroundControl.value.dispose(),m.uGroundColour.value.dispose(),m.uGroundDetail.value.dispose(),m.uGroundLayers.value.dispose()},[p,m]),xr(bt(`GroundMaterial`,(e,t)=>{m.uGroundTime.value+=so(e,t)})),/* @__PURE__ */ Z(`primitive`,{object:h,attach:`material`})}catch(e){throw L(`GroundMaterial`,e)}}Tu.displayName=`GroundMaterial`;function Eu({surface:e}){try{let t=q(null);return G(()=>{let n=t.current;n&&(vr(n,e),n.computeVertexNormals(),n.computeBoundingBox(),n.computeBoundingSphere(),n.boundsTree=j(n))},[e]),/* @__PURE__ */ Z(`planeGeometry`,{ref:t,args:[e.size,e.size,e.segments,e.segments]})}catch(e){throw L(`HeightfieldGeometry`,e)}}Eu.displayName=`HeightfieldGeometry`;function Du({entity:e,material:t}){try{let n=Y(e,Me),r=En(e);if(!n)return null;let{surface:i}=n;return/* @__PURE__ */ Q(`mesh`,{name:`ground`,ref:r,renderOrder:-1,"rotation-x":-Math.PI/2,receiveShadow:!0,raycast:Di,visible:t!==!1,children:[/* @__PURE__ */ Z(Eu,{surface:i}),t!==!1&&/* @__PURE__ */ Z(Tu,{surface:i,material:t})]})}catch(e){throw L(`GroundView`,e)}}Du.displayName=`GroundView`;function Ou({multiplier:e}){return e>1?`#ffc629`:`#7fd7ff`}var ku=new H,Au=new H;function ju({zone:e}){try{let t=Ou(e),n=/* @__PURE__ */ Z(`meshBasicMaterial`,{color:t,wireframe:!0,depthTest:!1,transparent:!0,opacity:.85});if(!e.to)return/* @__PURE__ */ Q(`mesh`,{name:`hit zone ${e.name}`,position:[e.at.x,e.at.y,e.at.z],renderOrder:10,children:[/* @__PURE__ */ Z(`sphereGeometry`,{args:[e.radius,16,12]}),n]});ku.copy(e.to).sub(Au.copy(e.at));let r=ku.length();Au.addScaledVector(ku,.5);let i=new ai().setFromUnitVectors(We,r>0?ku.divideScalar(r):We);return/* @__PURE__ */ Q(`mesh`,{name:`hit zone ${e.name}`,position:Au.toArray(),quaternion:i,renderOrder:10,children:[/* @__PURE__ */ Z(`capsuleGeometry`,{args:[e.radius,r,6,12]}),n]})}catch(e){throw L(`ZoneShape`,e)}}function Mu({entity:e}){try{let t=Y(e,qe),n=Y(e,_t)?.object;return!t?.length||!n?null:br(/* @__PURE__ */ Z(rr,{children:t.map(e=>/* @__PURE__ */ Z(ju,{zone:e},e.name))}),n)}catch(e){throw L(`EntityZones`,e)}}function Nu({shown:e=!1}){try{let t=X(),[n,r]=J(!1),i=zi(qe,_t);return W(()=>{if(!t.has(at))return;let e=(e=!0)=>r(e);return window.__GAME_HIT_ZONES__=e,()=>{window.__GAME_HIT_ZONES__===e&&delete window.__GAME_HIT_ZONES__}},[t]),!e&&!n?null:i.map(e=>/* @__PURE__ */ Z(Mu,{entity:e},e))}catch(e){throw L(`HitZonesView`,e)}}ju.displayName=`ZoneShape`,Mu.displayName=`EntityZones`,Nu.displayName=`HitZonesView`;var Pu=[ht,Ue(E),Ue(te)];function Fu(e,t){let n=X(),r=Y(e,Ge);zi(Ue(E),ht),zi(Ue(E),Ce),zi(Ue(E),Ke);let[,i]=ji(e=>e+1,0),a=q(/* @__PURE__ */ new Set);W(()=>{let t=t=>{(a.current.has(t)||Te(t,e))&&i()},r=Pu.map(e=>n.onChange(e,t));return()=>{for(let e of r)e()}},[n,e]);let o=xe(n,e,a.current);G(()=>{if(t instanceof Zr&&r)return ie(e,{ground:t})},[e,t,r,o])}function Iu({ground:e}){try{U(S()),U(Je());let t=Y(e,Me)?.surface;return Fu(e,K(()=>t&&yr(t),[t])),null}catch(e){throw L(`GroundNavMesh`,e)}}Iu.displayName=`GroundNavMesh`;function Lu({entity:e,wireframe:t}){try{U(S()),U(Je());let n=Y(e,Fe)?.handle;Fu(e,Y(e,_t)?.object);let r=q(null);return W(()=>{let e=r.current;if(!e||!n||!t)return;let{DebugDrawer:i}=fe().three,a=new i;return a.drawNavMesh(n.navMesh),e.add(a),()=>{e.remove(a),a.dispose()}},[n,t]),/* @__PURE__ */ Z(rr,{ref:r})}catch(e){throw L(`NavMeshView`,e)}}Lu.displayName=`NavMeshView`;function Ru({drawn:e}){try{return G(()=>(e.current=!0,()=>{e.current=!1}),[e]),null}catch(e){throw L(`Drawn`,e)}}function zu({name:e,shape:t,size:n,color:r}){try{let[i,a,o]=n,s=/* @__PURE__ */ Z(`meshStandardMaterial`,{color:r});return t===xi.Plane?/* @__PURE__ */ Q(`mesh`,{name:e,"rotation-x":-Math.PI/2,scale:[i,o,1],receiveShadow:!0,children:[/* @__PURE__ */ Z(`planeGeometry`,{}),s]}):/* @__PURE__ */ Q(`mesh`,{name:e,"position-y":a/2,scale:n,castShadow:!0,receiveShadow:!0,children:[t===xi.Box&&/* @__PURE__ */ Z(`boxGeometry`,{}),t===xi.Sphere&&/* @__PURE__ */ Z(`sphereGeometry`,{args:[.5]}),t===xi.Cylinder&&/* @__PURE__ */ Z(`cylinderGeometry`,{args:[.5,.5,1]}),s]})}catch(e){throw L(`PropShapeMesh`,e)}}function Bu({name:e,prop:t,surface:n,pops:r}){try{let i=q(null),a=q(!1),o=N(n,t.position);xr(bt(`Prop`,()=>{let t=r.current.get(e);if(t===void 0||!i.current)return;if(t===null){if(!a.current)return;t=performance.now(),r.current.set(e,t)}let n=performance.now()-t;i.current.scale.setScalar(Al(n)),n>=400&&r.current.delete(e)}));let s=typeof t.scale==`number`?[t.scale,t.scale,t.scale]:[...t.scale];return/* @__PURE__ */ Z(Rn,{name:e,position:o.toArray(),rotation:[0,V.degToRad(t.yaw),0],scale:s,children:/* @__PURE__ */ Z(`group`,{ref:i,children:/* @__PURE__ */ Q(`group`,{children:[`model`in t&&/* @__PURE__ */ Z(Ln,{name:t.model,children:/* @__PURE__ */ Z(Ru,{drawn:a})}),`size`in t&&/* @__PURE__ */ Q(Ui,{children:[/* @__PURE__ */ Z(zu,{name:e,shape:t.kind,size:[...t.size],color:t.color}),/* @__PURE__ */ Z(Ru,{drawn:a})]})]})})})}catch(e){throw L(`Prop`,e)}}function Vu(){try{let e=Y(xd(),Me)?.surface,t=q(null),n=q(/* @__PURE__ */ new Map);return G(()=>{if(!e)return;let r=t.current,i=new Set(Object.keys(e.map.props));t.current=i;for(let e of n.current.keys())i.has(e)||n.current.delete(e);let{reducedMotion:a}=yn.getState();if(!(!r||(a??_n())))for(let e of i)r.has(e)||n.current.set(e,null)},[e]),e?Object.entries(e.map.props).map(([t,r])=>(`model`in r||`size`in r)&&/* @__PURE__ */ Z(Bu,{name:t,prop:r,surface:e,pops:n},t)):null}catch(e){throw L(`PropsView`,e)}}Ru.displayName=`Drawn`,zu.displayName=`PropShapeMesh`,Bu.displayName=`Prop`,Vu.displayName=`PropsView`;var Hu=4,Uu=new Xr,Wu=new H,Gu=new H,Ku=1,qu=class extends jn{passes=/* @__PURE__ */ new Map;passNumber=0;changes=0;fadeCentre=new H;culledCentre=new H;fadeFar=null;onFrustumEnter=e=>this.fadeFar===null||this.getPositionAt(e,Wu).distanceToSquared(this.culledCentre)<=this.fadeFar**2;setFadeFar(e){e!==this.fadeFar&&(this.fadeFar=e,this.changes+=1)}followEye(e){this.fadeCentre.copy(e),this.fadeFar!==null&&this.fadeCentre.distanceTo(this.culledCentre)>Ku&&(this.culledCentre.copy(this.fadeCentre),this.changes+=1)}firstIndex;bindRenderer(e){this.firstIndex||=(Object.assign(this,{_renderer:e}),this.initIndexAttribute(),this.keepIndex(`instanceIndex0`))}onBeforeShadow(e,t,n,r,i,a,o){let s=this.beginPass(e,r);super.onBeforeShadow(e,t,n,r,i,a,o),s&&(s.count=this.count)}onBeforeRender(e,t,n,r,i,a){this.followEye(n.getWorldPosition(Gu));let o=this.beginPass(e,n);super.onBeforeRender(e,t,n,r,i,a),o&&(o.count=this.count)}beginPass(e,t){Uu.multiplyMatrices(t.projectionMatrix,t.matrixWorldInverse).multiply(this.matrixWorld);let n=this.passes.get(t);if(!n){this.addPass(e,t),this.drawFrom(this.firstIndex),this.autoUpdate=!0;return}this.drawFrom(n.index);let r=n.bvh===this.bvh&&n.changes===this.changes&&n.view.equals(Uu);return this.autoUpdate=!r,r?this.count=n.count:(n.view.copy(Uu),n.bvh=this.bvh,n.changes=this.changes),n}addPass(e,t){let n=e.getContext();if(this.passes.size>=Hu){let[[e,t]]=this.passes;this.passes.delete(e),this.geometry.deleteAttribute(t.key),n.deleteBuffer(t.index.buffer)}let r=new Pi(n,n.UNSIGNED_INT,1,4,new Uint32Array(this.capacity));this.passNumber+=1;let i=`instanceIndex${this.passNumber}`;this.setList(i,r),this.passes.set(t,{index:r,key:i,count:0,view:new Xr,bvh:void 0,changes:-1})}setMatrixAt(e,t){super.setMatrixAt(e,t),this.changes+=1}keepIndex(e){return this.setList(e,this.instanceIndex),this.instanceIndex}drawFrom(e){e.array.length<this.capacity&&(e.array=new Uint32Array(this.capacity)),this.instanceIndex=e,this.setList(`instanceIndex`,e)}setList(e,t){this.geometry.attributes[e]=t}},Ju=Object.values(Ci),Yu=Ju.map(e=>qt[e]),Xu=({scatter:e,regions:t})=>[e,...Object.values(t).map(e=>e.scatter)].some(e=>Ju.some(t=>e[t]>0));function Zu({entity:e,material:t}){try{let n=Y(e,we),r=Y(e,Me)?.surface.map;r&&Xu(r)&&Tn.preload(Yu);let i=Hn(Ft.Scatter);return!n||n.placements.length===0||!i?null:/* @__PURE__ */ Z(Qu,{entity:e,placements:n.placements,material:t})}catch(e){throw L(`ScatterView`,e)}}function Qu({entity:e,placements:t,material:n}){try{let r=En(e,be),i=U(Wn),a=String(e.id());W(()=>$t({id:Yt(a),name:`Scatter`,kind:Qt.Scatter,parentId:i?.id??null}),[a,i]);let o=Tn(Yu),s=K(()=>{let e=/* @__PURE__ */ new Map;for(let n of t){let t=e.get(n.kind);t?t.push(n):e.set(n.kind,[n])}return e},[t]);return/* @__PURE__ */ Z(`group`,{ref:r,children:Ju.map((e,t)=>{let r=s.get(e);return r?/* @__PURE__ */ Z(sd,{groundRowId:a,kind:e,model:o[t],placements:r,material:n},e):null})})}catch(e){throw L(`ScatterKit`,e)}}function $u(e){return e.replace(/[A-Z]/g,` $&`).replace(/^./,e=>e.toUpperCase())}var ed=new Xr,td=new H;function nd(e,t,n,r,i){e.setMatrixAt(r,se({placement:i===1?t:{...t,height:t.height*i},bounds:n,target:ed}))}var rd=/* @__PURE__ */ new Set([Si.Bush,Si.Tuft]),id=`
614
+ #include <begin_vertex>
615
+ #ifdef USE_INSTANCING_INDIRECT
616
+ float scatterShown = 1.0 - smoothstep(uScatterFade.x, uScatterFade.y,
617
+ distance((modelMatrix * instanceMatrix[3]).xyz, uScatterEye));
618
+ transformed = mix(vec3(0.0, uScatterFoot, 0.0), transformed, scatterShown);
619
+ #endif
620
+ `;function ad(e,t){return e.onBeforeCompile=e=>{Object.assign(e.uniforms,t),e.vertexShader=e.vertexShader.replace(`#include <common>`,`#include <common>
621
+ uniform vec2 uScatterFade;
622
+ uniform vec3 uScatterEye;
623
+ uniform float uScatterFoot;`).replace(`#include <begin_vertex>`,id)},e.customProgramCacheKey=()=>`scatter-shrink`,e}var od=({position:e})=>`${e.x} ${e.z}`;function sd({groundRowId:e,kind:n,model:r,placements:i,material:a}){try{let[{geometry:o,material:s}]=Object.values(r.meshes),c=K(()=>(o.computeBoundingBox(),o.boundingBox??new kr),[o]),l=B(e=>e.gl),u=rd.has(wi[n].family),{batch:d,depth:f,fade:p,own:m}=K(()=>{if(!u){let e=a?s.clone():null;return{batch:new qu(o.clone(),kn(a,e??s)),depth:new Qr,fade:null,own:e}}let e=new vi,t={uScatterFade:{value:e},uScatterEye:{value:new H},uScatterFoot:{value:c.min.y}},n=ad(s.clone(),t),r=kn(a,n),i=new qu(o.clone(),r);return r===n?(t.uScatterEye.value=i.fadeCentre,{batch:i,depth:ad(new Qr,t),fade:e,own:n}):{batch:i,depth:new Qr,fade:null,own:n}},[u,o,s,c,l,a]);G(()=>d.bindRenderer(l),[d,l]),W(()=>()=>{d.dispose(),d.geometry.dispose(),f.dispose(),m?.dispose()},[d,f,m]);let h=t();G(()=>{p&&(p.set(h.near,h.far),d.setFadeFar(h.far))},[d,p,h]),W(()=>$t({id:Xt(e,n),name:$u(n),kind:Qt.Scatter,count:i.length,readOnlyReason:`Baked from the map's seed`,parentId:Yt(e)}),[e,n,i.length]);let g=q(null),_=q(/* @__PURE__ */ new Map);return G(()=>{d.addInstances(i.length),i.forEach((e,t)=>nd(d,e,c,t,1)),d.computeBVH();let e=g.current;g.current=new Set(i.map(od)),_.current.clear();let{reducedMotion:t}=yn.getState(),n=e&&!(t??_n())?i.flatMap((t,n)=>e.has(od(t))?[]:[n]):[];for(let e of n)nd(d,i[e],c,e,Ml);d.computeBoundingSphere();let r=performance.now();for(let e of n){let{x:t,z:n}=i[e].position;_.current.set(e,r+ft(Math.round(t*100),Math.round(n*100))*100),nd(d,i[e],c,e,Al(-1))}return()=>{d.disposeBVH(),d.clearInstances()}},[d,i,c]),xr(bt(`ScatterBatch`,({camera:e})=>{if(p&&d.followEye(e.getWorldPosition(td)),_.current.size===0)return;let t=performance.now();for(let[e,n]of _.current)nd(d,i[e],c,e,Al(t-n)),t-n>=400&&_.current.delete(e)})),/* @__PURE__ */ Z(`primitive`,{object:d,name:n,castShadow:!0,receiveShadow:!0,customDepthMaterial:f})}catch(e){throw L(`ScatterBatch`,e)}}Zu.displayName=`ScatterView`,Qu.displayName=`ScatterKit`,sd.displayName=`ScatterBatch`;var cd=new Mr(`#1f6f8b`),ld=3,ud=1;function dd({baseHeights:e,offsets:t,segments:n}){let r=n+1,i=new Uint16Array(r*r),a=1/0;for(let n=0;n<i.length;n++){let r=e[n]+(Number.isNaN(t[n])?0:t[n]);a=Math.min(a,r),i[n]=Fr.toHalfFloat(r)}let o=new Pr(i,r,r,ci,Hr);return o.magFilter=ei,o.minFilter=ei,o.needsUpdate=!0,{texture:o,lowest:a}}var fd=()=>void 0;function pd({entity:e,map:t,material:n}){try{let r=Y(e,Me)?.surface,i=nr(e=>e.seaPreview?.map===t?e.seaPreview.level:void 0),a=K(()=>r&&dd(r),[r]);if(W(()=>()=>a?.texture.dispose(),[a]),!r||!a)return null;let o=i??r.sea;if(o<=a.lowest)return null;let{size:s,cell:c,segments:l}=r;return/* @__PURE__ */ Q(`mesh`,{name:`sea`,"position-y":o,"rotation-x":-Math.PI/2,raycast:fd,children:[/* @__PURE__ */ Z(`planeGeometry`,{args:[s,s]}),/* @__PURE__ */ Z(lo,{clock:`effects`,material:n,fragment:po,uniforms:{uColor:cd,uWaveSize:ld,uWaveSpeed:ud,uLevel:o,uGround:a.texture,uGrid:new H(s/2,c,l+1)}})]})}catch(e){throw L(`SeaView`,e)}}pd.displayName=`SeaView`;function md({ground:e,scatterShare:t}){try{U(et());let n=Y(e,Me)?.surface;return G(()=>D(e,t),[e,t,n]),null}catch(e){throw L(`GroundDressing`,e)}}md.displayName=`GroundDressing`;var hd=e=>({materials:rn(e),props:on(e),sea:an(e)}),gd=(e,{materials:t,props:n,sea:r})=>t||n||r!==void 0?{...e,...t&&{materials:t},...n&&{props:n},...r!==void 0&&{sea:r}}:e;function _d(e){try{let t=u(),[n,r]=J(!1),i=Ai(()=>r(!0),[]);return n?/* @__PURE__ */ Z(bd,{...e,scenePath:t}):/* @__PURE__ */ Z(Oi,{fallback:/* @__PURE__ */ Z(yd,{}),children:/* @__PURE__ */ Z(vd,{onLoad:i})})}catch(e){throw L(`World`,e)}}function vd({onLoad:e}){try{return U(Je()),G(e,[e]),null}catch(e){throw L(`AwaitPhysics`,e)}}function yd(){try{let e=X();return G(()=>Ht(e),[e]),/* @__PURE__ */ Z(Sn,{name:`the world`})}catch(e){throw L(`WorldWaiting`,e)}}function bd({map:e=`grid`,scatterShare:t,ground:n,sea:r,scatter:o,navmesh:s=!1,hitZones:c=!1,shadowMapSize:u,dayLengthSeconds:d=ze.schema.realSecondsPerCycle,startHour:f,look:p,grass:m,lighting:g=!0,sky:_,sun:v,fog:y,focus:b,shadowBox:x,children:ee,scenePath:S}){try{let C=X(),te=l(),ne=a(e=>e.scatter),re=a(e=>e.shadowMapSize),[w,T]=J(null),[E,ie]=J(null),D=nn(e),O=Mi(en,()=>tn(e)),k=Mi(en,()=>rn(e)),ae=Mi(en,()=>on(e)),A=Mi(en,()=>an(e)),j=q({materials:k,props:ae,sea:A}),M=K(()=>p&&zs(p),[p]);W(()=>{let{ground:t,clock:n,remove:r}=de(C,{map:gd(D,hd(e)),terrain:tn(e),dayLengthSeconds:d,startHour:f??M?.hour??ze.schema.hour});j.current=hd(e),T(t),n&&S!==void 0&&C.has(nt)&&n.add(lt({path:S})),ie(n??null);let i=null,a=n===void 0&&S!==void 0?Fn(C,S,e=>{i=e,e?.add(Le({ground:t})),ie(e)}):void 0,o=cn(t,D);return()=>{o(),a?.(),i?.isAlive()&&i.remove(Le),T(null),ie(null),r()}},[C,D,S]),W(()=>{if(w===null)return;let{surface:e}=w.get(Me)??{};e===void 0||e.terrain===O&&j.current.materials===k&&j.current.props===ae&&j.current.sea===A||(j.current={materials:k,props:ae,sea:A},w.set(Me,{surface:_e(gd(D,j.current),O)}))},[w,D,O,k,ae,A]),W(()=>{E===null||E.has(vt)||h(E,d)},[E,d]);let N=Un({id:w&&String(w.id()),through:_d,kind:Qt.World,entityId:w?ut(C,w):void 0});return w===null?/* @__PURE__ */ Z(yd,{}):/* @__PURE__ */ Z(Mn,{value:w,children:/* @__PURE__ */ Q(Wn,{value:N,children:[/* @__PURE__ */ Z(Oi,{fallback:null,children:/* @__PURE__ */ Z(md,{ground:w,scatterShare:t??ne})}),te&&/* @__PURE__ */ Z(Oi,{fallback:null,children:/* @__PURE__ */ Z(Iu,{ground:w})}),!te&&/* @__PURE__ */ Q(Ui,{children:[/* @__PURE__ */ Q(Oi,{fallback:/* @__PURE__ */ Z(Sn,{name:`the world's views`}),children:[/* @__PURE__ */ Z(Du,{entity:w,material:n}),r!==!1&&/* @__PURE__ */ Z(pd,{entity:w,map:e,material:r}),o!==!1&&/* @__PURE__ */ Z(Zu,{entity:w,material:o}),m!==!1&&/* @__PURE__ */ Z(Xl,{entity:w,shader:m}),/* @__PURE__ */ Z(Vu,{})]}),/* @__PURE__ */ Z(Oi,{fallback:null,children:/* @__PURE__ */ Z(Lu,{entity:w,wireframe:s})}),/* @__PURE__ */ Z(Nu,{shown:c}),g&&/* @__PURE__ */ Z(Nc,{look:p,clock:E??void 0,shadowMapSize:u??re,sky:_,sun:v,fog:y,focus:b,shadowBox:x})]}),S===void 0?ee:/* @__PURE__ */ Z(i,{value:S,children:ee})]})})}catch(e){throw L(`LoadedWorld`,e)}}function xd(){let e=U(Mn);if(e===null)throw yt(/* @__PURE__ */ Error(`useWorldEntity() is called outside a <World>: call it in a component rendered inside <World>.`),`SP0014`,`useWorldEntity`);return e}_d.displayName=`World`,vd.displayName=`AwaitPhysics`,yd.displayName=`WorldWaiting`,bd.displayName=`LoadedWorld`;export{Ka as A,ua as B,Yo as C,fo as D,yo as E,ma as F,Zi as G,Qi as H,na as I,qi as L,xa as M,ka as N,lo as O,Oa as P,sa as R,ns as S,bo as T,ta as U,la as V,pa as W,ls as _,Gl as a,Uo as b,Nc as c,Ls as d,ws as f,us as g,xs as h,Su as i,Ga as j,ro as k,Ac as l,Ss as m,xd as n,Wl as o,Cs as p,Eu as r,_l as s,_d as t,Ms as u,es as v,Bo as w,Vo as x,Qo as y,aa as z};