@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 @@
1
+ import{i as e,o as t,r as n}from"./D3wyrZ2_.js";import{versionsOf as r}from"@spawnite/schema";var i=/* @__PURE__ */ function(e){return e.Saved=`saved`,e.Unsaved=`unsaved`,e.Saving=`saving`,e.Refused=`refused`,e}({}),a={cloud:120,hidden:30,journal:5,largeJournal:30,largeRecordBytes:262144},o={now:()=>Date.now(),setTimeout:(e,t)=>setTimeout(e,t),clearTimeout:e=>clearTimeout(e)};function s(e,t){if(e.length>t)return!0;let n=0;for(let r=0;r<e.length;r++){let i=e.charCodeAt(r);if(i>=55296&&i<56320?(n+=4,r++):n+=i<128?1:i<2048?2:3,n>t)return!0}return!1}function c({read:i,hand:c,journal:l=!0,firstNumber:u=1,stored:d=!0,onChange:f,onPastLimit:ee,report:p=()=>void 0,clock:m=o,pack:te=e}){let h=1e3,ne=u,g=!1,_=!1,v=!1,y=null,b=null,x=null,S=null,C=null,w=0,T=d,E=null,D=null,O=null,re=null,k=!1,A=!1,j=!1,M=null,N=!1,P=1/0,F=1/0,I=null,L=-1/0,R,z=Promise.resolve(),B=!1,V={status:`saved`,problem:null,size:null},H=()=>{let e=D??(O?.text===b?O:null),t=e?.problem??M,n=e?e.size:y!==null&&b===y.text?re:V.size,r=e?`refused`:j||M||N?`unsaved`:E?`saving`:!T||b!==C?`unsaved`:`saved`;(r!==V.status||t!==V.problem||n!==V.size)&&(V={status:r,problem:t,size:n},f?.(V))},ie=e=>({unpackedBytes:e.unpackedBytes,compressedBytes:e.compressedBytes}),U=a.cloud*h,W=()=>(A?a.largeJournal:a.journal)*h,G=()=>Math.max(Math.min(F,I??1/0),L+a.hidden*h),K=()=>{if(R!==void 0&&m.clearTimeout(R),R=void 0,!g||_||v||B)return;let e=Math.min(G(),l?P:1/0);e!==1/0&&(R=m.setTimeout(()=>{R=void 0,q(()=>ae(m.now()>=G()))},Math.max(0,e-m.now())))},q=e=>{let t=z.then(async()=>{B=!0;try{return await e()}finally{B=!1,K()}});return z=t.catch(()=>void 0),t},J=e=>{j=!0,p(`error`,`The save was not written: ${e instanceof Error?e.message:String(e)}. The last save stays, and the engine reads the record again at its next write.`)},Y=async(e,i,a)=>{let o;if(y?.text===i)o={...y,cloud:a};else{if(i===O?.text)return null;let s=await te(i);if(v)return null;let c=n(s),l=ie(s);if(V={...V,size:l},f?.(V),c?.ceiling)return O={text:i,problem:c,size:l},p(`error`,c.message),null;let u=c?null:t(s);u&&!k&&p(`warn`,u),k=u!==null,o={...s,number:ne++,cloud:a||c!==null,versions:r(e)},y=o,re=l,x=i,c&&(D={handout:o,problem:c,size:l,stored:!1},p(`error`,c.message))}return o.cloud&&(S=i,E={number:o.number,text:i}),c(o),o},X=()=>{if(v||!D||D.stored||E)return null;let e={...D.handout,cloud:!0};return S=e.text,E={number:e.number,text:e.text},c(e),e},Z=()=>{if(v||!y||y.text===S||y.text===C)return null;let e={...y,cloud:!0};return S=y.text,E={number:y.number,text:y.text},c(e),e},Q=()=>{let e=i();if(j=!1,N=!1,e!==null&&!e.ok)return e.problem.message!==M?.message&&p(`error`,e.problem.message),M=e.problem,null;if(M=null,e===null)return b=null,null;let{record:t}=e,n=JSON.stringify(t);return b=n,A=s(n,a.largeRecordBytes),{record:t,text:n}},$=e=>{L=e,F=e+U,I=null},ae=async e=>{let t=m.now();if(e&&(F=t+U,I=null),P=t+W(),D){e&&X()&&$(t),H();return}try{let n=Q();if(P=t+W(),n===null)return;let{record:r,text:i}=n,a=e&&i!==S;(a||l&&i!==x)&&(await Y(r,i,a)??(a?Z():null))?.cloud&&$(t)}catch(e){J(e)}finally{H()}};return{get state(){return V},get text(){return b},start(){if(v)return;if(g){_=!1,K();return}g=!0;try{let e=Q()?.text??null;x=S=C=d?e:null}catch(e){J(e)}let e=m.now();P=e+W(),F=e+U,H(),K()},save(){g&&!v&&(N=!0,H())},flush(){g&&!v&&(I=m.now(),K())},saveNow:()=>q(async()=>{if(!g||v)return null;if(D){let e=X();return e&&$(m.now()),e}try{let e=Q();if(e===null||e.text===S&&e.text===x)return null;let t=await Y(e.record,e.text,!0)??Z();return t&&$(m.now()),t}catch(e){return J(e),null}finally{H()}}),stored(e){if(e<w)return;T=!0;let t=E?.number===e?E.text:y?.number===e?y.text:void 0;t!==void 0&&(w=e,C=t,E&&E.number<=e&&(E=null)),H(),D?.handout.number===e&&!D.stored&&(D.stored=!0,ee?.(D.problem))},failed(e){E?.number===e&&(E=null,S=C,H())},pause(){_=!0,R!==void 0&&m.clearTimeout(R),R=void 0},stop(){v=!0,R!==void 0&&m.clearTimeout(R),R=void 0}}}export{c as n,i as t};
@@ -0,0 +1 @@
1
+ import{pc as e}from"./-MLBVTaO.js";import{n as t}from"./BrfUaL46.js";import{b as n}from"./BobsCMiL.js";import{t as r}from"./DJSpRhXB.js";import{AdditiveAnimationBlendMode as i,AnimationClip as a,Box3 as o,DoubleSide as s,Euler as c,Matrix4 as l,Mesh as u,MeshDepthMaterial as d,Quaternion as f,QuaternionKeyframeTrack as p,SkinnedMesh as m,Vector3 as h}from"three";import{MToonMaterial as g,VRMExpressionMaterialColorBind as _,VRMHumanBoneList as v,VRMHumanBoneName as y,VRMLoaderPlugin as b,VRMSpringBoneCollider as x,VRMSpringBoneColliderShape as S,VRMSpringBoneColliderShapeCapsule as C,VRMSpringBoneColliderShapeSphere as w,VRMUtils as T}from"@pixiv/three-vrm";import{VRMAnimationLoaderPlugin as E,VRMLookAtQuaternionProxy as D}from"@pixiv/three-vrm-animation";var O=new f,k=new h;function A(){for(let e=0;e<v.length;e++){let t=v[e],n=this.original.getBoneNode(t);if(n==null)continue;let r=this.getBoneNode(t),i=this._parentWorldRotations[t];if(O.copy(i).invert(),n.quaternion.copy(r.quaternion).multiply(i).premultiply(O).multiply(this._boneRotations[t]),t===`hips`){r.getWorldPosition(k);let e=n.parent;e.updateWorldMatrix(!0,!1),n.position.copy(k.applyMatrix4(e.matrixWorld.invert()))}}}function j(e){let n=e._normalizedHumanBones;if(!n?._parentWorldRotations||!n._boneRotations||typeof n.original?.getBoneNode!=`function`)throw t(/* @__PURE__ */ Error(`three-vrm's humanoid no longer holds the _normalizedHumanBones rig of 3.5.5, which the engine's rig update reads.`),`SP0253`,void 0);n.update=A}function M(e,t){e.lookAt?.update(t),e.expressionManager?.update(),e.nodeConstraintManager?.update(),e.springBoneManager?.update(t);for(let n of e.materials??[])n.update?.(t)}var N={x:NaN,y:NaN,z:NaN,reachSquared:NaN,nearestSquared:NaN,nearestX:NaN,nearestY:NaN,nearestZ:NaN,nearestFace:0},P=/* @__PURE__ */ new WeakMap,F,I,L=8,R=65535;function z(e){let{float32:t}=I,n=Math.max(t[e],Math.min(t[e+3],N.x))-N.x,r=Math.max(t[e+1],Math.min(t[e+4],N.y))-N.y,i=Math.max(t[e+2],Math.min(t[e+5],N.z))-N.z;return n*n+r*r+i*i}function ee(e){let{geometry:t}=F,{index:n}=t,r=t.getAttribute(`position`).array,i=e*3,a=n?n.getX(i):i,o=n?n.getX(i+1):i+1,s=n?n.getX(i+2):i+2,c=r[a*3],l=r[a*3+1],u=r[a*3+2],d=r[o*3],f=r[o*3+1],p=r[o*3+2],m=r[s*3],h=r[s*3+1],g=r[s*3+2],{x:_,y:v,z:y}=N,b=d-c,x=f-l,S=p-u,C=m-c,w=h-l,T=g-u,E=c,D=l,O=u,k=_-c,A=v-l,j=y-u,M=b*k+x*A+S*j,P=C*k+w*A+T*j;if(!(M<=0&&P<=0)){let e=_-d,t=v-f,n=y-p,r=b*e+x*t+S*n,i=C*e+w*t+T*n,a=M*i-r*P;if(r>=0&&i<=r)E=d,D=f,O=p;else if(a<=0&&M>=0&&r<=0){let e=M/(M-r);E+=b*e,D+=x*e,O+=S*e}else{let e=_-m,t=v-h,n=y-g,o=b*e+x*t+S*n,s=C*e+w*t+T*n,c=o*P-M*s,l=r*s-o*i;if(s>=0&&o<=s)E=m,D=h,O=g;else if(c<=0&&P>=0&&s<=0){let e=P/(P-s);E+=C*e,D+=w*e,O+=T*e}else if(l<=0&&i-r>=0&&o-s>=0){let e=(i-r)/(i-r+(o-s));E=d+(m-d)*e,D=f+(h-f)*e,O=p+(g-p)*e}else{let e=1/(l+c+a),t=c*e,n=a*e;E+=b*t,D+=x*t,O+=S*t,E+=C*n,D+=w*n,O+=T*n}}}let I=_-E,L=v-D,R=y-O,z=I*I+L*L+R*R;z<N.nearestSquared&&(N.nearestX=E,N.nearestY=D,N.nearestZ=O,N.nearestSquared=z,N.nearestFace=e)}function te(e,t){for(let n=e;n<e+t;n++)ee(F.indirect?F.resolveTriangleIndex(n):n)}function B(e){let{uint16:t,uint32:n}=I,r=e*2;if(t[r+15]===R){te(n[e+6],t[r+14]);return}let i=e+L,a=e+n[e+6]*L,o=z(i),s=z(a);if(s<o){let e=i;i=a,a=e;let t=o;o=s,s=t}o<N.nearestSquared&&o<N.reachSquared&&B(i),s<N.nearestSquared&&s<N.reachSquared&&B(a)}function ne(e){let t=P.get(e);return t||(t={float32:new Float32Array(e),uint16:new Uint16Array(e),uint32:new Uint32Array(e)},P.set(e,t)),t}function re(e,t){let{point:n,reach:r,target:i}=t;F=e,N.x=n.x,N.y=n.y,N.z=n.z,N.reachSquared=r*r,N.nearestSquared=1/0;let a=e._roots;for(let e=0;e<a.length;e++)I=ne(a[e]),B(0);if(N.nearestSquared>N.reachSquared)return!1;let o=Math.sqrt(N.nearestSquared),s=n.x-N.nearestX,c=n.y-N.nearestY,l=n.z-N.nearestZ,u=1/(Math.sqrt(s*s+c*c+l*l)||1);s*=u,c*=u,l*=u;let{geometry:d}=e,{index:f}=d,p=d.getAttribute(`position`).array,m=N.nearestFace*3,h=f?f.getX(m):m,g=f?f.getX(m+1):m+1,_=f?f.getX(m+2):m+2,v=p[g*3],y=p[g*3+1],b=p[g*3+2],x=p[_*3]-v,S=p[_*3+1]-y,C=p[_*3+2]-b,w=p[h*3]-v,T=p[h*3+1]-y,E=p[h*3+2]-b,D=S*E-C*T,O=C*w-x*E,k=x*T-S*w,A=D*D+O*O+k*k;if(A>0){let e=1/Math.sqrt(A);D*=e,O*=e,k*=e}else D=0,O=0,k=0;return s*D+c*O+l*k>=0?(i.set(s,c,l),t.depth=o):(i.set(D,O,k),t.depth=-o),!0}var ie=()=>({colliderMatrix:new l,position:new h,radius:NaN,distance:NaN,direction:new h}),V=ie(),H=ie(),U=V.direction,W=new h,G=new h,K=new h,q=class extends S{calculateCollision(e,t,n,r){return H.colliderMatrix=e,H.position=t,H.radius=n,H.direction=r,this.measureContact(H),H.distance}};function ae(e){U.subVectors(V.position,G.setFromMatrixPosition(V.colliderMatrix));let t=U.length(),n=e.inside?e.radius-V.radius-t:t-V.radius-e.radius;n<0&&(U.multiplyScalar(1/t),e.inside&&U.negate()),V.distance=n}function oe(e){G.setFromMatrixPosition(V.colliderMatrix),K.subVectors(e.tail,e.offset).applyMatrix4(V.colliderMatrix),K.sub(G);let t=K.lengthSq();U.copy(V.position).sub(G);let n=K.dot(U);n<=0||(t<=n?U.sub(K):U.sub(K.multiplyScalar(n/t)));let r=U.length(),i=e.inside?e.radius-V.radius-r:r-V.radius-e.radius;i<0&&(U.multiplyScalar(1/r),e.inside&&U.negate()),V.distance=i}function se(e){let t=this._worldSpaceBoneLength;W.setFromMatrixPosition(this.bone.matrixWorld),V.position=e,V.radius=this.settings.hitRadius;let{colliderGroups:n}=this;for(let r=0;r<n.length;r++){let{colliders:i}=n[r];for(let n=0;n<i.length;n++){let{colliderMatrix:r,shape:a}=i[n];if(V.colliderMatrix=r,a.constructor===w?ae(a):a.constructor===C?oe(a):a instanceof q?a.measureContact(V):V.distance=a.calculateCollision(r,e,V.radius,U),V.distance<0){e.addScaledVector(U,-V.distance),e.sub(W);let n=e.length();e.multiplyScalar(t/n).add(W)}}}}function ce(e,t){let{children:n}=t;for(let t=0;t<n.length;t++){let r=n[t];e._relevantChildrenUpdated(r)||ce(e,r)}}var le=0,ue=()=>le;function de(e){le++,this._sortJoints();let t=this._ancestors;for(let e=0;e<t.length;e++)t[e].updateWorldMatrix(e===0,!1);let n=this._sortedJoints;for(let t=0;t<n.length;t++){let r=n[t];r.bone.updateMatrix(),r.bone.updateWorldMatrix(!1,!1),r.update(e),ce(this,r.bone)}}function fe(e){let n=e;if(typeof n._sortJoints!=`function`||typeof n._relevantChildrenUpdated!=`function`)throw t(/* @__PURE__ */ Error(`three-vrm's spring manager no longer holds the _sortJoints and _relevantChildrenUpdated of 3.5.5, which the engine's spring update reads.`),`SP0254`,void 0);n.update=de}function pe(e){let n=e;if(typeof n._collision!=`function`||typeof n._worldSpaceBoneLength!=`number`)throw t(/* @__PURE__ */ Error(`three-vrm's spring joint no longer holds the _collision and _worldSpaceBoneLength of 3.5.5, which the engine's spring collision replaces and reads.`),`SP0255`,void 0);n._collision=se}var me=/* @__PURE__ */ new WeakMap,he=.035,J=new h,Y=new h,ge=class extends q{offset=new h(0,he,0);ground;type=`ground`;feetFrame=-1;feetX=NaN;feetZ=NaN;feetHeight=NaN;measureContact(e){let{position:t}=e;if(J.setFromMatrixPosition(e.colliderMatrix),this.ground){let e=ue();(e!==this.feetFrame||J.x!==this.feetX||J.z!==this.feetZ)&&(this.feetFrame=e,this.feetX=J.x,this.feetZ=J.z,this.feetHeight=this.ground.getPointAt(J,Y).y),J.y+=this.ground.getPointAt(t,Y).y-this.feetHeight}e.direction.set(0,1,0),e.distance=t.y-J.y-e.radius}},X=.5,Z=new h,Q={point:Z,reach:NaN,target:new h,depth:NaN},$={point:new h,reach:X,target:new h,depth:NaN},_e=class extends q{hips;obstacles=null;type=`obstacles`;springReach=0;queriedAt=new h(NaN,NaN,NaN);hipsClearance=1/0;constructor(e){super(),this.hips=e}measureContact(e){let{obstacles:t}=this;if(e.distance=1/0,t){if(Z.setFromMatrixPosition(this.hips.matrixWorld),!Z.equals(this.queriedAt)){this.queriedAt.copy(Z);let e=this.springReach+X;Q.reach=e,this.hipsClearance=Math.min(re(t,Q)?Math.abs(Q.depth):1/0,e)}this.hipsClearance-e.position.distanceTo(this.queriedAt)>X||($.point=e.position,$.target=e.direction,re(t,$)&&(e.distance=$.depth-e.radius-he))}}};function ve(e,t){let n=new h,r=new h,i=t=>{let i=0;for(let a=t;a!==e.scene&&a.parent;){let e=a.parent;i+=a.getWorldPosition(n).distanceTo(e.getWorldPosition(r)),a=e}return i},a=i(t),o=0;for(let s of e.springBoneManager?.joints??[]){let{bone:e,child:c}=s,l=(c?c.getWorldPosition(r):e.localToWorld(r.copy(e.position).normalize().multiplyScalar(.07))).distanceTo(e.getWorldPosition(n)),u=!1;e.traverseAncestors(e=>{e===t&&(u=!0)});let d=i(e)+l;o=Math.max(o,u?d-a:d+a)}return o+.001}var ye=/* @__PURE__ */ new WeakMap,be=/* @__PURE__ */ new WeakMap;function xe(e,n){let r=be.get(e);if(!r)throw t(/* @__PURE__ */ Error(`The body was not prepared.`),`SP0258`,void 0);r.obstacles=n,r.queriedAt.setScalar(NaN)}function Se(e,n){let r=ye.get(e);if(!r)throw t(/* @__PURE__ */ Error(`The body was not prepared.`),`SP0258`,`followGround`);r.ground=n,r.feetX=NaN}var Ce=[{part:`upperArm`,from:y.LeftUpperArm,to:y.LeftLowerArm},{part:`upperArm`,from:y.RightUpperArm,to:y.RightLowerArm},{part:`lowerArm`,from:y.LeftLowerArm,to:y.LeftHand},{part:`lowerArm`,from:y.RightLowerArm,to:y.RightHand}],we=[y.LeftHand,y.RightHand],Te=/* @__PURE__ */ new WeakMap,Ee=/* @__PURE__ */ new WeakMap;function De({name:e,model:t}){return e?`Avatar "${e}"`:t?`The avatar ${t}`:`The avatar`}function Oe(e){return Ee.get(e)??`The avatar`}function ke(e,n){let r=Te.get(e);if(!r)throw t(/* @__PURE__ */ Error(`${Oe(e)} has no arm colliders to size: give its body armColliders, or leave armColliderRadii out.`),`SP0259`,`sizeArmColliders`);for(let{part:e,shape:t}of r)t.radius=n[e]}var Ae=e=>{r(e),e.register(e=>new b(e)),e.register(e=>new E(e))};function je(e){let t=new Set(e.expressionManager?.expressions.flatMap(({binds:e})=>e.flatMap(e=>e instanceof _?[e.material]:[]))),n=/* @__PURE__ */ new Map;e.scene.traverse(r=>{if(!(r instanceof u))return;let i=r.geometry.morphAttributes.position?.length??0,a=r=>{if(t.has(r))return r;let a=n.get(r)??/* @__PURE__ */ new Map([[i,r]]);n.set(r,a);let o=a.get(i);return o||(o=r.clone(),a.set(i,o),e.materials?.includes(r)&&e.materials.push(o)),o};r.material=Array.isArray(r.material)?r.material.map(a):a(r.material)})}function Me(e){let t=[];e.scene.traverse(e=>{e instanceof u&&t.push(e)});for(let e of t){if(!Array.isArray(e.material))continue;let[t,n]=e.material;if(!(n instanceof g&&n.isOutline)||n.transparent)continue;let r=e.clone(!1);r.name=`${e.name} (Outline)`,r.material=n,r.castShadow=!1,r.morphTargetInfluences=e.morphTargetInfluences,e.material=t,t.side!==n.side&&(t.shadowSide=s),e.parent?.add(r)}}var Ne=`outlineOffset *= vViewPosition.z / projectionMatrix[ 1 ].y;`,Pe=`outlineOffset *= ( isOrthographic ? 1.0 : vViewPosition.z ) / projectionMatrix[ 1 ].y;`;function Fe(e){e.scene.traverse(e=>{if(e instanceof u){for(let n of[e.material].flat())if(n instanceof g&&n.isOutline&&!n.vertexShader.includes(Pe)){if(!n.vertexShader.includes(Ne))throw t(/* @__PURE__ */ Error(`three-vrm's outline shader no longer holds the width line this rewrites`),`SP0260`,void 0);n.vertexShader=n.vertexShader.replace(Ne,Pe)}}})}function Ie(e){let t=/* @__PURE__ */ new Map;e.scene.traverse(e=>{if(!(e instanceof u)||!e.castShadow||[e.material].flat().some(({alphaTest:e})=>e>0))return;let{normal:n,position:r,color:i}=e.geometry.morphAttributes,a=[e instanceof m,r?.length??0,!!n,!!i].join(),o=t.get(a);o||(o=new d,t.set(a,o)),e.customDepthMaterial=o})}function Le(e,t){let n=/* @__PURE__ */ new Map;for(let[t,r]of Object.entries(e.humanoid.rawHumanBones))r&&n.set(r.node,t);let r=e=>{let r=e.colliders[0]?.parent;for(;r&&!n.has(r);)r=r.parent;let i=r?n.get(r):void 0;return i!==void 0&&t.includes(i)},i=/* @__PURE__ */ new Set;for(let t of e.springBoneManager?.joints??[]){for(let e of t.colliderGroups)r(e)||i.add(e);t.colliderGroups=t.colliderGroups.filter(r)}for(let{colliders:e}of i)for(let t of e)t.removeFromParent()}function Re(r,i){let a=me.get(r);if(a)return a;let s=De(i);if(Ee.set(r,s),T.removeUnnecessaryVertices(r.scene),T.combineSkeletons(r.scene),je(r),r.scene.traverse(e=>{e.castShadow=!0,e.receiveShadow=!0}),n(r.scene),r.lookAt){let e=new D(r.lookAt);e.name=`vrm-look-at`,r.scene.add(e)}i.springColliderBones&&Le(r,i.springColliderBones);let c=new ge;ye.set(r,c);let l=new x(c),u=r.humanoid.getRawBoneNode(y.Hips);if(!u)throw t(/* @__PURE__ */ Error(`${s} has no hips bone to reach its springs from: export it as a humanoid VRM with its hips mapped.`),`SP0526`,`prepareVrm`);let d=new _e(u);be.set(r,d);let f=new x(d);r.scene.add(l,f);let p={colliders:[l,f]};j(r.humanoid),r.springBoneManager&&fe(r.springBoneManager);for(let e of r.springBoneManager?.joints??[])e.colliderGroups.includes(p)||e.colliderGroups.push(p),pe(e);if(r.scene.scale.setScalar(i.scale),r.scene.rotation.y=(i.rotateY??0)+(r.meta.metaVersion===`0`?0:e),r.scene.updateWorldMatrix(!0,!0),d.springReach=ve(r,u),i.armColliders){let e=e=>{let n=r.humanoid.getRawBoneNode(e);if(!n)throw t(/* @__PURE__ */ Error(`${s} has no ${e} bone for its arm colliders: map the bone in the VRM's humanoid, or leave armColliders out of its body.`),`SP0527`,`prepareVrm`);return n},n=[],a=[],o=new h;for(let{part:t,from:r,to:i}of Ce){let s=e(r);s.worldToLocal(e(i).getWorldPosition(o));let c=new C({tail:o.clone()}),l=new x(c);s.add(l),n.push({part:t,shape:c}),a.push(l)}for(let t of we){let r=new w,i=new x(r);e(t).add(i),n.push({part:`hand`,shape:r}),a.push(i)}Te.set(r,n);let c={colliders:a},{bonePrefix:l}=i.armColliders;ke(r,i.armColliders.radii);let u=0;for(let e of r.springBoneManager?.joints??[])e.bone.name.startsWith(l)&&(u++,e.colliderGroups.includes(c)||e.colliderGroups.push(c));if(!u)throw t(/* @__PURE__ */ Error(`${s} has no spring joint whose bone starts with "${l}", so its arm colliders hold off no cloth: set armColliders.bonePrefix to the start of its cloth bones' names.`),`SP0528`,`prepareVrm`)}let m=new o().setFromObject(r.scene),g={height:m.max.y,center:m.getCenter(new h)};return Me(r),Fe(r),Ie(r),me.set(r,g),g}var ze=1;function Be(e,n){let r=(n,{out:r,forward:i})=>{let a=n===y.LeftUpperArm?-1:1,o=e.humanoid.getNormalizedBoneNode(n);if(!o)throw t(/* @__PURE__ */ Error(`${Oe(e)} has no ${n} bone to spread: map the bone in the VRM's humanoid.`),`SP0270`,void 0);let s=new f().setFromEuler(new c(0,a*i,Math.sign(o.position.x)*r)).toArray();return new p(`${o.name}.quaternion`,[0,ze],[...s,...s])};return new a(`arm-spread`,ze,[r(y.LeftUpperArm,n.left),r(y.RightUpperArm,n.right)],i)}export{Re as a,xe as i,Ae as n,ke as o,Se as r,M as s,Be as t};
@@ -0,0 +1,3 @@
1
+ import{i as e}from"./CU0epHFG.js";import{Jt as t,Qt as n,Ut as r,Xt as i,Yt as a,cc as o,fc as s,ic as c,qt as l,sc as u,tn as d}from"./-MLBVTaO.js";import{_n as f}from"./V70ADx0g.js";import{n as p,s as m}from"./BrfUaL46.js";import{st as h,y as g}from"./Cq6VqPHb.js";import{_,f as v,r as y}from"./Bydoy8wO.js";import{t as b}from"./BzaiZux2.js";import{n as x,r as S}from"./BJclgjKG.js";import{BufferAttribute as C,BufferGeometry as w,Color as T,DoubleSide as E,MathUtils as D,Matrix4 as O,Mesh as k,Quaternion as ee,Ray as A,Vector3 as j}from"three";import{mergeGeometries as te}from"three/addons/utils/BufferGeometryUtils.js";import{cloneElement as ne,use as re,useEffect as M,useId as ie,useLayoutEffect as ae,useMemo as N,useRef as P}from"react";import{jsx as F}from"react/jsx-runtime";function I({model:e,placements:t,material:n=o(e)}){try{let{scene:r}=_(c(e)),{meshes:i,lift:a}=N(()=>{r.updateMatrixWorld(!0);let t=[];return r.traverse(e=>{e instanceof k&&t.push(e)}),{meshes:t,lift:u(e)??s(r)}},[e,r]),o=P(null),l=re(b),d=`${e}:${ie()}`;return M(()=>{let n=o.current;if(n)return g({id:d,name:e,kind:h.Scatter,count:t.length,readOnlyReason:`Placed by the game's code`,parentId:l?.id??null,object:n,placements:t})},[d,e,t,l]),/* @__PURE__ */ F(`group`,{ref:o,name:e,children:i.map(e=>/* @__PURE__ */ F(V,{mesh:e,lift:a,placements:t,material:n},e.uuid))})}catch(e){throw m(`InstancedModelView`,e)}}var L=new O,R=new j,z=new ee,B=new j,oe=new j(0,1,0),se=new T,ce=new T(1,1,1);function V({mesh:e,lift:t,placements:n,material:r}){try{let i=P(null),a=N(()=>v(r,e.material),[r,e]);return ae(()=>{let r=i.current;if(!r)return;let a=r.instanceColor!==null||n.some(e=>e.tint!==void 0);n.forEach((n,i)=>{let[o,s,c]=n.position,l=n.scale??1;typeof l==`number`?B.setScalar(l):B.fromArray(l),R.set(o,s+t*B.y,c),z.setFromAxisAngle(oe,n.turn??0),L.compose(R,z,B),r.setMatrixAt(i,L.multiply(e.matrixWorld)),e.morphTargetInfluences&&r.setMorphAt(i,e),a&&r.setColorAt(i,n.tint===void 0?ce:se.set(n.tint))}),r.instanceMatrix.needsUpdate=!0,r.instanceColor&&(r.instanceColor.needsUpdate=!0),r.morphTexture&&(r.morphTexture.needsUpdate=!0),r.computeBoundingSphere()},[e,t,n,a]),/* @__PURE__ */ F(`instancedMesh`,{ref:i,args:[e.geometry,a,n.length],castShadow:!0,receiveShadow:!0,children:/* @__PURE__ */ F(`meshDepthMaterial`,{attach:`customDepthMaterial`})})}catch(e){throw m(`MeshBatch`,e)}}I.displayName=`InstancedModelView`,V.displayName=`MeshBatch`;function H({model:t,placements:n,material:r}){try{return e()?null:/* @__PURE__ */ F(I,{model:t,placements:n,material:r})}catch(e){throw m(`InstancedModel`,e)}}H.displayName=`InstancedModel`;var{schema:U}=t;function W({track:e,distance:n=0,lateral:r=0,enabled:i=!0,sideSpeed:o=U.sideSpeed,sideAcceleration:s=U.sideAcceleration,sideResponse:c=U.sideResponse,jumpHeight:u=U.jumpHeight,gravity:d=U.gravity,fallScale:f=U.fallScale,drag:p=U.drag,friction:h=U.friction,rideHeight:g=U.rideHeight}){try{let m={enabled:i,sideSpeed:o,sideAcceleration:s,sideResponse:c,jumpHeight:u,gravity:d,fallScale:f,drag:p,friction:h,rideHeight:g};x(l,{distance:n,lateral:r,...m}),S(t,m),S(a,{track:e});let _=y(),v=P({distance:n,lateral:r});return M(()=>{_.isAlive()&&_.set(t,v.current)},[_]),null}catch(e){throw m(`TrackMover`,e)}}W.displayName=`TrackMover`;var G=96,K=512,le=2,q=20,ue=2,de=30,fe=90,pe=[[.009,.45],[.019,.28],[.038,.18],[.068,.09]],J={metres:90,x:.0016,z:.0013},me=1.07,he=2.5;function ge(e,t){let n=e+J.metres*Math.sin(t*J.x+.7),r=t+J.metres*Math.sin(e*J.z-2.1),i=0;for(let[e,t]of pe)i+=t*(1-Math.abs(Math.sin(n*e+1.3)))*(1-Math.abs(Math.sin(r*e*me-.4)));return Math.min(1,i*he)}function _e(e,t,n,{height:r=340,radius:i=1200}){let a=new Float64Array(n.length*6);n.forEach(({x:e,y:t,z:n,slope:r,outward:i},o)=>a.set([e,n,t,r,i?.x??NaN,i?.z??NaN],o*6));let o=new Float64Array(n.length),s=(e,n)=>{let i=t(e,n);if(i!==null)return i;let s=1/0;for(let t=0;t<o.length;t++){let r=t*6,i=(a[r]-e)**2+(a[r+1]-n)**2;o[t]=i,i<s&&(s=i)}let c=Math.sqrt(s),l=Math.min(ue*c,de),u=Math.max(l*(2*c+l),1e-12),d=0,f=0;for(let t=0;t<o.length;t++){let r=(o[t]-s)/u;if(r>=1)continue;let i=(1-r)**2,c=t*6,l=a[c+3],p=l===0?0:Number.isNaN(a[c+4])?Math.sqrt(o[t]):Math.max(0,(e-a[c])*a[c+4]+(n-a[c+1])*a[c+5]);d+=i*(a[c+2]+l*q*(1-Math.exp(-p/q))),f+=i}let p=r>0?r*(1-Math.exp(-.42*c/r)):0;return d/f+D.smoothstep(c,0,fe)*p*ge(e,n)},c=new Float32Array(G*K*3),l=new Uint32Array(95*K*6);for(let t=0;t<G;t++){let n=i*(t/95)**le;for(let r=0;r<K;r++){let i=r/K*2*Math.PI,a=e.x+Math.sin(i)*n,o=e.z+Math.cos(i)*n,u=t*K+r;if(c.set([a,s(a,o),o],u*3),t===95)continue;let d=t*K+(r+1)%K;l.set([u,u+K,d+K,u,d+K,d],u*6)}}let u=new w;return u.setAttribute(`position`,new C(c,3)),u.setIndex(new C(l,1)),u.computeVertexNormals(),u}var Y=.25,ve=1,ye=.1,be=Math.log(10),xe=.01,Se=6,Ce=8,we=4;function Te(e,t){return e.map(({across:e,from:n=`center`})=>n===`left`?e-t:n===`right`?e+t:e)}function X(e,t,n){let r=t.length-1;if(n<=t[0])return e[0].height??0;if(n>=t[r])return e[r].height??0;let i=t.findIndex(e=>e>n),a=D.inverseLerp(t[i-1],t[i],n);return D.lerp(e[i-1].height??0,e[i].height??0,a)}function Z(e,t){let n=[];return e.forEach((r,i)=>{if(i===e.length-1){n.push({lateral:t[i],height:r.height??0,wall:!1});return}let a=r.spans??1;for(let o=0;o<a;o++)n.push({lateral:D.lerp(t[i],t[i+1],o/a),height:D.lerp(r.height??0,e[i+1].height??0,o/a),wall:r.wall??!1})}),n}function Ee(e,t,n){let r=Array.from({length:n},()=>[]);for(let n=0;n<e.length-1;n++){let i=r[e[n]];for(let e=0;e<t-1;e++){let r=n*t+e,a=r+t;i.push(r,r+1,a,r+1,a+1,a)}}let i=0,a=r.map((e,t)=>{let n={start:i,count:e.length,materialIndex:t};return i+=e.length,n});return{indices:Uint32Array.from(r.flat()),groups:a}}function De({track:e,section:t,spacing:n=.5,zones:r=[],lift:i,paint:a,tile:o=1,terrain:s}){let c=Math.max(1,Math.round(e.length/n)),l=Array.from({length:c+1},(n,r)=>{let i=r/c*e.length,a=e.frameAt(i,d());return{frame:a,distance:i,laterals:Te(t,a.halfWidth)}}),u=(e,n,r,a=0,o=X(t,e.laterals,n))=>{let{position:s,right:c,up:l,tangent:u}=e.frame;return r.copy(s).addScaledVector(c,n).addScaledVector(l,o).addScaledVector(u,a),i&&(r.y+=i(n,e.distance+a,r)),r},f=Z(t,l[0].laterals).length,p=new Float32Array(l.length*f*3),m=new Float32Array(l.length*f*3),h=new Float32Array(l.length*f*2),g=a&&new Float32Array(l.length*f*3),_=new j,[v,y,b,x]=[0,1,2,3].map(()=>new j),S=l.map(({frame:e,distance:t})=>({...e,distance:t})),T=[];l.forEach((e,n)=>{let r=Z(t,e.laterals),i=r.map(({lateral:e})=>e);je(S,e,r,t),r.forEach((t,s)=>{let{lateral:c,height:l}=t,d=n*f+s;c!==i[s]&&T.push(d),u(e,c,_,0,l).toArray(p,d*3);let S=r[s-1],C=r[s+1];t.wall&&C&&Math.hypot(C.lateral-c,C.height-l)>1e-6?(u(e,c,v,0,l),u(e,C.lateral,y,0,C.height)):C?!S||S.wall?(u(e,c,v,0,l),u(e,c+Y,y)):(u(e,c-Y,v),u(e,c+Y,y)):(u(e,c-Y,v),u(e,c,y,0,l)),u(e,c,b,-.25,l),u(e,c,x,Y,l),y.sub(v),x.sub(b),y.cross(x).normalize().toArray(m,d*3),h.set([c/o,e.distance/o],d*2),a&&g&&g.set(a(c,e.distance),d*3)})});let{indices:E,groups:D}=Ee(l.map(({distance:t})=>Math.max(0,r.findIndex(n=>e.zoneWeight(t,n)>.5))),f,Math.max(1,r.length)),O=new w;O.setAttribute(`position`,new C(p,3)),O.setAttribute(`normal`,new C(m,3)),O.setAttribute(`uv`,new C(h,2)),g&&O.setAttribute(`color`,new C(g,3)),O.setIndex(new C(E,1));for(let e of D)O.addGroup(e.start,e.count,e.materialIndex);Oe(O,l,f,T),O.userData.zones=r;let k=s?Ae(O,ke(O,e,l,f,s),o):O;return k.computeBoundingSphere(),k}function Oe(e,t,n,i){if(!i.length)return;let a=e.getAttribute(`position`),o=r(e);e.computeBoundingBox();let s=e.boundingBox.max.y+1,c=new A(new j,new j(0,-1,0)),l=i.map(e=>{let r=t[Math.floor(e/n)].distance,i=a.getY(e);return c.origin.set(a.getX(e),s,a.getZ(e)),o.raycast(c,E).filter(({face:e})=>Math.abs(t[Math.floor(e.a/n)].distance-r)>20).map(({point:e})=>e.y).sort((e,t)=>Math.abs(e-i)-Math.abs(t-i))[0]??i});i.forEach((e,t)=>a.setY(e,l[t]))}function ke(e,t,n,i,a){let o=e.getAttribute(`position`),s=e=>new j().fromBufferAttribute(o,e),c=({frame:e},t)=>(t.x-e.position.x)*e.right.x+(t.z-e.position.z)*e.right.z,l=n.map((e,t)=>[[0,1],[i-1,i-2]].map(([n,r])=>{let a=s(t*i+n),o=s(t*i+r),l=Math.hypot(a.x-o.x,a.z-o.z);return{...a,slope:l>1e-6?(a.y-o.y)/l:0,outward:l>1e-6?{x:(a.x-o.x)/l,z:(a.z-o.z)/l}:void 0,across:Math.abs(c(e,a))}})),u=l.flat(),d=[0,n.length-1].flatMap(e=>Array.from({length:i},(t,n)=>({...s(e*i+n),slope:0}))),f=r(e);e.computeBoundingBox();let p=e.boundingBox.max.y+1,m=new A(new j,new j(0,-1,0));return _e(t.pointAt(t.length/2,0),(e,r)=>{m.origin.set(e,p,r);let a=f.raycastFirst(m,E);if(!a?.face)return null;let o=Math.floor(a.face.a/i),s=n[o],d=c(s,a.point)<0?0:1,h=Math.sqrt(Math.min(...u.map(({x:t,z:n})=>(t-e)**2+(n-r)**2))),g=Math.min(s.distance,t.length-s.distance);return a.point.y-Ce*D.smoothstep(h,0,l[o][d].across-s.frame.halfWidth)*D.smoothstep(g,0,we)},[...u,...d],a)}function Ae(e,t,n){let r=t.getAttribute(`position`),i=Float32Array.from({length:r.count*2},(e,t)=>r.getComponent(t>>1,t%2*2)/n);if(t.setAttribute(`uv`,new C(i,2)),e.getAttribute(`color`)){let e=new Float32Array(r.count*3).fill(1);t.setAttribute(`color`,new C(e,3))}let a=te([e,t]);for(let{start:t,count:n,materialIndex:r}of e.groups)a.addGroup(t,n,r);let o=e.userData.zones;return a.userData.zones=[...o.length?o:[``],`terrain`],a.addGroup(e.getIndex().count,t.getIndex().count,a.userData.zones.length-1),e.dispose(),t.dispose(),a}function je(e,t,n,r){let{frame:i}=t,a=new j,o=n=>(a.copy(i.position).addScaledVector(i.right,n).addScaledVector(i.up,X(r,t.laterals,n)),Math.abs(Me(e,a).distance-t.distance)>20);for(let e of[-1,1]){let t=n.filter(({lateral:t})=>e*t>i.halfWidth).sort((t,n)=>e*(t.lateral-n.lateral)),r=i.halfWidth,a=1/0;for(let{lateral:n}of t){let t=e*n;if(!o(e*t)){r=t;continue}let i=t;for(let t=0;t<Se;t++){let t=(r+i)/2;o(e*t)?i=t:r=t}a=r;break}for(let n of t)n.lateral=e*Math.min(e*n.lateral,a)}}function Me(e,t){let n=e[1].distance-e[0].distance,r=({position:e,tangent:n})=>(t.x-e.x)*n.x+(t.z-e.z)*n.z,i=e[0],a=1/0,o,s=1/0;for(let c of e){let{position:e}=c,l=(e.x-t.x)**2+(e.z-t.z)**2;l<a&&(i=c,a=l),l<s&&Math.abs(r(c))<=n&&(o=c,s=l)}let c=o??i;return{ring:c,distance:c.distance+r(c)}}function Ne(e,t){let n=e[1].distance-e[0].distance,r=e.map(e=>{let{position:r,tangent:i}=e,[a,o]=[t.x-r.x,t.z-r.z],s=a*i.x+o*i.z,c=Math.abs(o*i.x-a*i.z),l=n+ye*c;return{ring:e,along:s,score:-(c+Math.max(0,Math.abs(s)-l))/ve-be*Math.min(1,Math.abs(s)/l)}}),i=Math.max(...r.map(({score:e})=>e)),a=r.flatMap(({ring:e,along:t,score:n})=>{let r=Math.exp(n-i)-xe;return r>0?[{ring:e,along:t,weight:r}]:[]}),o=a.reduce((e,{weight:t})=>e+t,0);return a.map(({ring:e,along:t,weight:n})=>({ring:e,distance:e.distance+t,weight:n/o}))}var Pe=.618033988749895,Fe=.5;function Ie({track:e,models:t,placements:n,surface:r,clear:i=0}){let a=Le(e,r),o=Object.keys(t),s=o.reduce((e,n)=>e+t[n],0),c=o.filter(e=>t[e]>0).at(-1),l=e=>{if(!c)throw p(/* @__PURE__ */ Error(`A track scatter's models need a weight above 0.`),`SP0256`,`placeTrackScatter`);let n=e*s;return o.find(e=>(n-=t[e])<0)??c},u=d(),m=(t,n)=>{let{halfWidth:r}=e.frameAt(n,u),i={center:0,left:-r,right:r};return t.across+i[t.from??`center`]},h=[];n.filter(e=>`at`in e).forEach((e,t)=>{let n=a(e.at,m(e,e.at),e.height);n&&h.push({model:e.model??l(f(0,t,3)),position:n,turn:e.turn??f(0,t,2)*2*Math.PI,scale:e.scale??1})});let g=[...h],_=([e,,t])=>g.some(({position:n})=>Math.hypot(n[0]-e,n[2]-t)<i),v=0;for(let t of n){if(`at`in t)continue;let{spacing:n,start:r=0,end:o=e.length,jitter:s=0}=t,{slide:c=0,size:u=[1,1],stretch:d=[1,1]}=t;if(!(n>0))throw p(/* @__PURE__ */ Error(`A track scatter row's spacing must be above 0.`),`SP0257`,`placeTrackScatter`);if(!(o>r))continue;let g=Math.max(1,Math.round((o-r)/n));for(let e=0;e<g;e++,v++){let n=(f(1,v,0)-.5)*c,p=r+(e+.5+n)/g*(o-r),y=m(t,p),b=y<0?-1:1,x=y+b*(f(1,v,1)-.5)*s,S=a(p,x,t.height);if(S&&_(S)&&(S=a(p,x+b*i,t.height)),!S||_(S))continue;let C=D.lerp(...u,v*Pe%1);h.push({model:l(f(1,v,3)),position:S,turn:f(1,v,2)*2*Math.PI,scale:[C,C*D.lerp(...d,f(1,v,4)),C]})}}return h}function Le(e,t){let n=Math.max(1,Math.round(e.length/Fe)),i=Array.from({length:n+1},(t,r)=>{let i=r/n*e.length;return{...e.frameAt(i),distance:i}}),a=t&&r(t),o=new A(new j,new j(0,-1,0));return(t,n,r=0)=>{let s=e.pointAt(t,n);if(Math.abs(Me(i,s).distance-t)>20)return null;if(a){o.origin.set(s.x,s.y+1e3,s.z);let e=a.raycastFirst(o,E);if(!e)return null;s.y=e.point.y}return[s.x,s.y+r,s.z]}}function Re({track:e,models:t,placements:n,surface:r,clear:i,tint:a}){try{return N(()=>{let o=Ie({track:e,models:t,placements:n,surface:r,clear:i}),s=new Map(Object.keys(t).map(e=>[e,[]]));for(let e of o){let t=s.get(e.model)??[];s.set(e.model,t),t.push(a?{...e,tint:a(t.length,e.model)}:e)}return[...s]},[e,t,n,r,i,a]).map(([e,t])=>/* @__PURE__ */ F(H,{model:e,placements:t},e))}catch(e){throw m(`TrackScatter`,e)}}Re.displayName=`TrackScatter`;function Q({geometry:e,materials:t,receiveShadow:n}){try{let r=e.userData.zones??[],i=Object.values(t)[0];return/* @__PURE__ */ F(`mesh`,{geometry:e,receiveShadow:n,children:(r.length>0?r:[``]).map((e,n)=>ne(t[e]??i,{key:e,attach:`material-${n}`}))})}catch(e){throw m(`TrackSurfaceView`,e)}}Q.displayName=`TrackSurfaceView`;function ze(e){try{let{materials:t,receiveShadow:n=!0}=e;return`geometry`in e?/* @__PURE__ */ F(Q,{geometry:e.geometry,materials:t,receiveShadow:n}):/* @__PURE__ */ F(Be,{...e,receiveShadow:n})}catch(e){throw m(`TrackSurface`,e)}}function Be({materials:e,receiveShadow:t,track:n,section:r,spacing:i,lift:a,paint:o,tile:s,terrain:c}){try{let l=Object.keys(e).filter(e=>e!==`terrain`).join(`
2
+ `),u=N(()=>De({track:n,section:r,spacing:i,lift:a,paint:o,tile:s,terrain:c,zones:l.split(`
3
+ `)}),[n,r,i,a,o,s,c,l]);return M(()=>()=>u.dispose(),[u]),/* @__PURE__ */ F(Q,{geometry:u,materials:e,receiveShadow:t})}catch(e){throw m(`BuiltTrackSurface`,e)}}ze.displayName=`TrackSurface`,Be.displayName=`BuiltTrackSurface`;var{schema:$}=n;function Ve({track:e,start:t,end:r,left:o=$.left,right:s=$.right,bottom:c=$.bottom,top:l=$.top,lap:u=!1}){try{let d={start:t,end:r,left:o,right:s,bottom:c,top:l,lap:u};return x(i,d),S(n,d),S(a,{track:e}),null}catch(e){throw m(`TrackTrigger`,e)}}Ve.displayName=`TrackTrigger`;export{De as a,H as c,Ie as i,ze as n,Ne as o,Re as r,W as s,Ve as t};
@@ -0,0 +1 @@
1
+ import{Bi as e,Bu as t,Fi as n,Ii as r,L as i,N as a,R as o,V as s,Xf as c,dt as l,i as u,lt as d,mo as f,mu as ee,sa as p,tc as m,vt as h}from"./-MLBVTaO.js";import{In as g,Kn as _,Rn as v,Wn as te,Xn as y,_t as b,br as x,er as S,fn as C,rr as w,un as T}from"./V70ADx0g.js";import{Quaternion as E,Vector2 as D,Vector3 as ne}from"three";import{$internal as O,createQuery as k}from"koota";import{stepsPerSecond as A}from"@spawnite/schema";var j=/* @__PURE__ */ new Set([`stuck`]);function M(e){return te.has(e)||j.has(e)||e===`authority`}var N=/* @__PURE__ */ new Set([y,S,g]),P=/* @__PURE__ */ new Set([`path`]),F=[[`health`,t]],I=32,L=`Prediction check:`,R=null,z=Math.random,B=Date.now;function V(e){R=e,z=Math.random,B=Date.now,Math.random=U,Date.now=W}function H(){R=null,Math.random=z,Date.now=B}function U(){return R?.reportHiddenInput(`Math.random`),z()}function W(){return R?.reportHiddenInput(`Date.now`),B()}p(e=>{R?.world===e&&R.reportHiddenInput(`random(world)`)});var G=!1;function K(e,t){if(t instanceof D||t instanceof ne||t instanceof E){let n=Array.isArray(e)?e:[];return(n[0]!==t.x||n[1]!==t.y||!(t instanceof D)&&n[2]!==t.z||t instanceof E&&n[3]!==t.w)&&(G=!0),t.toArray(n)}if(t instanceof Map||t instanceof Set)return K(e,[...t]);if(Array.isArray(t)){let n=Array.isArray(e)?e:[];(!Array.isArray(e)||n.length!==t.length)&&(G=!0),n.length=t.length;for(let e=0;e<t.length;e++)n[e]=K(n[e],t[e]);return n}if(typeof t==`function`)return e;if(!m(t))return Object.is(e,t)||(G=!0),t;let n=m(e)?e:{};n!==e&&(G=!0);for(let e in n)e in t||(delete n[e],G=!0);for(let e in t)n[e]=K(n[e],t[e]);return n}function q(e,t,n,r,i){let a=e[t];if(!m(n)||!m(a))return G=!1,e[t]=K(a,n),G?r:null;let o=null;for(let e in a)e in n||(delete a[e],o??=`${r}.${e}`);for(let e in n){if(G=!1,a[e]=K(a[e],n[e]),!G||o!==null)continue;let t=`${r}.${e}`;i?.has(t)||(o=t)}return o}function J(e,t){if(t!==void 0)return t;let n=Reflect.get(e,`schema`),r=typeof n==`function`?n():n,i=C(r)?Object.keys(r):[];return i.length>0?`a trait made with koota's trait(), with the fields ${i.join(`, `)}`:`a tag made with koota's trait()`}function Y(e){let t=e.search(/[.[]/);return t===-1?e:e.slice(0,t)}var X=60,Z=class{character;kept={};suspectKept={};suspects=/* @__PURE__ */ new Map;derived=/* @__PURE__ */ new Set;constructor(e){this.character=e}},Q=class{world;traits=/* @__PURE__ */ new Map;system=null;watched=null;causes=/* @__PURE__ */ new Map;findings=/* @__PURE__ */ new Map;constructor(e){this.world=e}reportFinding(e,t,n){let r=this.causes.get(t);r===void 0&&(r=`${L} ${n()}`,this.causes.set(t,r),console.error(r));let i=this.findings.get(e);i?(i.count++,i.latest=r):this.findings.set(e,{check:e,count:1,latest:r})}readKept(e){let t=this.traits.get(e);if(t)return t;let n=o(e);return t={trait:e,key:`${n??`trait`}#${this.traits.size}`,name:n,label:J(e,n),kind:this.classify(e,n)},this.traits.set(e,t),t}reclassify(){for(let e of this.traits.values())e.kind=this.classify(e.trait,e.name)}syncTraits(e,t,n){let{watched:r}=this;if(!r)return;let i=this.world[O].entityTraits.get(r.character);if(i)for(let a of i){let i=this.readKept(a);if(t!==null&&i.kind!==t)continue;let o=r.character.get(a),s=q(e,i.key,o===void 0||o,i.name??i.label,r.derived);s!==null&&n&&n(i,s)}}notePredictedWrite=(e,t)=>this.checkPredictedWrite(e,t);syncPredicted(e){let{watched:t}=this;t&&(this.syncTraits(t.kept,`predicted`,e?this.notePredictedWrite:null),this.dropRemovedPredicted(e))}dropRemovedPredicted(e){let{watched:t}=this;if(t)for(let n of this.traits.values())n.kind===`predicted`&&n.key in t.kept&&!t.character.has(n.trait)&&(delete t.kept[n.key],e&&this.checkPredictedWrite(n,n.label))}readFindings(){return[...this.findings.values()].map(e=>({...e}))}};function re(e){return e.name===void 0?`Define it with defineTrait(name, schema, { predicted: true })`:`Declare "${e.name}" with { predicted: true } in its defineTrait options`}var ie=class extends Q{session;predictedNames=null;her=null;aliveBefore=0;spawned=0;spawn;countSpawn;roomHealth=/* @__PURE__ */ new Map;updates=0;corrected=/* @__PURE__ */ new Set;pressBefore=/* @__PURE__ */ new Map;inputSet=!1;steps=0;constructor(e,t){super(e),this.session=t,e.onChange(ee,e=>{this.system&&e===this.watched?.character&&(this.inputSet=!0)}),this.spawn=e.spawn,this.countSpawn=(...t)=>(this.spawned++,this.spawn.apply(e,t))}classify(e,t){return N.has(e)?`page-owned`:t!==void 0&&this.session.predicted.has(t)?`predicted`:t!==void 0&&M(t)?`page-owned`:s(e)?`room-decided`:`page-only`}checkPredictedWrite(e,t){let{system:n,watched:r}=this;if(!n||!r||l(n)?.predicted===!0||this.inputSet&&e.name!==void 0&&P.has(e.name))return;let{name:i}=n;this.reportFinding(`predicted-write`,`predicted-write|${i}|${e.key}`,()=>`${i} changed her predicted ${t} on her page, and it is not a predicted system, so her page's replay after a correction never repeats the write. Write it in a system marked predicted: true, and put an effect the room starts, such as a slow, in a streamed trait that a predicted system reads.`)}noteStepChange=(e,t)=>{let{watched:n}=this;n&&e.kind!==`predicted`&&e.kind!==`page-owned`&&!n.suspects.has(e.trait)&&n.suspects.set(e.trait,{kept:e,path:t,seenStep:this.steps})};beginCharacter(e){let{watched:t}=this;if(!t)return;t.derived=r(t.character,e),this.syncTraits(t.kept,null,null),this.dropRemovedPredicted(!1);let{character:n}=t;for(let{kept:e}of t.suspects.values())n.has(e.trait)&&q(t.suspectKept,e.key,n.get(e.trait)??!0,e.label)}checkCharacter(e){this.syncPredicted(!0),this.watchSuspects(e)}endCharacter(){let{watched:e}=this;e&&this.syncTraits(e.kept,null,this.noteStepChange)}watchSuspects(e){let{watched:t}=this;if(!t||t.suspects.size===0)return;let{character:n}=t;for(let{kept:r}of t.suspects.values()){if(!n.has(r.trait))continue;let i=n.get(r.trait),a=q(t.suspectKept,r.key,i===void 0||i,r.name??r.label);a!==null&&this.checkWrite(e,r,a)}}checkWrite(e,t,n){let r=l(e)?.predicted===!0,{name:i}=e;if(t.kind===`room-decided`)return this.reportFinding(`room-state-write`,`room-state|${i}|${t.key}`,()=>`${r?`the predicted system ${i}`:i} changed ${n} on her character on her page, and the room decides ${t.label}, so her page shows a value the room never made. Write it only where step.authoritative is true${r?``:`, or run ${i} on the room alone`}.`);r&&this.reportFinding(`character-system-write`,`character-write|${i}|${t.key}`,()=>`the predicted system ${i} changed ${t.name===void 0?t.label:n} on her character, and that trait is not predicted, so her page's replay after a correction runs ${i} again from a value it never rewound. ${re(t)}.`)}expireSuspects(){for(let e of this.her?.suspects.values()??[]){if(this.steps-e.seenStep<X)continue;let{kept:t,path:n}=e;t.kind===`room-decided`&&this.reportFinding(`room-state-write`,`room-state|${t.key}`,()=>`a system on her page changed ${n} on her character, and the room decides ${t.label}, so her page shows a value the room never made. Write it only where step.authoritative is true${this.listQueryingSystems(Y(n))}.`),e.seenStep=this.steps}}countAlive(){return this.world[O].entityIndex.aliveCount}beginStep(){let{character:e}=this.session,t=e?.isAlive()?e:null;t&&this.her?this.her.character=t:t&&(this.her=new Z(t)),this.watched=t?this.her:null,this.predictedNames!==this.session.predicted&&(this.predictedNames=this.session.predicted,this.reclassify()),this.beginCharacter(this.session.predicted)}beforeSystem(e){if(!this.watched)return;let t=l(e);t?.runsOn!==w.Server&&(this.system=e,this.inputSet=!1,t?.runsOn!==w.Client&&(this.aliveBefore=this.countAlive(),this.spawned=0,this.world.spawn=this.countSpawn),t?.predicted&&t.plugin!==h.name&&V(this))}afterSystem(e){this.system===e&&(R===this&&H(),l(e)?.runsOn!==w.Client&&(this.world.spawn=this.spawn,this.checkSpawns(e)),this.checkCharacter(e),this.system=null)}endStep(){this.endCharacter(),this.expireSuspects(),this.steps++,this.watched=null}checkSpawns(e){let t=this.countAlive()-this.aliveBefore,n=Math.max(this.spawned,t),r=n-t,{name:i}=e;n>0&&this.reportFinding(`spawn`,`spawn|${i}`,()=>`${i} spawned an entity on her page, and it runs on the room too, so her page holds a copy of what the room makes and streams, and a predicted system spawns it again on each replay. Spawn only where step.authoritative is true, and draw what only her page shows from a system with runsOn: RunContext.Client.`),r>0&&this.reportFinding(`spawn`,`destroy|${i}`,()=>`${i} destroyed ${this.findDestroyed()} on her page, and it runs on the room too, so her page drops what the room still holds. Destroy only where step.authoritative is true: the room's stream takes the entity off her page.`)}findDestroyed(){for(let[e,t]of this.world.get(v)??[])if(!t.isAlive())return`the streamed entity ${e}`;return`an entity`}reportHiddenInput(e){let t=this.system?.name??`a predicted system`;this.reportFinding(`hidden-input`,`hidden|${t}|${e}`,()=>e===`Math.random`||e===`random(world)`?`the predicted system ${t} called ${e} on her page, which draws another value than the room's draw, and another on each replay. Draw a number both ends predict with step.random(character), an outcome only where step.authoritative is true and let the room's result reach her page, and a cosmetic in a view.`:`the predicted system ${t} called ${e} on her page, whose time is not the room's, and differs again on each replay. Count time in a predicted trait from step.deltaSeconds, or read step.tick.`)}noteWelcome(e){this.roomHealth.clear();for(let[t,n]of Object.entries(e.entities))this.noteRoomHealth(t,n.health,null)}noteRoomHealth(e,t,n){this.roomHealth.set(e,t===void 0?n:C(t)?{...n,...t}:null)}noteUpdate(e){this.compareStreamed(),this.mergeUpdate(e)}mergeUpdate(e){for(let t of e.removed)this.roomHealth.delete(t);let t=`remade`in e?e.remade:void 0;for(let[n,r]of Object.entries(e.changed))this.noteRoomHealth(n,r.health,t?.has(n)?null:this.roomHealth.get(n)??null)}compareStreamed(){let e=this.world.get(v);if(!e)return;let t=Math.max(1,Math.ceil(e.size/I)),n=this.updates++%t,r=0;for(let[i,a]of e){if(r++%t!==n||a===this.session.character||!this.roomHealth.has(i))continue;if(!a.isAlive()){this.reportFinding(`outcome`,`outcome|presence`,()=>`the entity ${i} is gone from her page while the room still holds it, so a system on her page destroyed what the room never did. Destroy only where step.authoritative is true: the room's stream takes the entity off her page.`);continue}let e=this.roomHealth.get(i);e&&_(a)&&this.compareHealth(i,a,e)}}compareHealth(e,t,n){let r=a(t,F).health;if(C(r))for(let t in n)T(r[t],n[t])||this.reportOutcome(e,`health.${t}`,r[t],n[t])}reportOutcome(e,t,n,r){this.reportFinding(`outcome`,`outcome|${t}`,()=>{let i=this.listQueryingSystems(Y(t));return`the entity ${e} holds ${t} ${JSON.stringify(n)} on her page and ${JSON.stringify(r)} on the room's last word, so a system on her page wrote what the room never made, such as damage. Write it only where step.authoritative is true${i}.`})}listQueryingSystems(e){let t=i(e),n=this.world.get(u);if(!t||!n)return``;let r=[];for(let[e,i]of n)i.has(t)&&l(e)?.runsOn!==w.Server&&r.push(e.name);return r.length>0?`; on her page, ${r.join(`, `)} query ${e}`:``}noteCorrection(t,n){if(t.includes(` `))return;this.corrected.add(t);let r=this.findPressBefore();if(r){this.pressBefore.set(t,r);return}this.pressBefore.delete(t),n&&!e.has(Y(t))&&this.reportFinding(`room-write`,`room-write|${t}`,()=>`the room corrected her ${t} with no press of hers in the second before it, so a system on the room alone writes her predicted trait. Write it in a system marked predicted: true, started by a predicted press where a press starts it. An effect the room starts, such as a slow, goes in a streamed trait that a predicted system reads, and a one-off change the room makes, such as a refill, goes through grantPredicted(step, character, trait, value).`)}findPressBefore(){let{pace:e,roomSequence:t}=this.session;if(!e||t===0)return null;let n=t-1,r=null,i=this.world.get(b)?.byName;for(let[e,t]of i??[])for(let{origin:i}of t.values())i.tick<=n&&i.tick>n-A&&(!r||i.tick>r.tick)&&(r={name:e,tick:i.tick});return r?`${r.name} at tick ${r.tick}`:null}describeCorrections(){if(this.corrected.size===0)return``;let e=[...this.corrected].map(e=>{let t=this.pressBefore.get(e);return t?`${e}, after the press ${t}`:e});return this.corrected.clear(),` The rewound fields the room corrected: ${e.join(`; `)}.`}};function ae(e,t){if(!e.isInitialized)return;let n=e.get(f);if(!n)return;let r=new ie(e,t);n.snapshot&&r.noteWelcome(n.snapshot);for(let e of n.updates)r.mergeUpdate(e);n.snapshot=null,n.updates.length=0,n.checks=r}var $=/*#__PURE__*/ k(c),oe=class extends Q{watchedCharacters=/* @__PURE__ */ new Map;classify(e,t){return t!==void 0&&n(t)?`predicted`:`room-decided`}readGameSystem(){let{system:e}=this;return e?l(e)?.plugin===h.name?null:e:null}checkPredictedWrite(e,t){let n=this.readGameSystem();if(!n||d(n))return;let{name:r}=n;this.reportFinding(`predicted-write`,`predicted-write|${r}|${e.key}`,()=>`${r} changed the predicted ${t} of a character, and it is not a predicted system, so in a room her page cannot predict the write and the room corrects her for it. Write it in a system marked predicted: true, put an effect the room starts, such as a slow, in a streamed trait that a predicted system reads, and make a one-off change, such as a refill, with grantPredicted(step, character, trait, value).`)}reporting=!1;checkCharacter=(e,t)=>{let n=this.watchedCharacters.get(t),i=n!==void 0;n||(n=new Z(t),this.watchedCharacters.set(t,n)),this.watched=n,(!this.reporting||!i)&&(n.derived=r(t)),this.syncPredicted(this.reporting&&i),this.watched=null};beginStep(){for(let e of this.watchedCharacters.keys())(!e.isAlive()||!e.has(c))&&this.watchedCharacters.delete(e);this.reporting=!1,x(this.world,$,this.checkCharacter)}beforeSystem(e){this.system=e}afterSystem(){this.reporting=!0,x(this.world,$,this.checkCharacter),this.reporting=!1,this.system=null}syncInSystem(e,t){this.system&&(this.reporting=t,this.checkCharacter(void 0,e),this.reporting=!1)}openCharacterDoor(e){this.syncInSystem(e,!0)}closeCharacterDoor(e){this.syncInSystem(e,!1)}endStep(){}};function se(e){return new oe(e)}export{se as createWorldChecks,ae as installPredictionChecks};
@@ -0,0 +1 @@
1
+ import{n as e}from"./BrfUaL46.js";var t=/* @__PURE__ */ function(e){return e[e.Session=1]=`Session`,e[e.RoomBytes=2]=`RoomBytes`,e[e.RoomText=3]=`RoomText`,e[e.ClientText=4]=`ClientText`,e[e.Frame=5]=`Frame`,e[e.Input=6]=`Input`,e[e.Keyframe=7]=`Keyframe`,e[e.Event=8]=`Event`,e[e.Shot=9]=`Shot`,e[e.Resume=10]=`Resume`,e}({}),n=22;function r(t){if(t?.format!==22)throw e(/* @__PURE__ */ Error(`This replay was recorded by another version of the engine, in a shape this one does not play: record the moment again.`),`SP0271`,void 0)}var i=new TextEncoder,a=new TextDecoder;function o(e=65536){let t=new Uint8Array(e),n=new DataView(t.buffer),r=0,a=e=>{if(r+e<=t.length)return;let i=t.length*2;for(;i<r+e;)i*=2;let a=new Uint8Array(i);a.set(t.subarray(0,r)),t=a,n=new DataView(t.buffer)},o=(e,t,i)=>{n.setUint8(r,e),n.setFloat64(r+1,t,!0),n.setUint32(r+9,i,!0),r+=13},s=(e,n,s)=>{a(13+s.length*3);let c=r;r+=13;let{written:l}=i.encodeInto(s,t.subarray(r));r=c,o(e,n,l),r+=l};return{get length(){return r},writeBytes(e,n,i){a(13+i.length),o(e,n,i.length),t.set(i,r),r+=i.length},writeText:s,writeJson(e,t,n){s(e,t,JSON.stringify(n))},writeFrame(e,t,i=t){let s=i===t?8:16;a(13+s),o(5,e,s),n.setFloat64(r,t,!0),s===16&&n.setFloat64(r+8,i,!0),r+=s},writeShot(e,s,c){let l=i.encode(JSON.stringify(s));a(15+l.length+c.length),o(9,e,2+l.length+c.length),n.setUint16(r,l.length,!0),t.set(l,r+2),t.set(c,r+2+l.length),r+=2+l.length+c.length},take(){let e=t.slice(0,r);return r=0,e}}}function s(e){let t=new DataView(e.buffer,e.byteOffset,e.byteLength),n=[],r=0;for(;r+13<=e.length;){let i=t.getUint8(r),a=t.getFloat64(r+1,!0),o=t.getUint32(r+9,!0),s=r+13;if(s+o>e.length)break;let c=e.subarray(s,s+o),l=i===5&&(o===8||o===16),u=l?t.getFloat64(s,!0):NaN;n.push({kind:i,at:a,payload:c,seconds:u,gameSeconds:l&&o===16?t.getFloat64(s+8,!0):u}),r=s+o}return n}function c({payload:e}){return new Uint8Array(e.buffer,e.byteOffset-13,e.length+13)}function l({payload:e}){return a.decode(e)}function u({payload:e}){return JSON.parse(a.decode(e))}function d({payload:e}){let t=new DataView(e.buffer,e.byteOffset,e.byteLength).getUint16(0,!0);return{header:JSON.parse(a.decode(e.subarray(2,2+t))),image:e.subarray(2+t)}}var f=`abcdefghijklmnopqrstuvwxyz0123456789`;function p(e,t=Math.random){let n=e=>String(e).padStart(2,`0`),r=`${e.getFullYear()}${n(e.getMonth()+1)}${n(e.getDate())}`,i=`${n(e.getHours())}${n(e.getMinutes())}${n(e.getSeconds())}`,a=``;for(let e=0;e<4;e++)a+=f[Math.floor(t()*36)];return`${r}-${i}-${a}`}export{c as a,s as c,p as i,d as l,r as n,u as o,o as r,l as s,t,n as u};
@@ -0,0 +1 @@
1
+ import{Dr as e,Er as t,Hr as n,Pr as r,hf as i,il as a,sf as o,yl as s}from"./-MLBVTaO.js";import{Ht as c,or as l,tr as u}from"./V70ADx0g.js";import{o as d,s as f}from"./BrfUaL46.js";import{s as ee}from"./CVgRrBP4.js";import{C as p,at as m,f as h,it as g,ut as _}from"./Cq6VqPHb.js";import{t as te}from"./DHsBnfoU.js";import{n as v,r as y,t as b}from"./BGDOC3Q-.js";import{i as ne,o as x}from"./D8jIS84n.js";import{o as S,t as C}from"./z3YXvfLT.js";import{t as re}from"./3rj0AvB6.js";import{createPortal as w,useFrame as T}from"@react-three/fiber";import{MathUtils as E,PerspectiveCamera as D,Vector3 as O}from"three";import{useRef as k}from"react";import{Line as ie}from"@react-three/drei";import{useQueryFirst as ae,useTrait as oe,useWorld as A}from"koota/react";import{jsx as j,jsxs as se}from"react/jsx-runtime";import ce from"error-stack-parser";import M from"object-inspect";var N=[[`log`,g.Info],[`info`,g.Info],[`warn`,g.Warning],[`error`,g.Error]];function P(e){return typeof e==`string`?e:M(e)}function F(e){try{return ce.parse(e).map(({fileName:e})=>e&&I(e))}catch{return[]}}function I(e){return e.split(`/`).pop()?.split(`?`)[0]??``}function L(){let e=N.map(([e,t])=>{let n=console[e];return console[e]=(...e)=>{let r=/* @__PURE__ */ Error();m(()=>{let n=F(r);return{level:t,source:n.find(e=>e!==n[0])??``,message:e.map(P).join(` `)}}),n.apply(console,e)},()=>{console[e]=n}}),t=e=>m(()=>({level:g.Error,source:I(e.filename),message:e.message})),n=({reason:e})=>m(()=>({level:g.Error,source:e instanceof Error?F(e)[0]??``:``,message:`Uncaught (in promise) ${P(e)}`}));return window.addEventListener(`error`,t),window.addEventListener(`unhandledrejection`,n),()=>{for(let t of e)t();window.removeEventListener(`error`,t),window.removeEventListener(`unhandledrejection`,n)}}var R=.25,z=.05,B={opacity:.85,color:s.targetNeutral},V={opacity:.35,color:s.targetNeutral},H=new O,U=new O,W=new O;function G(e,t){let n=e.get(u)?.object;if(n)return n.getWorldPosition(t);let r=e.get(l)?.position;return r?t.copy(r):void 0}function K(e,t){if(!G(e,t))return;let n=e.get(o)?.height||i.height;return t.setY(t.y+n/2)}function q(e,t){return{radius:e,height:0,radialSegments:12,width:Math.min(.5,R/e),throughScenery:!0,...t}}function J({caster:i,ability:o}){try{let c=A(),l=e(c,o),u=oe(ae(a),a)?.surface,f=k(null),p=k(null),m=k(-1/0),h=k(null),g=te(ee.Line),_=l?.kind===r.Area,v=l?l.kind===r.Area?l.radius:l.range:0,y=l!==void 0&&!_&&l.approach!==!1;return T(d(`AbilityRingsView`,()=>{let e=G(i,H);for(let t of[f.current,p.current])t&&(t.visible=e!==void 0,e&&t.position.set(e.x,(u?u.getHeightAt(e):e.y)+z,e.z));let r=i.get(n)?.entity,a=r?.isAlive()?r:void 0,o=a!==void 0&&K(i,U)!==void 0&&K(a,W)!==void 0,c=h.current;c&&(c.visible=o,o&&a&&(c.geometry.setPositions([U.x,U.y,U.z,W.x,W.y,W.z]),c.material.color.set(t(i,a)<=v?s.targetFriendly:s.targetHostile)))})),l?/* @__PURE__ */ se(`group`,{userData:S,children:[/* @__PURE__ */ j(Y,{groupRef:f,light:q(v,B),placedAtRef:m}),y&&/* @__PURE__ */ j(Y,{groupRef:p,light:q(v*.9,V),placedAtRef:m}),!_&&g&&/* @__PURE__ */ j(ie,{ref:h,name:`target line`,points:[U,W],lineWidth:3,depthTest:!1,transparent:!0,renderOrder:1,frustumCulled:!1})]}):null}catch(e){throw f(`AbilityRingsView`,e)}}function Y({groupRef:e,light:t,placedAtRef:n}){try{return/* @__PURE__ */ j(C,{ref:e,shape:re.Ring,light:t,placedAt:n})}catch(e){throw f(`RingAt`,e)}}J.displayName=`AbilityRingsView`,Y.displayName=`RingAt`;function X(e){try{return/* @__PURE__ */ j(x,{children:/* @__PURE__ */ j(ne,{children:/* @__PURE__ */ j(Z,{...e})})})}catch(e){throw f(`AbilityRings`,e)}}function Z({id:e,ability:t}){try{let n=A(),r=p(t=>_(t.tree,e)?.entityId),i=r===void 0?void 0:c(n,r);return i?/* @__PURE__ */ j(J,{caster:i,ability:t}):null}catch(e){throw f(`RowRings`,e)}}X.displayName=`AbilityRings`,Z.displayName=`RowRings`;function Q(e){try{return/* @__PURE__ */ j(x,{children:/* @__PURE__ */ j($,{...e})})}catch(e){throw f(`RowPanel`,e)}}var le=new O,ue=new O;function $({id:e,width:t,maxDistance:n,children:r}){try{p(e=>e.tree);let i=h(e),a=k(null);return T(d(`RowPanelInCanvas`,({camera:e,size:n})=>{let r=a.current;if(!r?.offsetWidth||!i||!(e instanceof D))return;let o=e.getWorldPosition(ue).distanceTo(i.getWorldPosition(le)),s=n.height/(2*Math.tan(E.degToRad(e.fov)/2)*o);r.style.scale=String(t*s/r.offsetWidth)})),i?w(/* @__PURE__ */ j(v,{anchor:b.Above,maxDistance:n,variant:y.Bare,children:/* @__PURE__ */ j(`div`,{ref:a,className:`origin-bottom [text-shadow:none]`,children:r})}),i):null}catch(e){throw f(`RowPanelInCanvas`,e)}}Q.displayName=`RowPanel`,$.displayName=`RowPanelInCanvas`;export{X as n,L as r,Q as t};
@@ -0,0 +1 @@
1
+ import{Mf as e,_f as t}from"./-MLBVTaO.js";import{n}from"./BrfUaL46.js";import{useEffect as r,useRef as i}from"react";import{useWorld as a}from"koota/react";function o(o,s,c={}){let l=a(),u=i(s);u.current=s;let{entity:d}=c;if(o.delivery===t.ServerOnly)throw n(/* @__PURE__ */ Error(`useEvent(${o.name}) listens for a server-only event, which stays on the room and never reaches a view: read it in a system with readEvents, or declare it reliable.`),`SP0391`,`useEvent`);r(()=>e(l,o,e=>u.current(e),d),[l,o,d])}export{o as t};
@@ -0,0 +1 @@
1
+ import{Hc as e,Hd as t,Ht as n,Hu as r,Jt as i,O as a,Pd as o,Qt as s,Vt as c,Xu as l,Yt as u,ac as d,bl as f,dl as p,do as m,so as h,td as g,tf as _,wl as v}from"./-MLBVTaO.js";import{Jn as y,Vt as ee,lr as te,or as b,rr as ne,tr as x}from"./V70ADx0g.js";import{n as S}from"./BrfUaL46.js";import{h as C,t as re}from"./BobsCMiL.js";import{Box3 as w,InstancedMesh as T,MathUtils as E,Matrix4 as ie,OrthographicCamera as D,PerspectiveCamera as O,Quaternion as k,Sphere as A,Vector3 as j}from"three";import{IsExcluded as ae}from"koota";import{PropShape as oe,ShotAngle as M,shotCameraSchema as se}from"@spawnite/schema";import{InstancedMesh2 as ce}from"@three.ez/instanced-mesh";function N(e){return e instanceof T||e instanceof ce}var P=50,F=1.1,I=2,L=new j(0,1,0),R=[4,4,4],z={[M.Top]:{azimuth:0,elevation:90,ortho:!0},[M.Bottom]:{azimuth:0,elevation:-90,ortho:!0},[M.Front]:{azimuth:0,elevation:0,ortho:!0},[M.Back]:{azimuth:180,elevation:0,ortho:!0},[M.Left]:{azimuth:270,elevation:0,ortho:!0},[M.Right]:{azimuth:90,elevation:0,ortho:!0},[M.ThreeQuarter]:{azimuth:45,elevation:0,ortho:!0},[M.Iso]:{azimuth:45,elevation:45,ortho:!1}};function B(e){let t=`model`in e?d(e.model):void 0;if(t)return new w(new j().fromArray(t.min),new j().fromArray(t.max));let r=new j(...R);return!(`model`in e)&&!(`size`in e)&&r.max(new j().setScalar(n(e.kind,1))),`size`in e&&(r.set(...e.size),e.kind===oe.Plane&&(r.y=0)),new w(new j(-r.x/2,0,-r.z/2),new j(r.x/2,r.y,r.z/2))}function V(e,t){let n=typeof t.scale==`number`?new j().setScalar(t.scale):new j(...t.scale),r=new k().setFromAxisAngle(L,E.degToRad(t.yaw));return B(t).applyMatrix4(new ie().compose(c(e,t.position),r,n))}function H(e,t,n){return new j(t,e.getHeightAt(new j(t,0,n)),n)}function U(e){return typeof e[0]==`number`}function W(e,t){if(typeof t!=`string`){let e=U(t)?[t]:t,n=new w().setFromPoints(e.map(e=>new j(...e))),r=new j().setScalar(I).sub(n.getSize(new j)).max(new j);return n.expandByVector(r.divideScalar(2))}if(e instanceof w){if(t!==`all`)throw S(/* @__PURE__ */ Error(`No map is mounted to name "${t}" on; frame all or a point`),`SP0098`,void 0);if(e.isEmpty())throw S(/* @__PURE__ */ Error(`Cannot frame "all": the scene draws nothing yet. Frame a point, or wait for the scene to draw.`),`SP0099`,void 0);return e.clone()}let{map:n}=e,r=Object.values(n.props);if(t===`map`||t===`all`&&r.length===0){let t=n.size/2,r=new w;for(let i=0;i<=e.segments;i+=1)for(let a=0;a<=e.segments;a+=1)r.expandByPoint(H(e,a*n.cell-t,i*n.cell-t));return r}if(t===`all`)return r.reduce((t,n)=>t.union(V(e,n)),new w);if(Object.hasOwn(n.props,t))return V(e,n.props[t]);if(Object.hasOwn(n.regions,t)){let{center:r,radius:i}=n.regions[t];return new w().setFromCenterAndSize(H(e,r[0],r[1]),new j(i*2,0,i*2))}if(Object.hasOwn(n.paths,t)){let{points:r,halfWidth:i}=n.paths[t];return new w().setFromPoints(r.map(([t,n])=>H(e,t,n))).expandByVector(new j(i,0,i))}if(Object.hasOwn(n.views,t)){let e=n.views[t],r=new j(...e.target),i=e.ortho===void 0?r.distanceTo(new j(...e.eye))*Math.tan(E.degToRad(e.fov)/2):e.ortho/2;return new w().setFromCenterAndSize(r,new j().setScalar(i*2))}throw S(/* @__PURE__ */ Error(`No prop, region, path or view named "${t}"; the map has ${[`all`,`map`,...Object.keys(n.views),...Object.keys(n.regions),...Object.keys(n.paths),...Object.keys(n.props)].join(`, `)}`),`SP0100`,void 0)}function G(e,t,n){let r=se.parse(t);if(`eye`in r)return r;let{angle:i,around:a,zoom:o}=r,s=typeof i==`string`?z[i]:{...i,ortho:!1},c=r.ortho??s.ortho,l=W(e,a),u=l.getCenter(new j),d=E.degToRad(s.azimuth),f=E.degToRad(s.elevation),p=Math.abs(s.elevation)===90?0:Math.cos(f),m=new j(Math.sin(d)*p,Math.sin(f),Math.cos(d)*p),h=l.getBoundingSphere(new A).radius;if(!c){let e=new O(P,n),t=C(e,h)/o;return{eye:u.clone().addScaledVector(m,t).toArray(),target:u.toArray(),fov:P}}let g=new D,_=C(g,h);g.position.copy(u).addScaledVector(m,_),p===0&&g.up.set(0,0,-1),g.lookAt(u),g.updateMatrixWorld();let v=0,y=0;for(let e of[l.min.x,l.max.x])for(let t of[l.min.y,l.max.y])for(let n of[l.min.z,l.max.z]){let r=new j(e,t,n).applyMatrix4(g.matrixWorldInverse);v=Math.max(v,Math.abs(r.x)),y=Math.max(y,Math.abs(r.y))}return{eye:g.position.toArray(),target:u.toArray(),fov:P,ortho:Math.max(y,v/n)*2*F/o}}var le=[[.5,`reaching you now`],[1,`right in front of you`],[2,`just ahead`],[4,`further ahead`]],ue=`far ahead`,de=`behind you`,fe=1;function K({along:e,behind:t,speed:n,offset:r,left:i,right:a,level:o=`level`}){return{seconds:e<=0?0:n>0?e/n:1/0,side:r>a?a-r:r<i?i-r:0,behind:t,level:o}}function pe(e,t){let n=e.get(i),r=t.get(s),a=e.get(u)?.track;if(n&&r&&a&&t.get(u)?.track===a)return K({along:r.start-n.distance,behind:r.end<n.distance,speed:n.speed,offset:n.lateral,left:r.left,right:r.right,level:n.height>r.top?`below`:n.height<r.bottom?`above`:`level`})}function me(e){let n=e.get(_(o))?.colliders[0]?.shape;if(n?.type===t.Box){let t=e.get(b)?.rotation??q;Z.set(1,0,0).applyQuaternion(t),Q.set(0,0,1).applyQuaternion(t);let r=n.size[0]/2,i=n.size[2]/2;return{across:Math.abs(Z.dot(Y))*r+Math.abs(Q.dot(Y))*i,along:Math.abs(Z.dot(J))*r+Math.abs(Q.dot(J))*i}}let i=n&&`radius`in n?n.radius:e.get(l)?.radius??e.get(g)?.radius??e.get(r)?.radius??0;return{across:i,along:i}}var q=new k,J=new j,Y=new j,X=new j,Z=new j,Q=new j;function he(e,t){let n=e.get(b)?.position,r=t.get(b)?.position;if(!n||!r)return;let i=e.get(b)?.rotation??q;J.set(0,0,-1).applyQuaternion(i),Y.set(1,0,0).applyQuaternion(i),X.subVectors(r,n);let a=X.dot(J),o=X.dot(Y),s=me(t);return K({along:a-s.along,behind:a+s.along<0,speed:Math.max(e.get(te)?.dot(J)??0,0)||e.get(v)?.speed||0,offset:0,left:o-s.across,right:o+s.across})}function ge(e,t){return pe(e,t)??he(e,t)}function _e({seconds:e,side:t,behind:n,level:r}){if(n)return[de];let i=le.find(([t])=>e<t)?.[1]??ue;return r===`level`?t===0?[i,`in your path`]:[i,`to your ${t<0?`left`:`right`}, ${Math.abs(t)<fe?`close`:`well clear`}`]:[i,`${r} you`]}function ve(t){let n=e(t);if(n)return n;for(let e of t.query(i,y))if(e.get(y)?.context===ne.Client)return e;return t.queryFirst(i)}function ye(e){let{entity:t}=e,n={is:``,facts:[],actions:[]};for(let{trait:r,ai:i}of a.values()){if(!i||!t.has(r))continue;let{is:a,facts:o=[],actions:s=[]}=i(t.get(r),e);n.is||=a??``,n.facts.push(...o),n.actions.push(...s)}for(let e of m.values())t.has(e.trait)&&n.facts.push(h(e,t));let r=t.get(re);return r&&(n.is=r.is||n.is,n.facts.push(...r.facts),n.actions.push(...r.actions)),n}function be(e){for(let t of m.values())if(e.has(t.trait))return`the ${t.name}`;return``}function xe({world:e,subject:t=ve(e),readName:n}){let r=[];for(let i of e.entities){let a=n?.(i),o=ye({entity:i,subject:t}),s=o.is||o.facts.length>0||o.actions.length>0;if(a===void 0&&!s&&i!==t)continue;let c=o.is||a||(i===t?`you`:``)||(i.has(ae)?`the game`:``)||be(i),l=t&&i!==t?ge(t,i):void 0,u=l?[..._e(l),...o.facts]:o.facts;r.push({node:{id:ee(e,i),...a&&a!==c&&{name:a},is:c,facts:u,actions:o.actions},rank:i===t?-1:l&&!l.behind?l.seconds:1/0})}return r.sort((e,t)=>e.rank<t.rank?-1:+(e.rank>t.rank)).map(({node:e})=>e)}function Se(e,t){return $(e,t)?.entity??null}function $(e,t,n=[]){let r=new Map(n.map(e=>[e,void 0]));for(let t of[x,p])for(let n of e.query(t)){let e=n.get(t)?.object;e&&r.set(e,n)}for(let e of t.intersectObjects([...r.keys()],!0)){let t=e.object;for(;t&&!r.has(t);)t=t.parent;if(!t)continue;let n=t;for(;n?.visible;)n=n.parent;if(n)continue;let{point:i,instanceId:a}=e,o=r.get(t);return N(e.object)&&a!==void 0?{entity:o,owner:t,point:i,instance:{batch:e.object,index:a}}:{entity:o,owner:t,point:i}}return null}var Ce=16/9;function we(e,t){return t===`map`?{eye:[0,e.size,0],target:[0,0,0],fov:50,ortho:e.size}:Object.hasOwn(e.views,t)?e.views[t]:G(f(e),{angle:M.Iso,around:t},Ce)}export{G as a,xe as i,Se as n,N as o,$ as r,we as t};
@@ -0,0 +1 @@
1
+ import{l as e}from"./-MLBVTaO.js";var t=2,n=.05,r=.02,i=1,a=.25,o=2,s=45,c=12,l=4,u=192;function d(e){let t=e+1+12;return{tick:t,stepped:t-1,adjusted:0,adjustedAt:new Float64Array(u),adjustedTick:new Float64Array(u).fill(-1),answers:[],pace:1,closing:!1,snappedAt:t,heldLead:null,started:!1}}function f(e,t){let n=t%u;e.adjustedAt[n]=e.adjusted,e.adjustedTick[n]=t}function p(e,t){e.stepped=Math.max(e.stepped,t-1),e.tick=Math.max(e.tick,t)}function m(e){return e.answers.length===0?null:Math.min(...e.answers)+e.adjusted}function h(e,t){let n=Math.max(t,-15);e.tick+=n,e.adjusted+=n,e.answers.length=0,e.closing=!1,e.pace=1,e.snappedAt=Math.ceil(Math.max(e.tick,e.stepped+1))}function g(e,{early:t,earlyTick:n}){if(t===void 0||n===void 0||n<e.snappedAt)return;let r=n%u,i=t-(e.adjustedTick[r]===n?e.adjustedAt[r]:e.adjusted),{answers:a}=e;a.length>0&&i-Math.max(...a)>10&&(a.length=0);let o=a.length>0?Math.min(...a):i;a.push(Math.max(i,o-3)),a.length>8&&a.shift();let s=m(e)??2;Math.abs(s-2)>10&&h(e,2-s)}function _(e){let t=m(e);if(t===null)return;let o=t-2;!e.closing&&Math.abs(o)>i?e.closing=!0:e.closing&&Math.abs(o)<a&&(e.closing=!1),e.pace=e.closing?1-Math.min(Math.max(r*o,-.05),n):1}function v(t,n){let{roomTick:r,rate:i}=n;if(i===0)r!==null&&(t.heldLead??=Math.min(Math.max(t.tick-r,2),45),t.tick=Math.max(t.tick,r+t.heldLead));else{t.heldLead!==null&&(t.tick+=n.oneWayMilliseconds/(e*1e3)*i),t.heldLead=null;let a=n.seconds/e*i;if(t.tick+=a*t.pace,t.adjusted+=a*(t.pace-1),r!==null){let i=t.tick-r,a=n.oneWayMilliseconds/(e*1e3),o=2+Math.ceil(a)+4;!t.started&&t.answers.length===0||i<2?h(t,o-i):i>45&&h(t,45-i),t.started=!0}}_(t);let a=t.stepped+1,o=Math.floor(t.tick)-a;if(o<=0)return{first:a,skipped:0,after:0};let s=0;if(r!==null&&o>=3){let t=r+n.oneWayMilliseconds/(e*1e3);s=Math.max(0,Math.min(Math.floor(t-a),o))}let c=Math.min(o-s,12);return t.stepped+=s+c,{first:a,skipped:s,after:c}}export{f as a,c,o as i,l,d as n,p as o,s as r,g as s,v as t,t as u};
@@ -0,0 +1,9 @@
1
+ import{Hc as e,Id as t,Jf as n,Vc as r,Xf as i,Yd as a,gs as o,hf as s,il as c,is as l,np as u,pf as ee,rp as d,sf as te,tp as f,ul as p}from"./-MLBVTaO.js";import{Qn as m,Ur as h,_r as g,ar as ne,or as _,rr as v,tr as y,xr as b}from"./V70ADx0g.js";import{Box3 as re,DoubleSide as x,MathUtils as S,Mesh as C,PerspectiveCamera as w,Ray as T,Sphere as E,Vector2 as D,Vector3 as O}from"three";import{createQuery as k,trait as ie}from"koota";var A=new T;function ae(e,{origin:t,direction:n,far:r,side:i=x}){A.set(t,n);let a=e.raycastFirst(A,i,0,r);return a?a.distance:null}var j={eyeClearance:.3,eyeMargin:.2,eyeReturnResponse:9},M={shape:a({radius:j.eyeMargin}),from:new O,direction:new O,maxDistance:0,collisionMask:l,bodyTypes:[t.Fixed]},N=new O,P=.1;function F({physics:e,bvh:t,ground:r},{origin:i,direction:a,far:s}){if(s<=0)return null;let c=null;if(e){M.from=i,M.direction=a,M.maxDistance=s;let t=o(e,M);c=t?Math.max(0,t.distance-n.offset):null}else{let e=t?ae(t,{origin:i,direction:a,far:s}):null;e!==null&&(c=Math.max(0,e-j.eyeMargin))}if(r){let e=c??s;for(let t=0;t*P<e+P;t++){let n=Math.min(t*P,e);if(N.copy(i).addScaledVector(a,n),N.y-r.getHeightAt(N)<j.eyeClearance){c=Math.max(0,n-P);break}}}return c}function I({clear:e,settled:t,deltaSeconds:n}){return t===null||e<=t?e:S.damp(t,e,j.eyeReturnResponse,n)}var L=new O,R={origin:new O,direction:L,far:0};function oe({aim:e,eye:t,obstacles:n,settledDistance:r,deltaSeconds:i}){let a=L.subVectors(t,e).length();if(a===0)return a;L.divideScalar(a),R.origin.copy(e),R.far=a;let o=F(n,R)??a,s=Math.min(a,I({clear:o,settled:r,deltaSeconds:i}));return t.copy(e).addScaledVector(L,s),s}var z=/* @__PURE__ */ new WeakMap,B=/* @__PURE__ */ new WeakSet,se=`
2
+ uniform float modelFade;
3
+ float readModelFadeNoise(vec2 pixel) {
4
+ return fract(52.9829189 * fract(dot(pixel, vec2(0.06711056, 0.00583715))));
5
+ }
6
+ `,ce=`
7
+ if (modelFade < 1.0 && readModelFadeNoise(gl_FragCoord.xy) >= modelFade)
8
+ discard;
9
+ `,V=`void main() {`;function le(e){return e.includes(V)?e.replace(V,`${se}\n${V}\n${ce}`):e}function ue(e,t){if(B.has(e))return;B.add(e);let n=e.onBeforeCompile.bind(e),r=e.customProgramCacheKey.bind(e),i=e.onBeforeCompile.toString();e.onBeforeCompile=(e,r)=>{n(e,r),e.uniforms.modelFade=t,e.fragmentShader=le(e.fragmentShader)},e.customProgramCacheKey=()=>`${r()}|${i}|modelFade`}function de(e){let t=z.get(e)??{value:1};return z.set(e,t),e.traverse(e=>{if(!(e instanceof C))return;let n=Array.isArray(e.material)?e.material:[e.material];for(let e of n)ue(e,t)}),t}function fe(e){let t=z.get(e);t&&(t.value=1)}function pe(e){let t=z.get(e);if(t)return t;for(let t of e.children){let e=z.get(t);if(e)return e}return null}function me(e){return(Array.isArray(e.material)?e.material:[e.material]).every(e=>B.has(e))}function he(e,t){e.traverseVisible(e=>{!(e.isMesh===!0||`isSprite`in e||`isPoints`in e||`isLine`in e)||e instanceof C&&me(e)||(e.visible=!1,t.add(e))})}function ge(e){for(let t of e)t.visible=!0;e.clear()}var _e=/* @__PURE__ */ function(e){return e.ViewTarget=`player`,e}({}),ve=/* @__PURE__ */ function(e){return e.Fade=`fade`,e.Hide=`hide`,e.Off=`off`,e}({}),H=/*#__PURE__*/ ie({orbit:()=>null,follow:()=>`player`,settle:!0,latch:!1,latchedHeading:0,latchedSteer:()=>new D,settledDistance:()=>null,settledPivotReach:()=>null,followedTeleports:-1,fov:f.fov,fieldOfView:()=>null,minDistance:f.minDistance,maxDistance:f.maxDistance,minPolarAngle:f.minPolarAngle,maxPolarAngle:f.maxPolarAngle,firstPersonMinPolarAngle:f.firstPersonMinPolarAngle,firstPersonMaxPolarAngle:f.firstPersonMaxPolarAngle,bodyNearEye:()=>`fade`,eyeHeightFraction:f.eyeHeightFraction,latchTurn:u.latchTurn,turnRate:u.turnRate,holdSeconds:u.holdSeconds,metresPerSecond:d.metresPerSecond,rotateSpeed:1,firstPerson:!1,lockToggle:!1,lockToggleOffered:!1,clickToWalk:!1,startLocked:!1,playerLook:!1,lookSpeed:f.lookSpeed,invertLook:!1,shoulderOffset:f.shoulderOffset,pivotRise:f.pivotRise,locked:!1,firstPersonView:!1,characterHidden:!1,hiddenParts:()=>/* @__PURE__ */ new Set,characterFade:1}),ye={trait:H,wiki:`/engine/entities/camera/`,description:`The lens, the zoom and tilt stops, and where the eye aims.`,ranges:{fov:{min:20,max:110,step:1},minDistance:{min:0,max:10,step:.1},maxDistance:{min:0,max:30,step:.1},minPolarAngle:{min:0,max:Math.PI,step:.01},maxPolarAngle:{min:0,max:Math.PI,step:.01},firstPersonMinPolarAngle:{min:0,max:Math.PI,step:.01},firstPersonMaxPolarAngle:{min:0,max:Math.PI,step:.01},eyeHeightFraction:{min:0,max:1,step:.01},latchTurn:{min:0,max:Math.PI,step:.01},turnRate:{min:0,max:2*Math.PI,step:.05},holdSeconds:{min:0,max:5,step:.1},metresPerSecond:{min:0,max:30,step:.5},rotateSpeed:{min:-2,max:2,step:.05},lookSpeed:{min:5e-5,max:.02,step:5e-5},shoulderOffset:{min:-2,max:2,step:.05},pivotRise:{min:0,max:1,step:.05}},runsOn:v.Client},U=/*#__PURE__*/ k(H);function W(e){return e.queryFirst(U)?.get(H)?.orbit??null}function be(e,t){let n=g(e,U),r=n?.get(H),i=r?.orbit?.azimuthAngle??0;if(!n||!r?.latch)return i;let{latchedSteer:a}=r;return t.lengthSq()===0?(a.set(0,0),i):a.lengthSq()>0&&a.angleTo(t)<=r.latchTurn?r.latchedHeading:(a.copy(t),n.set(H,{latchedHeading:i}),i)}function xe(e){let t=W(e);return t&&{azimuth:t.azimuthAngle,polar:t.polarAngle,distance:t.distance}}function Se(e,{azimuth:t,polar:n,distance:r}){let i=W(e);i&&(i.rotateTo(t,n,!1),i.dollyTo(r,!1))}var Ce=1.1;function we(e,t){let n=Math.max(t,.5);if(!(e instanceof w))return n*3;let r=S.degToRad(e.fov)/2,i=Math.atan(Math.tan(r)*e.aspect);return n*Ce/Math.sin(Math.min(r,i))}var Te=new re,Ee=new E;function De(e,t){let n=e.queryFirst(U),r=n?.get(H),i=t.get(y)?.object;if(!n||!r?.orbit||!i)return null;Te.setFromObject(i).getBoundingSphere(Ee);let{center:a,radius:o}=Ee,{follow:s}=r;return Le(e),n.set(H,{follow:null}),r.orbit.moveTo(a.x,a.y,a.z,!0),r.orbit.dollyTo(we(r.orbit.camera,o),!0),s}var Oe=/*#__PURE__*/ k(i,y,m);function ke(e){return g(e,Oe,r)??g(e,Oe)}function G(e){let t=g(e,U);return t!==void 0&&b(t,H,`follow`)?ke(e):void 0}function K(e){let{orbit:t}=e;if(!t)return;let{firstPersonDistance:n}=f,r=e.firstPersonView?n:e.minDistance,i=e.firstPersonView?n:e.maxDistance;(t.minDistance!==r||t.maxDistance!==i)&&(t.minDistance=r,t.maxDistance=i,t.dollyTo(t.distance,!1));let a=e.firstPersonView?e.firstPersonMinPolarAngle:e.minPolarAngle,o=e.firstPersonView?e.firstPersonMaxPolarAngle:e.maxPolarAngle;if(t.minPolarAngle!==a||t.maxPolarAngle!==o){let n=!e.firstPersonView&&(t.minPolarAngle===e.firstPersonMinPolarAngle||t.maxPolarAngle===e.firstPersonMaxPolarAngle);t.minPolarAngle=a,t.maxPolarAngle=o;let r=S.clamp(t.polarAngle,a,o);r!==t.polarAngle&&(n?t.rotatePolarTo(r,!0):t.polarAngle=r)}t.azimuthRotateSpeed=e.rotateSpeed,t.polarRotateSpeed=e.invertLook?-e.rotateSpeed:e.rotateSpeed;let{camera:s}=t;s instanceof w&&s.fov!==e.fov&&(s.fov=e.fov,s.updateProjectionMatrix())}var q=new O,J=new O,Y={physics:null,bvh:null,ground:null},X={origin:new O,direction:new O,far:0},Ae=/*#__PURE__*/ k(p),je=/*#__PURE__*/ k(c);function Me(e,t){let n=g(e,U),r=n?.get(H),i=r?.orbit;if(!n||!r||!i)return;let a=G(e),o=a?.get(y)?.object?.position,l=a?.get(m);if(!o||!l){K(r);return}let u=b(a,ne,`count`)??0;u!==r.followedTeleports&&(r.followedTeleports=u,r.settledDistance=null,r.settledPivotReach=null,n.set(H,{followedTeleports:u,settledDistance:null,settledPivotReach:null}));let d=r.maxDistance>r.minDistance?r:f,h=r.locked&&!r.firstPersonView,_=Math.min(a.get(te)?.height||s.height,S.lerp(l.height*r.eyeHeightFraction,l.center.y,h?0:S.smoothstep(i.distance,d.minDistance,d.maxDistance))),v=S.smoothstep(i.polarAngle-Math.PI/2,f.steepLook,f.maxPolarAngle-Math.PI/2),re=_+(h?r.pivotRise:0)+f.steepRise*v;if(K(r),q.set(o.x,o.y+re,o.z),h){let e=i.azimuthAngle;q.x+=Math.cos(e)*r.shoulderOffset,q.z-=Math.sin(e)*r.shoulderOffset}Y.physics=e.get(ee)?.handle?e:null,Y.bvh=g(e,Ae)?.get(p)?.bvh??null,Y.ground=g(e,je)?.get(c)?.surface??null,X.origin.set(o.x,o.y+_,o.z);let x=X.direction.subVectors(q,X.origin).length(),C=null;if(x>0){X.direction.divideScalar(x),X.far=x;let e=F(Y,X)??x;C=Math.min(x,I({clear:e,settled:r.settledPivotReach,deltaSeconds:t})),q.copy(X.origin).addScaledVector(X.direction,C)}C!==r.settledPivotReach&&n.set(H,{settledPivotReach:C}),i.moveTo(q.x,q.y,q.z,!1),i.update(0);let{camera:w}=i;J.subVectors(w.position,q);let T=q.y-o.y-j.eyeClearance;J.y<0&&-J.y>T&&w.position.copy(q).addScaledVector(J,Math.max(0,T)/-J.y);let E=J.subVectors(w.position,q).length(),D=S.lerp(E,r.minDistance,v);if(v>0&&D<E&&w.position.copy(q).addScaledVector(J,D/E),r.settle&&!r.firstPersonView){let e=oe({aim:q,eye:w.position,obstacles:Y,settledDistance:r.settledDistance,deltaSeconds:t});e!==r.settledDistance&&n.set(H,{settledDistance:e})}let O=a.get(y)?.object;if(O){let e=S.clamp(w.position.y,o.y,o.y+l.height),i=Math.hypot(w.position.x-o.x,w.position.y-e,w.position.z-o.z)-(a.get(te)?.radius||s.radius);Ie(n,O,{target:r.firstPersonView?0:r.bodyNearEye===`off`?1:Ne(i),deltaSeconds:t})}w.lookAt(q)}function Ne(e){let{fadeStartMetres:t,fadeEndMetres:n}=f;return S.clamp((e-n)/(t-n),0,1)}var Pe=.05;function Fe(e,t,n){if(t===0||e<=Pe)return t;let r=f.fadeRate*n;return S.clamp(t,e-r,e+r)}function Ie(e,t,{target:n,deltaSeconds:r}){let i=e.get(H);if(!i)return;let a=Fe(i.characterFade,n,r),o=pe(t),s=o!==null&&i.bodyNearEye!==`hide`;o&&(o.value=s?a:1);let c=!s&&a===0;(c||i.characterHidden)&&(t.visible=!c);let{hiddenParts:l}=i;s&&a===0?he(t,l):l.size>0&&ge(l),(c!==i.characterHidden||a!==i.characterFade)&&e.set(H,{characterHidden:c,characterFade:a})}function Le(e){let t=e.queryFirst(U),n=t?.get(H);if(!t||!n)return;let r=G(e)?.get(y)?.object;if(r){r.visible=!0;let e=pe(r);e&&(e.value=1)}ge(n.hiddenParts),t.set(H,{characterHidden:!1,characterFade:1})}var Z={degrees:1.2,rollDegrees:2.4,hertz:11,recovery:1.5,radius:20},Q=/*#__PURE__*/ ie({trauma:0,seconds:0});function Re(t,{strength:n,at:r,radius:i=Z.radius,cap:a=1}){let o=t.queryFirst(H),s=o?.get(H)?.orbit;if(!o)return;let c=1;if(r){let n=e(t)?.get(_)?.position??s?.camera.position,a=n?Math.hypot(r.x-n.x,r.y-n.y,r.z-n.z):0;c=i>0?S.clamp(1-a/i,0,1):0}let l=Math.max(0,n)*c;if(l===0)return;let u=o.get(Q)?.trauma??0;o.has(Q)||o.add(Q);let ee=S.clamp(a,0,1);o.set(Q,{trauma:Math.max(u,Math.min(ee,u+l))})}function $(e,t){let n=2*Math.PI*Z.hertz*e;return .65*Math.sin(n+t)+.35*Math.sin(n*2.31+t*1.7)}var ze=/*#__PURE__*/ k(H,Q);function Be(e,{deltaSeconds:t,scale:n}){let r=g(e,ze);if(!r||(b(r,Q,`trauma`)??0)<=0)return;let i=r.get(Q),a=r.get(H)?.orbit?.camera;if(!i)return;let o=i.seconds+t;if(r.set(Q,{seconds:o,trauma:Math.max(0,i.trauma-Z.recovery*t)}),!a||n<=0)return;let s=i.trauma*i.trauma*n,{degrees:c,rollDegrees:l}=Z;a.rotateY(S.degToRad(c*s*$(o,0))),a.rotateX(S.degToRad(c*s*$(o,2.1))),a.rotateZ(S.degToRad(l*s*$(o,4.4))),a.updateMatrixWorld()}var Ve=h(`ai`,{is:``,facts:()=>[],actions:()=>[]});export{Le as _,Re as a,de as b,_e as c,De as d,Se as f,be as g,we as h,Z as i,H as l,W as m,Q as n,ve as o,xe as p,Be as r,ye as s,Ve as t,G as u,Me as v,fe as x,K as y};
@@ -0,0 +1 @@
1
+ import{n as e}from"./BrfUaL46.js";var t={budgetMegabytes:300,markShare:.5,savedWarningMegabytes:200,shotIntervalSeconds:2,shotWidth:854},n={budgetMegabytes:{test:e=>e>0,words:`above 0`},markShare:{test:e=>e>=0&&e<=1,words:`from 0 to 1`},savedWarningMegabytes:{test:e=>e>0,words:`above 0`},shotIntervalSeconds:{test:e=>e>=0,words:`0 or more, 0 for no rolling shots`},shotWidth:{test:e=>Number.isInteger(e)&&e>=16,words:`a whole number of pixels, 16 or more`}};function r({label:t,defaults:n,rules:r,given:i}){let a={...n};for(let[n,o]of Object.entries(i)){if(o===void 0)continue;if(!(n in r))throw e(/* @__PURE__ */ Error(`${t}: "${n}" is not a ${t.toLowerCase()} setting. The settings are ${Object.keys(r).join(`, `)}.`),`SP0315`,void 0);let i=r[n];if(typeof o!=`number`||!i.test(o))throw e(/* @__PURE__ */ Error(`${t}: ${n} must be ${i.words}, not ${String(o)}.`),`SP0316`,void 0);a[n]=o}return a}function i(e={}){return r({label:`Replay`,defaults:t,rules:n,given:e})}var a={maxSeconds:30,keep:50},o={maxSeconds:{test:e=>e>0,words:`above 0`},keep:{test:e=>Number.isInteger(e)&&e>=1,words:`a whole number, 1 or more`}};function s(e={}){return r({label:`Clips`,defaults:a,rules:o,given:e})}var c={"replay-shot-interval":`shotIntervalSeconds`,"replay-shot-width":`shotWidth`};function l(t,n){let r=new URLSearchParams(t),a={};for(let[t,n]of Object.entries(c)){let i=r.get(t);if(i===null)continue;let o=Number(i);if(i.trim()===``||!Number.isFinite(o))throw e(/* @__PURE__ */ Error(`Replay: ?${t}= takes a number, not "${i}".`),`SP0317`,void 0);a[n]=o}let o=i({...n,...a});return{shotIntervalSeconds:o.shotIntervalSeconds,shotWidth:o.shotWidth}}export{i,l as n,s as r,t};
@@ -0,0 +1 @@
1
+ import{Cn as e,il as t,mu as n,tu as r,yl as i}from"./-MLBVTaO.js";import{o as a,s as o}from"./BrfUaL46.js";import{yt as s}from"./Cq6VqPHb.js";import{n as c}from"./Bydoy8wO.js";import{t as l}from"./z3YXvfLT.js";import{t as u}from"./3rj0AvB6.js";import{useFrame as d}from"@react-three/fiber";import{Vector3 as f}from"three";import{use as p,useEffect as m,useLayoutEffect as h,useRef as g}from"react";import{useQueryFirst as _,useTrait as v}from"koota/react";import{jsx as y}from"react/jsx-runtime";function b(e,t,n){let r=p(c),i=n===void 0?r:n,a=g(t);h(()=>{a.current=t}),m(()=>s(i,e,()=>a.current()),[i,e])}var x={radius:e.arrivalRadius,lift:.02,pulseSeconds:1,pulseMin:.5,lightHeight:1.6},S={radius:x.radius,height:x.lightHeight,opacity:.6,radialSegments:12,color:i.destinationLight},C={...S,opacity:1,color:i.destinationMarker},w=new f;function T({entity:e,shape:i=u.Pulse}){try{let o=v(_(t),t)?.surface,s=g(null),c=g(null),f=g(0),{lift:p,pulseSeconds:m,pulseMin:h}=x,b=i===u.Ring;return d(a(`DestinationMarkerView`,({clock:t})=>{let i=s.current;if(!i)return;let a=e.get(n);if(i.visible=a!==void 0&&a.corners.length>0,!i.visible||!a||!o)return;let{destination:l}=a;if(l!==c.current&&(c.current=l,f.current=t.elapsedTime),i.position.set(l.x,o.getHeightAt(l)+p,l.z),!b)return;o.getNormalAt(l,w),i.quaternion.setFromUnitVectors(r,w);let u=Math.sin(2*Math.PI*t.elapsedTime/m);i.scale.setScalar(h+(1-h)*(.5+.5*u))})),/* @__PURE__ */ y(l,{ref:s,shape:i,light:b?C:S,placedAt:f})}catch(e){throw o(`DestinationMarkerView`,e)}}T.displayName=`DestinationMarkerView`;export{x as n,b as r,T as t};
@@ -0,0 +1,2 @@
1
+ var e=/* @__PURE__ */ function(e){return e.System=`system`,e.Render=`render`,e.Frame=`frame`,e.Room=`room`,e}({});function t(e){return`@spawnite/engine/dist/wiki/engine/errors/${e}.md`}function n(){return Symbol.for(`spawnite.failure`)}function r(e){return e[n()]}function i(e,t,n,r){let i=m(e),o=c(i,t);return o!==void 0&&Object.isExtensible(e)&&Object.assign(e,{code:o}),a(e,{message:i,code:o,label:n===void 0?{}:{call:n},entity:p(r)?r:void 0}),o!==void 0&&Object.isExtensible(e)&&(e.message=`${i} [${o}]`),e}function a(e,t){let i=n();try{if(Object.hasOwn(e,i))e[i]=t;else if(Object.isExtensible(e))Object.defineProperty(e,i,{value:t,configurable:!0,writable:!0,enumerable:!1});else return!1;return r(e)===t}catch{return!1}}function o(e){let t=h(e,m(e));return t!==void 0&&Object.isExtensible(e)&&Object.assign(e,{code:t}),e}function s(e,t){let n=c(e,t);return n===void 0?e:`${e} [${n}]`}function c(e,t){if(typeof t==`string`)return t;for(let[n,r]of t){let t=r.split(`%s`).map(e=>e.replace(/[.*+?^${}()|[\]\\]/g,`\\$&`)).join(`[\\s\\S]*?`);if(RegExp(`^${t}$`).test(e))return n}}function l(e,t,{entity:n,describeEntity:i}={}){if(typeof e!=`object`||!e)return;let o=r(e),s={...t};if(o)for(let[e,t]of Object.entries(o.label))t!==void 0&&Object.assign(s,{[e]:t});let c=o?.entity??n;c!==void 0&&(!s.entity||!s.entity.name)&&(s.entity=f(c,i));let l=o?.message??m(e),u=o?.code??h(e,l),p={message:g(l,u),code:u,label:s,entity:c};if(!a(e,p)||!(e instanceof Error))return;let _=d(p),v=u?`${p.message} [${u}]`:p.message;try{e.message=_?`${v}\n${_}`:v}catch{}}function u(e){if(typeof e!=`object`||!e)return{message:String(e),label:{}};let t=r(e);if(t)return{message:t.message,code:t.code,label:{...t.label}};let n=m(e),i=h(e,n);return{message:g(n,i),code:i,label:{}}}function d({code:e,label:n}){let r=[],{system:i,call:a,entity:o,tick:s,component:c,frame:l,room:u}=n;return i!==void 0&&r.push(`system ${i}`),c!==void 0&&r.push(`component <${c}>`),l!==void 0&&r.push(`frame ${l}`),u!==void 0&&r.push(`room ${u}`),s!==void 0&&r.push(`tick ${s}`),a!==void 0&&r.push(`call ${a}`),o!==void 0&&r.push(o.name?`entity ${o.key} "${o.name}"`:`entity ${o.key}`),e!==void 0&&r.push(`page ${t(e)}`),r.length===0?``:`Spawnite: ${r.join(`, `)}`}function f(e,t){try{if(t)return t(e);let n=e.generation();return{key:n===0?String(e.id()):`${e.id()}.${n}`,name:``}}catch{return{key:String(e),name:``}}}function p(e){return typeof e==`number`&&typeof e.isAlive==`function`}function m(e){try{let{message:t}=e;return typeof t==`string`?t:String(e)}catch{return`A thrown value with no readable text.`}}function h(e,t){let{code:n}=e;return typeof n==`string`&&/^SP\d{4}$/.test(n)?n:/\[(SP\d{4})\]$/m.exec(t)?.[1]}function g(e,t){if(t===void 0)return e;let n=` [${t}]`;return e.endsWith(n)?e.slice(0,-n.length):e}function _(e){for(let t of(e??``).split(`
2
+ `)){let e=/^\s*(?:at\s+)?([A-Za-z_$][\w$.]*)/.exec(t);if(e)return e[1]}}function v(e,t){return(n,r,i)=>{try{return t(n,r,i)}catch(t){throw l(t,{boundary:`frame`,frame:e}),t}}}function y(e,t){if(typeof t!=`object`||!t)return t;let n=r(t);if(n?.label.boundary!==void 0)return t;let i={boundary:`render`,component:e};return a(t,n?{...n,label:{...n.label,...i}}:{message:m(t),label:i}),t}export{l as a,u as c,s as i,_ as l,i as n,v as o,o as r,y as s,e as t};
@@ -0,0 +1 @@
1
+ import{$l as e,$n as t,$r as n,Cf as r,Cu as i,Dl as a,Do as o,Dr as s,Ei as c,Fc as l,Ic as u,Lc as d,Ol as f,Oo as p,Pr as m,Qr as h,Rc as g,Rr as _,Tl as ee,Vc as v,Xa as te,_u as ne,du as re,ei as ie,eu as ae,fu as oe,gu as y,hf as b,il as x,iu as S,ko as se,ns as ce,nu as le,ou as C,pc as w,pu as ue,ql as de,ri as T,sf as E,ss as D,su as O,ti as fe,ul as pe,wl as me,xn as he,yl as k}from"./-MLBVTaO.js";import{Fn as ge,J as _e,Qn as A,Sr as ve,Zn as ye,cr as be,lr as xe,or as Se,tr as j,xr as Ce}from"./V70ADx0g.js";import{n as M,o as N,s as P}from"./BrfUaL46.js";import{x as we}from"./BobsCMiL.js";import{s as F}from"./CVgRrBP4.js";import{C as Te,D as Ee,E as De,T as I,_ as L,a as R,b as Oe,w as z,x as ke,y as Ae}from"./Bydoy8wO.js";import{t as je}from"./DHsBnfoU.js";import{t as Me}from"./yhuZzG90.js";import{a as Ne,i as Pe,n as Fe,o as Ie,r as Le,s as Re,t as ze}from"./BWlq9jqw.js";import{r as B}from"./3rj0AvB6.js";import{useFrame as Be,useThree as Ve}from"@react-three/fiber";import{AnimationMixer as He,Euler as Ue,Group as We,LoopOnce as Ge,LoopRepeat as Ke,MathUtils as V,Quaternion as H,Vector3 as U}from"three";import{createQuery as qe}from"koota";import{createContext as Je,useEffect as W,useLayoutEffect as G,useMemo as K,useRef as Ye,useState as Xe}from"react";import{useQueryFirst as Ze,useTrait as Qe,useWorld as $e}from"koota/react";import{Fragment as et,jsx as q,jsxs as tt}from"react/jsx-runtime";import{VRM as nt,VRMHumanBoneName as J}from"@pixiv/three-vrm";import{VRMAnimation as rt,createVRMAnimationClip as it}from"@pixiv/three-vrm-animation";var at=[J.Hips,J.Spine,J.Chest,J.UpperChest,J.RightUpperArm,J.RightLowerArm,J.RightHand],ot=[J.Spine,J.Chest,J.UpperChest],Y=new U(0,1,0),st=new U(1,0,0),X=new H,ct=new H,lt=new H,Z=new H,ut=new H,dt=new H,ft=new H,pt=new U,mt=new H,ht=new H;function gt(e,t,n){let{legTurnLimit:r,movingSpeed:a,backwardMargin:o,sideStepBand:s}=T.aim,c=n.backward;if(n.legYaw=0,n.backward=!1,n.clip=null,Math.hypot(t.x,t.z)<a)return n;let l=Math.atan2(-t.x,-t.z),u=V.euclideanModulo(l-e+Math.PI,2*Math.PI)-Math.PI;n.backward=Math.abs(u)>Math.PI/2+(c?-o:o);let d=n.backward?u-Math.sign(u)*Math.PI:u;return n.legYaw=V.clamp(d,-r,r),Math.abs(Math.abs(u)-Math.PI/2)<s?n.clip=u<0?i.Right:i.Left:n.backward&&(n.clip=i.Backpedal),n}function _t(e,t){let n=e.humanoid.getNormalizedBoneNode(J.RightUpperArm);return n?(n.getWorldPosition(pt),Math.atan2(t.y-pt.y,Math.hypot(t.x-pt.x,t.z-pt.z))):0}function vt(e){e.forEach(yt)}function yt(e,t){t.quaternion.copy(e)}function bt(e,t){let n=t.get(e);n?n.copy(e.quaternion):t.set(e,e.quaternion.clone())}function xt(e,t){for(let n of at){let r=e.humanoid.getNormalizedBoneNode(n);r&&bt(r,t.clipRotations)}}function St(e,t,n){let r=e.parent;r&&(bt(r,n),bt(e,n),t!==0&&(r.parent?r.parent.getWorldQuaternion(Z):Z.identity(),X.setFromAxisAngle(Y,t),r.quaternion.premultiply(mt.copy(Z).invert().multiply(X).multiply(Z)),ht.multiplyQuaternions(Z,r.quaternion),e.quaternion.premultiply(mt.copy(ht).invert().multiply(X.invert()).multiply(ht))))}function Ct(e,t){let{vrm:n,aim:r}=e;if(!n)return;let{humanoid:i}=n,{pitchLimit:a,spinePitchShare:o}=T.aim,s=(n.meta.metaVersion===`0`?1:-1)*V.clamp(t,-a,a)*r.weight,c=i.getNormalizedBoneNode(J.Hips),l=0;for(let e of ot)i.getNormalizedBoneNode(e)&&l++;let u=!0;for(let e of ot){let t=i.getNormalizedBoneNode(e);t&&(r.weight>0&&t.quaternion.premultiply(ct.setFromAxisAngle(st,s*o/l)),u&&c&&r.legYaw!==0&&t.quaternion.premultiply(X.setFromAxisAngle(Y,-r.legYaw)),u=!1)}if(c&&r.legYaw!==0&&c.quaternion.premultiply(X.setFromAxisAngle(Y,r.legYaw)),r.weight===0)return;let d=i.getNormalizedBoneNode(J.RightUpperArm),f=d?.parent;d&&f&&(ut.setFromAxisAngle(st,s).multiply(X.setFromAxisAngle(Y,Math.PI/2)),n.scene.getWorldQuaternion(lt),f.getWorldQuaternion(Z),ut.premultiply(lt).premultiply(Z.invert()),d.quaternion.slerp(ut,r.weight),i.getNormalizedBoneNode(J.RightLowerArm)?.quaternion.slerp(ft,r.weight),i.getNormalizedBoneNode(J.RightHand)?.quaternion.slerp(dt.setFromAxisAngle(Y,-Math.PI/2),r.weight))}var wt=.001;function Tt(e,t,n){let r=V.damp(e,t,T.aim.response,n);return Math.abs(r-t)<wt?t:r}function Et(e,t,n,r){e.weight=Tt(e.weight,+!!t,r),e.legYaw=Tt(e.legYaw,t?n.legYaw:0,r)}function Dt(e){let n=c(e,t);return n===void 0?void 0:n.seconds-n.left}var Ot=new H,kt=new U,At=new U,jt=new U,Mt=new H,Nt=new H,Pt=new H,Ft=new H,It=new U;function Lt(e,t){let n=s(e,t);if(!n)return null;let{aimHand:r}=n;if(r===!1)return null;let{castAim:i}=T;return r===void 0||r===!0?n.kind===m.Area?null:i:{inSeconds:r.inSeconds??i.inSeconds,holdSeconds:r.holdSeconds??i.holdSeconds,outSeconds:r.outSeconds??i.outSeconds}}function Rt(e,t,n,r){let i=t.get(_),a=i?.ability;if(a!==void 0&&a!==n.ability){n.ability=a;let t=Lt(e,a);n.aimEnabled=t!==null,t&&(n.window=t)}else a===void 0&&(n.ability=null);if(!i||!a||!n.aimEnabled){let{holdSeconds:e,outSeconds:i}=n.window??T.castAim;if(n.request!==null){n.request=null;let r=Dt(t);n.heldSeconds=r===void 0?0:Math.max(0,e-r)}return n.heldSeconds>0?(n.heldSeconds-=r,n.weight=1,n):(n.weight=Math.max(0,n.weight-(i>0?r/i:1)),n.weight===0&&(n.target=null),n)}let{inSeconds:o}=n.window??T.castAim,s=i.secondsLeft;return n.request!==i.request&&(n.request=i.request,n.target=i.target),n.target&&!n.target.isAlive()&&(n.target=null),n.weight=o>0?V.smoothstep(o-s,0,o):+(s<=0),n}function zt(e,t,n,r,i){if(i<=0||!D(r,It))return!1;let a=e.humanoid.getNormalizedBoneNode(J.RightHand),o=a?.parent;return!a||!o||(t.getWorldQuaternion(Ot),t.getWorldPosition(kt),At.copy(n).applyQuaternion(Ot).normalize(),jt.subVectors(It,kt),jt.lengthSq()<1e-6)?!1:(jt.normalize(),Mt.setFromUnitVectors(At,jt),a.getWorldQuaternion(Nt),o.getWorldQuaternion(Pt),Ft.copy(Mt).multiply(Nt).premultiply(Pt.invert()),a.quaternion.slerp(Ft,i),!0)}var Bt=new U(0,0,-1),Vt=new U(.05,-.94,-.34).normalize(),Ht=new U(-.85,0,-.53).normalize(),Ut=[85,100,65].map(e=>V.degToRad(e)),Wt=[45,25,25].map(e=>V.degToRad(e)),Gt=e=>e.map((e,t)=>({bone:e,axis:Bt,bend:Ut[t]})),Kt={thumb:[J.RightThumbMetacarpal,J.RightThumbProximal,J.RightThumbDistal].map((e,t)=>({bone:e,axis:t===0?Vt:Ht,bend:Wt[t]})),index:Gt([J.RightIndexProximal,J.RightIndexIntermediate,J.RightIndexDistal]),middle:Gt([J.RightMiddleProximal,J.RightMiddleIntermediate,J.RightMiddleDistal]),ring:Gt([J.RightRingProximal,J.RightRingIntermediate,J.RightRingDistal]),little:Gt([J.RightLittleProximal,J.RightLittleIntermediate,J.RightLittleDistal])},qt=Object.keys(Kt);function Jt(e,t,n){let r=e.meta.metaVersion!==`0`;for(let i of qt)for(let{bone:a,axis:o,bend:s}of Kt[i]){let c=e.humanoid.getNormalizedBoneNode(a);if(!c)continue;let l=n.get(c);l?l.copy(c.quaternion):n.set(c,c.quaternion.clone()),c.quaternion.setFromAxisAngle(o,s*t[i]),r&&(c.quaternion.x=-c.quaternion.x,c.quaternion.z=-c.quaternion.z)}}var Yt=/* @__PURE__ */ new Set([y.Idle,y.Run]),Xt=/* @__PURE__ */ new Set([y.Run,y.Jump,y.RunJump]),Zt=new U,Qt=new U,$t=new U,en=new H,tn=new H,nn=new Ue,rn=new H,an=new Ue,Q={legYaw:0,backward:!1,clip:null},on=new Ue;function sn({head:e,vrm:t,settings:n,angles:r,deltaSeconds:i}){let{yaw:a,pitch:o}=(()=>{let{lookAt:n}=t,r=n?.target;return!n||!r||!e.parent?{yaw:0,pitch:0}:(e.getWorldPosition(Zt),e.parent.getWorldQuaternion(en),$t.subVectors(r.getWorldPosition(Qt),Zt).applyQuaternion(en.invert()).normalize(),nn.setFromQuaternion(tn.setFromUnitVectors(n.faceFront,$t),`YXZ`),{yaw:V.radToDeg(nn.y),pitch:V.radToDeg(nn.x)})})(),s=V.smoothstep(180-Math.abs(a),0,n.fadeDegrees),c=(e,t)=>V.clamp(e*n.share,-t,t)*s;r.yaw=V.damp(r.yaw,c(a,n.yawLimit),n.response,i),r.pitch=V.damp(r.pitch,c(o,n.pitchLimit),n.response,i),e.quaternion.premultiply(rn.setFromEuler(an.set(V.degToRad(r.pitch),V.degToRad(r.yaw),0,`YXZ`)))}var cn=/* @__PURE__ */ new Set;function ln(e,t){let n=Object.entries(ie(e)??{}).map(([e,t])=>({mark:e,seconds:t})).sort((e,t)=>e.seconds-t.seconds),r=n.findIndex(({seconds:e})=>e>=t);return{name:e,marks:n,crossed:r<0?n.length:r}}function un(e,t,n,r){let i=t.get(p),{mixer:a,clips:o}=n;if(i&&i.plays!==n.oneShotPlays){n.oneShotPlays=i.plays;let t=i.name?o.get(i.name):void 0;if(t){let{fadeSeconds:r,hold:a,speed:o}=i,s=z({world:e,clip:t,end:i.end}),c=Math.min(i.start,s);n.oneShot={clip:t,...ln(i.name,c),fadeSeconds:r,hold:a,start:c,end:s,speed:o,playing:!0,restart:!0};return}if(n.oneShot&&(n.oneShot.playing=!1),i.name&&!cn.has(i.name)){let t=[...o.keys()].join(`, `);ge(e,`playClip: the character has no clip named "${i.name}", so she plays none. Her clips: ${t}. Name a VRMA clip with registerClip before she draws.`)&&cn.add(i.name)}}let{oneShot:s}=n;if(!s?.playing||s.restart)return;let c=a?.existingAction(s.clip)?.time??0,{start:l,end:u,speed:d}=s,f=Math.min(s.fadeSeconds,(u-l)/d/2);(!i?.name||!s.hold&&(Xt.has(r)||(u-c)/d<=f))&&(s.playing=!1)}function dn({world:e,entity:t,played:n,time:i,plays:a}){for(;n.crossed<n.marks.length&&n.marks[n.crossed].seconds<=i;){let{mark:i,seconds:s}=n.marks[n.crossed++];r(e,o,{clip:n.name,mark:i,seconds:s,plays:a},{entity:t})}}var fn={band:{enter:.06,leave:.05},height:1.8},pn=new U,mn=0;function hn(e,t,n,r){let i=r??(v(t)?S.AlwaysAnimate:S.CullUpdateTransforms),a=t.get(j)?.object;if(!e||!a||i===S.AlwaysAnimate)return O.Full;let o=t.get(A)?.height||fn.height;if(pn.copy(a.position),pn.y+=o/2,!d(e,pn,o))return O.Hidden;let s=g(e,pn,o/2);return u(n===O.Full,s,fn.band)?O.Full:O.Halved}var gn=/*#__PURE__*/ qe(C);function _n(t,n){let r=_e(t),o=t.get(l);mn+=1,ve(t,gn,([s],c)=>{let l=c.get(ne),{mixer:u,vrm:d,clips:p,current:m}=s;if(!l||!u||!d)return;let h=s.detail===O.Hidden;if(s.detail=hn(o,c,s.detail,s.cullingMode),s.owedSeconds+=n,s.detail===O.Hidden||s.detail===O.Halved&&!h&&(mn+c.id())%2==1)return;let g=s.owedSeconds;s.owedSeconds=0;let _=c.get(ue),v=c.get(Me),ie=c.get(le),b=ie?.active===!0,x=b||(v?.strafing??(_?de(r,_,e.strafe):l.strafe)),S=c.get(xe),ce=c.get(Se);Q.backward=s.aim.backward,x&&S&&ce?gt(on.setFromQuaternion(v?.rotation??ce.rotation,`YXZ`).y,S,Q):(Q.legYaw=0,Q.backward=!1,Q.clip=null);let C=l.state===y.Run&&Q.clip?p.get(Q.clip):void 0;C&&Q.clip!==i.Backpedal&&(Q.legYaw=0),un(t,c,s,l.state);let{oneShot:w}=s,E=w?.playing?w.clip:void 0,D=Ce(c,te,`clip`),fe=D?p.get(D):void 0,pe=fe&&D?D:l.state,k=E??fe??C??p.get(l.state);if(!k)throw M(/* @__PURE__ */ Error(`The character has no clip for the ${l.state} pose: its CharacterAnimation trait's clips hold none for it. Draw the character with the engine's <CharacterSpawn>, which binds a clip for every pose.`),`SP0376`,void 0,c);let ge=w?.restart===!0&&k===E;w&&(w.restart=!1);let _e=!E&&he(pe),A=!E&&Yt.has(pe),ve=m!==null&&m.loop===Ke!==A;if(m?.getClip()!==k||ge||ve){let e=w&&(k===w.clip||m?.getClip()===w.clip)?w.fadeSeconds:void 0,t=l.state===y.Idle&&m!==null&&[y.Run,...Object.values(i)].some(e=>m.getClip()===p.get(e)),n=c.get(me)?.deceleration??ee.deceleration,r=S?f(a(S),n)+g:0,o=c.get(be)?.turnSeconds,d=u.clipAction(k),h=A&&d.isRunning()&&d.getEffectiveWeight()>0,_=h||d===m||k===E&&d.isScheduled()?d.getEffectiveWeight():0;h||d.reset(),w&&k===E&&(d.time=w.start),d.setLoop(A?Ke:Ge,A?1/0:1),d.clampWhenFinished=!A,d.timeScale=w&&k===E?w.speed:_e&&o?k.duration/o:1,d.play();let v=e??(_e?.06:t?r:T.loopFadeS);if(m){let e=/* @__PURE__ */ new Map([[d,_]]);for(let t of p.values()){let n=u.existingAction(t);n&&n!==d&&n.getEffectiveWeight()>0&&e.set(n,n.getEffectiveWeight())}s.blend={startWeights:e,elapsedSeconds:0,durationSeconds:v}}s.current=d}let{blend:j}=s,N=null;if(j){j.elapsedSeconds+=g;let e=j.durationSeconds>0?Math.min(j.elapsedSeconds/j.durationSeconds,1):1;for(let[t,n]of j.startWeights)t.setEffectiveWeight(V.lerp(n,+(t===s.current),e));e===1&&(N=j)}let{current:P}=s;P&&P.getClip()===p.get(y.Run)&&(P.timeScale=Q.backward?-1:1),s.aim.backward=Q.backward,Et(s.aim,x,Q,g),Ae(d.scene),vt(s.aim.clipRotations);let we=c.get(oe)?.curl;vt(s.gripClipRotations),we||s.gripClipRotations.clear();let F=d.humanoid.getNormalizedBoneNode(J.Head);F&&s.clipHeadRotation&&F.quaternion.copy(s.clipHeadRotation);let I=s.upperBody??=ke();De(I);let L=w&&u.existingAction(w.clip);w&&L?.loop===Ge&&(w.playing||L!==s.current)&&Ee({action:L,end:w.end,deltaSeconds:g}),u.update(g);let R=I.plays;Te({world:t,entity:c,layer:I,root:d.scene,spine:d.humanoid.getNormalizedBoneNode(J.Spine),clips:p,addedPose:s.armSpread,deltaSeconds:g}),I.plays!==R&&I.active&&(s.upperBodyMarks=ln(c.get(se)?.name??``,I.start)),xt(d,s.aim),Ct(s,ie&&b?_t(d,ie):v?.pitch??(_?ae(de(r,_,e.pitch)):l.pitch)),we&&Jt(d,we,s.gripClipRotations),F&&(s.clipHeadRotation=(s.clipHeadRotation??new H).copy(F.quaternion),sn({head:F,vrm:d,settings:s.headTurn??T.headTurn,angles:s.headAngles,deltaSeconds:g})),d.humanoid.update(),d.scene.updateWorldMatrix(!0,!0);let z=Rt(t,c,s.castAim,g),je=c.get(ye)?.object,Ne=c.get(re);if(z.weight>0&&z.target&&je&&Ne&&zt(d,je,Ne.forward,z.target,z.weight)&&(d.humanoid.update(),d.scene.updateWorldMatrix(!0,!0)),h&&d.springBoneManager?.reset(),Oe({entity:c,root:d.scene,seconds:g})&&d.scene.updateWorldMatrix(!0,!0),Re(d,h?n:g),w&&dn({world:t,entity:c,played:w,time:u.existingAction(w.clip)?.time??0,plays:s.oneShotPlays}),I.active&&dn({world:t,entity:c,played:s.upperBodyMarks,time:I.time,plays:I.plays}),N){for(let e of N.startWeights.keys())e!==s.current&&e.stop();s.blend===N&&(s.blend=null)}})}function vn(e,t){ce(e),t.scene.updateWorldMatrix(!0,!0),t.springBoneManager?.reset()}function yn(e,t){G(()=>(e.add(A(t)),()=>{e.isAlive()&&e.remove(A)}),[e,t])}var $=/* @__PURE__ */ new Map;function bn(e,t){let n=$.get(e)??[];$.set(e,n);let r=n.indexOf(t);if(r>=0)return r;let i=n.findIndex(e=>!e?.isAlive()),a=i>=0?i:n.length;return n[a]=t,a}function xn(e,t,n){let r=$.get(e)??[];$.set(e,r),r[n]=t}function Sn(e,t){let n=$.get(e),r=n?.indexOf(t)??-1;n&&r>=0&&(n[r]=null)}function Cn(e,t){let n=bn(e,t);return W(()=>(xn(e,t,n),()=>Sn(e,t)),[e,t,n]),n===0?e:`${e}#${n}`}function wn({entity:e,body:t,ground:n,obstacles:r=null,motion:i,armSpread:a,armColliderRadii:o=t.armColliders?.radii,children:s}){try{let[c,l]=L([Cn(t.model,e),...i?[i]:[]],Fe),u=c.userData.vrm,d=i?l.userData.vrmAnimations:void 0,f=Array.isArray(d)?d[0]:void 0;if(!(u instanceof nt))throw M(/* @__PURE__ */ Error(`The model ${t.model} holds no VRM data: give a .vrm file.`),`SP0379`,`VrmView`);if(i&&!(f instanceof rt))throw M(/* @__PURE__ */ Error(`The motion ${i} holds no VRM animation: give a .vrma file.`),`SP0380`,`VrmView`);let p=Ne(u,t),{radius:m,height:h}=e.get(E)??b;yn(e,p),G(()=>()=>we(u.scene),[u]),G(()=>(Le(u,n),()=>Le(u,void 0)),[n,u]),G(()=>(Pe(u,r),()=>Pe(u,null)),[r,u]),G(()=>{o&&Ie(u,o)},[o,u]);let g=Ve(e=>e.camera);G(()=>{let{lookAt:e}=u;if(e)return e.target=g,()=>{e.target=null}},[g,u]);let _=K(()=>i?new He(u.scene):null,[i,u]);return W(()=>{if(!_||!(f instanceof rt))return;let e=it(f,u);return _.clipAction(e).play(),a&&_.clipAction(ze(u,a)).play(),()=>{_.stopAllAction(),_.uncacheRoot(u.scene)}},[f,a,_,u]),Be(N(`VrmView`,(e,t)=>{_&&(_.update(t),u.humanoid.update(),u.scene.updateWorldMatrix(!0,!0),u.update(t))})),/* @__PURE__ */ tt(`group`,{ref:R(e),children:[/* @__PURE__ */ q(`primitive`,{object:u.scene,dispose:null,raycast:()=>!1}),/* @__PURE__ */ q(`mesh`,{"position-y":h/2,visible:!1,children:/* @__PURE__ */ q(`capsuleGeometry`,{args:[m,h-2*m]})}),s?.({...p,vrm:u})]})}catch(e){throw P(`VrmView`,e)}}wn.displayName=`VrmView`;var Tn=Je(null);function En(e,t){let n=R(e,ye);G(()=>(n(t),()=>n(null)),[n,t])}var Dn=.6;function On({entity:e,shape:t=B.Capsule,color:n=k.placeholderBody,children:r}){try{let{radius:i,height:a}=e.get(E)??b,o=t===B.Sphere?2*i:a;yn(e,K(()=>({height:o,center:new U(0,o/2,0)}),[o]));let[s,c]=Xe(null);En(e,s);let l=K(()=>s&&{entity:e,object:s},[e,s]);return/* @__PURE__ */ tt(`group`,{ref:R(e),children:[/* @__PURE__ */ tt(`mesh`,{"position-y":o/2,castShadow:!0,children:[t===B.Capsule&&/* @__PURE__ */ q(`capsuleGeometry`,{args:[i,o-2*i]}),t===B.Box&&/* @__PURE__ */ q(`boxGeometry`,{args:[2*i,o,2*i]}),t===B.Sphere&&/* @__PURE__ */ q(`sphereGeometry`,{args:[i]}),/* @__PURE__ */ q(`meshStandardMaterial`,{color:n})]}),/* @__PURE__ */ q(`group`,{ref:c,position:[i,o*Dn,0]}),/* @__PURE__ */ q(Tn,{value:l,children:r?.({entity:e,height:o})})]})}catch(e){throw P(`PlaceholderBodyView`,e)}}On.displayName=`PlaceholderBodyView`;function kn(){return[...n().map(([,e])=>e),...h().map(([,e])=>e)]}function An(e,t,n){if(new URLSearchParams(window.location.search).get(`land`)===`hips`){let n=t.humanoid.getNormalizedBoneNode(J.Hips);e.tracks=e.tracks.filter(e=>e.name!==`${n?.name}.position`);return}for(let t of e.tracks)t.trim(n,e.duration).shift(-n);e.resetDuration()}function jn({entity:e,vrm:t,armSpread:r,headTurn:i=T.headTurn,cullingMode:a}){try{let o=$e(),s=Ye(i),c=Ye(a),l=L(kn(),Fe);return W(()=>{let i=new He(t.scene),a=kn(),u=[...n().map(([e])=>e),...h().map(([e])=>e)],d=fe(),f=new Map(u.map((e,n)=>{let r=l[n]?.userData.vrmAnimations,i=Array.isArray(r)?r[0]:void 0;if(!(i instanceof rt))throw M(/* @__PURE__ */ Error(`The character's ${e} motion, ${a[n]}, holds no VRM animation: give a .vrma file for it.`),`SP0373`,`CharacterAnimationView`);let o=it(i,t);if(o.name=e,e===y.Land&&d!==void 0){if(d>=o.duration)throw M(/* @__PURE__ */ Error(`The character's land clip, ${a[n]}, is ${o.duration.toFixed(2)} s long, and its touch mark at ${d} s lies past its end: mark where her feet meet the ground, before the clip ends, or register it with no touch mark to play it whole.`),`SP0374`,`CharacterAnimationView`);An(o,t,d)}return[e,o]})),m=ze(t,r);i.clipAction(m).play(),vn(o,t);let g=ke(I(e.get(se)));return e.add(C({vrm:t,mixer:i,clips:f,headTurn:s.current,cullingMode:c.current??null,oneShotPlays:I(e.get(p)),upperBody:g,armSpread:m})),()=>{let n=e.isAlive()?e.get(C)?.gripClipRotations:void 0;n&&vt(n),Ae(t.scene),De(g),e.isAlive()&&e.remove(C),i.stopAllAction(),i.uncacheRoot(t.scene)}},[r,l,e,t,o]),W(()=>{s.current=i,e.isAlive()&&e.has(C)&&e.set(C,{headTurn:i})},[e,i]),W(()=>{c.current=a,e.isAlive()&&e.has(C)&&e.set(C,{cullingMode:a??null})},[e,a]),null}catch(e){throw P(`CharacterAnimationView`,e)}}jn.displayName=`CharacterAnimationView`;function Mn({entity:e,body:t,children:n,armSpread:r=t.armSpread,armColliderRadii:i,headTurn:a,cullingMode:o}){try{let s=Qe(Ze(x),x),c=Qe(Ze(pe),pe);return je(F.Avatar)?/* @__PURE__ */ q(wn,{entity:e,body:t,ground:s?.surface,obstacles:c?.bvh,armColliderRadii:i,children:({height:t,vrm:i})=>/* @__PURE__ */ tt(et,{children:[/* @__PURE__ */ q(jn,{entity:e,vrm:i,armSpread:r,headTurn:a,cullingMode:o}),/* @__PURE__ */ q(Nn,{entity:e,vrm:i,children:n?.({entity:e,height:t})})]})}):/* @__PURE__ */ q(On,{entity:e,children:n})}catch(e){throw P(`CharacterView`,e)}}function Nn({entity:e,vrm:t,children:n}){try{let[r]=Xe(()=>new We);En(e,r);let i=K(()=>({entity:e,object:r}),[e,r]);return G(()=>{let e=t.humanoid.getNormalizedBoneNode(J.RightHand);if(e)return r.rotation.y=t.meta.metaVersion===`0`?0:w,e.add(r),()=>{e.remove(r)}},[r,t]),/* @__PURE__ */ q(Tn,{value:i,children:n})}catch(e){throw P(`HandSocket`,e)}}Mn.displayName=`CharacterView`,Nn.displayName=`HandSocket`;export{Tn as a,_n as c,vt as d,St as f,On as i,Et as l,jn as n,wn as o,kn as r,yn as s,Mn as t,gt as u};
@@ -0,0 +1 @@
1
+ import{a as e,i as t,o as n}from"./CU0epHFG.js";import{$d as r,$s as i,Js as a,Ld as o,Md as s,Oo as c,Pd as l,Rd as u,Xs as d,Ys as f,cc as p,fc as m,ff as h,hd as g,ic as _,jd as v,ko as y,nf as b,oc as ee,ol as te,pc as x,pf as S,sc as C,tf as w}from"./-MLBVTaO.js";import{$n as T,Bn as ne,Fn as E,Jn as re,Rn as ie,Vn as ae,Vt as D,gr as oe,hr as O,ir as se,or as k,rr as A,tr as j,zn as M}from"./V70ADx0g.js";import{n as N,o as P,s as F}from"./BrfUaL46.js";import{t as I}from"./BobsCMiL.js";import{s as L}from"./CVgRrBP4.js";import{Et as R,St as z,st as ce}from"./Cq6VqPHb.js";import{t as le}from"./DJSpRhXB.js";import{t as ue}from"./DHsBnfoU.js";import{i as de,t as fe}from"./BzaiZux2.js";import{useFrame as pe,useLoader as me,useThree as he}from"@react-three/fiber";import{AnimationClip as ge,AnimationMixer as _e,Bone as ve,Box3 as ye,Color as be,Group as xe,LoopOnce as Se,MathUtils as Ce,Matrix4 as we,Mesh as Te,MeshDepthMaterial as Ee,MeshDistanceMaterial as De,PropertyBinding as Oe,Quaternion as B,SkinnedMesh as V,Vector3 as H}from"three";import{Suspense as ke,createContext as Ae,use as je,useCallback as Me,useEffect as U,useLayoutEffect as W,useMemo as G,useRef as K,useState as q}from"react";import{InstancedMesh2 as Ne}from"@three.ez/instanced-mesh";import{Clone as Pe}from"@react-three/drei";import{useHas as Fe,useWorld as Ie}from"koota/react";import{clone as Le}from"three/addons/utils/SkeletonUtils.js";import{GLTFLoader as Re}from"three/addons/loaders/GLTFLoader.js";import{jsx as J,jsxs as ze}from"react/jsx-runtime";function Be({name:e}){try{return W(()=>z(e),[e]),null}catch(e){throw F(`PendingDraw`,e)}}Be.displayName=`PendingDraw`;function Ve(e){return e&&!e.hold?e.plays:0}var He=/* @__PURE__ */ new Set;function Ue({world:e,clip:t,end:n}){let r=`${t.name}\n${n}`;return n>t.duration&&!He.has(r)&&E(e,`playClip: end is ${n} s, past the end of the clip "${t.name}", which is ${t.duration} s long, so it plays to its end. Pass an end of ${t.duration} or less.`)&&He.add(r),n>0?Math.min(n,t.duration):t.duration}function We({action:e,end:t,deltaSeconds:n}){e.time+n*e.timeScale<t||(e.time=t,e.paused=!0)}function Ge(e){let t=null;return e.traverse(e=>{!t&&e instanceof ve&&/spine/i.test(e.name)&&(t=e)}),t}function Ke(e=0){return{plays:e,clip:null,tracks:[],active:!1,time:0,start:0,end:0,speed:1,fadeSeconds:0,hold:!1,stopped:!1,weight:0,applied:!1}}function qe(e){if(e.applied){for(let t=0;t<e.tracks.length;t++){let{target:n,base:r}=e.tracks[t];n.fromArray(r)}e.applied=!1}}var Je=/* @__PURE__ */ new Set,Ye=/* @__PURE__ */ new Set;function Xe({world:e,root:t,spine:n,addedPose:r,clip:i}){if(!n){let n=[];t.traverse(e=>{e instanceof ve&&n.push(e.name)});let r=n.join(`, `);!Je.has(r)&&E(e,`playClip: the model has no bone named like a spine, so "${i.name}" plays on ClipLayer.UpperBody over its whole body. Its bones: ${r||`none`}.`)&&Je.add(r)}let a=[];for(let e of i.tracks){let{nodeName:i,propertyName:o}=Oe.parseTrackName(e.name),s=Oe.findNode(t,i);if(!s||n&&!Qe(s,n))continue;let c=o===`quaternion`?s.quaternion:o===`position`?s.position:o===`scale`?s.scale:null;if(!c)continue;let l=c instanceof B?r?.tracks.find(t=>t.name===e.name):void 0;a.push({target:c,sampler:Ze(e),added:l?new B().fromArray(Ze(l).evaluate(0)):null,base:[0,0,0,0]})}return a}function Ze(e){return e.createInterpolant()}function Qe(e,t){for(let n=e;n;n=n.parent)if(n===t)return!0;return!1}var $e=new B,et=new H;function tt({world:e,entity:t,layer:n,root:r,spine:i,clips:a,addedPose:o,deltaSeconds:s}){let c=t.get(y);if(c&&c.plays!==n.plays){n.plays=c.plays;let t=c.name?a.get(c.name):void 0;if(t)t!==n.clip&&(n.tracks=Xe({world:e,root:r,spine:i,addedPose:o,clip:t})),n.clip=t,n.active=!0,n.end=Ue({world:e,clip:t,end:c.end}),n.start=Math.min(c.start,n.end),n.time=n.start,n.speed=c.speed,n.fadeSeconds=c.fadeSeconds,n.hold=c.hold,n.stopped=!1;else if(n.stopped=!0,c.name&&!Ye.has(c.name)){let t=[...a.keys()].join(`, `);E(e,`playClip: there is no clip named "${c.name}" to play on ClipLayer.UpperBody, so it plays none. The clips: ${t||`none`}.`)&&Ye.add(c.name)}}if(!n.active)return;let l=!!c?.name&&!n.stopped,u=n.time;n.time=Math.min(n.time+s*n.speed,n.end);let d=Math.min(n.fadeSeconds,(n.end-n.start)/n.speed/2),f=l&&(n.hold||(n.end-n.time)/n.speed>d);if(n.weight=n.fadeSeconds>0?Ce.clamp(n.weight+(f?1:-1)*s/n.fadeSeconds,0,1):Number(f),n.weight===0){n.active=f||l&&u<n.end;return}for(let e=0;e<n.tracks.length;e++){let{target:t,sampler:r,added:i,base:a}=n.tracks[e],o=r.evaluate(n.time);t instanceof B?(t.toArray(a),$e.fromArray(o),i&&$e.multiply(i),t.slerp($e,n.weight)):(t.toArray(a),t.lerp(et.fromArray(o),n.weight))}n.applied=!0}var Y=/* @__PURE__ */ new Map,nt=/* @__PURE__ */ new WeakMap;function rt(e,t){let n=Y.get(e);return n||Y.set(e,n=[]),n.push(t),()=>{let r=n.indexOf(t);r>=0&&n.splice(r,1),n.length===0&&Y.get(e)===n&&Y.delete(e)}}function it(e){let t=nt.get(e);if(t)return t;let n=/* @__PURE__ */ new Map,r=[];return t={posed:{root:e,bone:t=>{let i=n.get(t);if(i===void 0){let r=Oe.sanitizeNodeName(t),a;e.traverse(e=>{!a&&e instanceof ve&&(e.name===t||e.name===r)&&(a=e)}),i=a?{bone:a,quaternion:new B,position:new H,scale:new H}:null,n.set(t,i)}if(i)return r.includes(i)||(i.quaternion.copy(i.bone.quaternion),i.position.copy(i.bone.position),i.scale.copy(i.bone.scale),r.push(i)),i.bone}},bones:n,reached:r},nt.set(e,t),t}function at({entity:e,root:t,seconds:n}){let r=Y.get(e);if(!r)return!1;let{posed:i}=it(t);for(let e=0;e<r.length;e++)r[e](i,n);return!0}function ot(e){let t=nt.get(e);if(!t)return;let{reached:n}=t;for(let e=0;e<n.length;e++){let{bone:t,quaternion:r,position:i,scale:a}=n[e];t.quaternion.copy(r),t.position.copy(i),t.scale.copy(a)}n.length=0}function st(e,t=le){return me(Re,e,t)}st.preload=(e,t=le)=>{me.preload(Re,e,t)};function ct(e){U(()=>()=>e.traverse(e=>{e instanceof V&&e.skeleton.dispose()}),[e])}var lt=class extends Ne{constructor(e,t,n){super(e,t,n);let r=this._customProgramCacheKey;this._customProgramCacheKey=()=>`${r()}|${String(this._onBeforeCompileBase)}${this.readProgramKey()}`}readProgramKey(){return``}},ut=16,X=new we,dt=new we,ft=new we;function pt(e){let t=e.parent;for(;t;){if(!t.visible)return!1;if(!t.parent)return t.isScene===!0;t=t.parent}return!1}function mt(e){let t=[];return e.traverse(e=>{e instanceof V&&t.push(e)}),t}function ht(e){let{material:t,geometry:n}=e;return!Array.isArray(t)&&Object.keys(n.morphAttributes).length===0}var gt=class{source;place;mesh;ownsMaterial;copies=/* @__PURE__ */ new Map;constructor(e,t,n,r){this.source=e,this.place=t,this.mesh=n,this.ownsMaterial=r}},_t=class extends lt{batch;uniformKey;constructor(e,t,n,r){super(t,n,{capacity:ut}),this.batch=e,this.uniformKey=r}readProgramKey(){return`|skinned batch ${this.uniformKey}`}onBeforeShadow(e,t,n,r,i,a,o){this.batch.updateOnce(e.info.render.frame),super.onBeforeShadow(e,t,n,r,i,a,o)}onBeforeRender(e,t,n,r,i,a){this.batch.updateOnce(e.info.render.frame),super.onBeforeRender(e,t,n,r,i,a)}computeBoundingBox(){let e=this.boundingBox??=new ye;e.makeEmpty();let t=new ye,n=this.batch.findPart(this);for(let r of n?.copies.values()??[])this.getVisibilityAt(r.id)&&(r.mesh.computeBoundingBox(),r.mesh.boundingBox&&e.union(t.copy(r.mesh.boundingBox).applyMatrix4(r.mesh.matrixWorld)));e.isEmpty()||e.applyMatrix4(ft.copy(this.matrixWorld).invert())}raycast(){}},vt=class extends xe{parts;ownParts;uniforms;copies=/* @__PURE__ */ new Set;updatedFrame=-1;warmHolds=0;warmIds=[];onEmpty;constructor(e,t={}){super(),this.name=`skinned batch of ${e.name||`a model`}`,this.uniforms=t.uniforms;let n=[];mt(e).forEach((e,r)=>{if(!ht(e))return;let i=this.createPart(e,r,t);i&&n.push(i)}),this.parts=n,this.ownParts=n}get copyCount(){return this.copies.size}addCopy(e){let t=[],n=mt(e);for(let e of this.ownParts){let r=n[e.place];r?.geometry===e.source.geometry&&r.visible&&t.push(this.addCopyPart(e,r))}let r={root:e,parts:t,remove:()=>{if(this.copies.delete(r)){for(let e of t)e.part.copies.delete(e.id),bt(e.part.mesh,e.id),e.mesh.visible=!0;this.copies.size===0&&this.onEmpty?.()}}};return this.copies.add(r),r}update(){for(let e of this.ownParts){let{mesh:t}=e,n=e.source.skeleton.bones.length,r=t.boneTexture.image.data;dt.copy(t.matrixWorld).invert();for(let i of e.copies.values()){let e=pt(i.mesh);if(t.getVisibilityAt(i.id)!==e&&t.setVisibilityAt(i.id,e),e){Ct(i,r,i.id*n),t.boneTexture.enqueueUpdate(i.id),t.setColorAt(i.id,i.color);for(let e in i.uniforms)t.setUniformAt(i.id,e,i.uniforms[e])}}}}updateOnce(e){e!==this.updatedFrame&&(this.updatedFrame=e,this.update())}holdWarmUp(){this.warmHolds===0&&(this.warmIds=this.ownParts.map(e=>this.addWarmInstance(e))),this.warmHolds+=1;let e=!0;return()=>{e&&(e=!1,--this.warmHolds,!(this.warmHolds>0)&&(this.ownParts.forEach((e,t)=>bt(e.mesh,this.warmIds[t])),this.warmIds=[]))}}findPart(e){return this.ownParts.find(t=>t.mesh===e)}dispose(){for(let e of[...this.copies])e.remove();for(let{mesh:e,ownsMaterial:t}of this.ownParts){e.dispose();let n=[t?e.material:void 0,e.customDepthMaterial,e.customDistanceMaterial];for(let e of n)e&&!Array.isArray(e)&&e.dispose();e.geometry.dispose()}this.removeFromParent(),super.dispose()}createPart(e,t,n){let r=e.material,i=n.dress?.(r,e);if((i??r).transparent)return null;let a=i??r.clone(),o=Object.entries(this.uniforms??{}).map(([e,t])=>`${e}:${xt(t)}`).join(`,`),s=e.geometry.clone(),c=new _t(this,s,a,o);return c.name=e.name,c.frustumCulled=!1,c.perObjectFrustumCulled=!1,c.castShadow=n.castShadow??!1,c.receiveShadow=n.receiveShadow??!1,c.customDepthMaterial=new Ee,c.customDistanceMaterial=new De,c.initSkeleton(e.skeleton,!1),this.uniforms&&Object.keys(this.uniforms).length>0&&c.initUniformsPerInstance({fragment:Object.fromEntries(Object.entries(this.uniforms).map(([e,t])=>[e,xt(t)]))}),c.setColorAt(0,yt),this.add(c),new gt(e,t,c,i===void 0)}addInstance(e){let t=e.mesh;t.instancesCount===t.capacity&&(t.resizeBuffers(t.capacity*2),t.boneTexture.resize(t.capacity));let n=-1;return t.addInstances(1,(e,t)=>{n=t}),n}addWarmInstance(e){let t=this.addInstance(e),{boneTexture:n}=e.mesh,r=e.source.skeleton.bones.length;return n.image.data.fill(0,t*r*16,(t+1)*r*16),n.enqueueUpdate(t),t}addCopyPart(e,t){let n=this.addInstance(e);t.visible=!1;let r={part:e,mesh:t,id:n,color:new be(1,1,1),uniforms:St(this.uniforms??{})};return e.copies.set(n,r),r}},yt=new be(1,1,1);function bt(e,t){e.removeInstances(t),e.instancesCount===0&&(e.count=0)}function xt(e){return typeof e==`number`?`float`:`isColor`in e||`z`in e?`w`in e?`vec4`:`vec3`:`vec2`}function St(e){return Object.fromEntries(Object.entries(e).map(([e,t])=>[e,typeof t==`number`?t:t.clone()]))}function Ct(e,t,n){let{mesh:r}=e,{bones:i,boneInverses:a,boneMatrices:o}=r.skeleton,s=ft.multiplyMatrices(dt,r.matrixWorld).multiply(r.bindMatrixInverse);for(let e=0;e<i.length;e++){let c=i[e];c?X.multiplyMatrices(c.matrixWorld,a[e]):X.identity(),o&&X.toArray(o,e*16),X.premultiply(s).multiply(r.bindMatrix),X.toArray(t,(n+e)*16)}}var wt=/* @__PURE__ */ new WeakMap;function Tt(e,t){let n=wt.get(e);n||wt.set(e,n=/* @__PURE__ */ new WeakMap);let r=n.get(t);return r||n.set(t,r=/* @__PURE__ */ new Map),r}function Et(e,t){let n=e.get(t);n&&(clearTimeout(n.releaseTimer),n.releaseTimer=setTimeout(()=>Dt(e,t),3e4))}function Dt(e,t){let n=e.get(t);!n||n.holders>0||n.batch.copyCount>0||(e.delete(t),n.batch.dispose())}function Ot(e,{key:t=``,...n}={}){let r=he(e=>e.scene),i=ue(L.Batch),a=Tt(r,e),o=a.get(t);if(!o){let r=new vt(i?e:new xe,n);o={batch:r,holders:0},a.set(t,o),r.onEmpty=()=>Et(a,t)}let{batch:s}=o;W(()=>{let e=a.get(t);if(e&&e.batch===s)return e.holders+=1,s.parent!==r&&r.add(s),()=>{--e.holders,Et(a,t)}},[s,a,t,r]);let c=R(e=>e.covered);return W(()=>c?s.holdWarmUp():void 0,[s,c]),s}var kt=/* @__PURE__ */ new WeakMap;function Z(e,t){if(!e)return t;let n=kt.get(e);n||kt.set(e,n=/* @__PURE__ */ new WeakMap);let r=n.get(t);return r||n.set(t,r=e(t)),r}function At(e,t){return Array.isArray(t)?t.map(t=>Z(e,t)):Z(e,t)}var jt=/* @__PURE__ */ new WeakMap,Mt=0;function Nt(e){let t=jt.get(e);return t===void 0&&(Mt+=1,t=`material ${Mt}`,jt.set(e,t)),t}function Pt({url:e,lift:t,animation:n,entity:r,material:i}){try{let{scene:a,animations:o}=st(e),s=G(()=>t??m(a),[t,a]),l=Fe(r,c),u=Fe(r,y),[d]=q(()=>Ve(r?.get(c))),[f]=q(()=>Ve(r?.get(y)));return n||l||u?/* @__PURE__ */ J(Ht,{url:e,scene:a,animations:o,animation:n??``,entity:r,seenPlays:d,seenUpperPlays:f,standing:s,material:i}):i?/* @__PURE__ */ J(Ft,{scene:a,standing:s,material:i}):/* @__PURE__ */ J(Pe,{object:a,"position-y":s,"rotation-y":x,castShadow:!0,receiveShadow:!0})}catch(e){throw F(`StandingModelView`,e)}}function Ft({scene:e,standing:t,material:n}){try{let r=G(()=>{let t=Le(e);return t.traverse(e=>{e instanceof Te&&(e.castShadow=!0,e.receiveShadow=!0,e.material=At(n,e.material))}),t},[n,e]);return ct(r),/* @__PURE__ */ J(`primitive`,{object:r,dispose:null,"position-y":t,"rotation-y":x})}catch(e){throw F(`DressedModel`,e)}}var It=/* @__PURE__ */ new Set;function Lt({world:e,url:t,name:n,animations:r,by:i}){let a=`${t}\n${n}`,o=r.map(e=>e.name).join(`, `);!It.has(a)&&E(e,`${i} names "${n}", a clip the model ${t} lacks, so it plays none. Its clips: ${o||`none`}.`)&&It.add(a)}var Rt=/* @__PURE__ */ new WeakMap;function zt(e){let t=Rt.get(e);return t||Rt.set(e,t=e.clone()),t}function Bt(e){return{plays:e,action:null,fadeSeconds:0,hold:!1,start:0,end:0,speed:1,stopped:!1,weight:0}}function Vt({world:e,entity:t,url:n,animations:r,oneShot:i,mixer:a,loop:o,deltaSeconds:s}){let l=t.get(c);if(l&&l.plays!==i.plays){i.plays=l.plays;let t=l.name?ge.findByName(r,l.name):void 0;if(t){let n=a.clipAction(zt(t));i.action!==n&&i.action?.stop(),i.end=Ue({world:e,clip:t,end:l.end}),i.start=Math.min(l.start,i.end),i.speed=l.speed,n.reset().setLoop(Se,1),n.clampWhenFinished=!0,n.time=i.start,n.timeScale=i.speed,n.play(),i.action=n,i.fadeSeconds=l.fadeSeconds,i.hold=l.hold,i.stopped=!1}else i.stopped=!0,l.name&&Lt({world:e,url:n,name:l.name,animations:r,by:`playClip`})}let{action:u,start:d,end:f,speed:p}=i;if(!u)return;We({action:u,end:f,deltaSeconds:s});let m=o?Math.min(i.fadeSeconds,(f-d)/p/2):0,h=!!l?.name&&!i.stopped&&(i.hold||(f-u.time)/p>m);i.weight=o&&i.fadeSeconds>0?Ce.clamp(i.weight+(h?1:-1)*s/i.fadeSeconds,0,1):Number(h),u.setEffectiveWeight(i.weight),o?.setEffectiveWeight(1-i.weight),!h&&i.weight===0&&(u.stop(),i.action=null)}function Ht({url:e,scene:t,animations:n,animation:r,entity:i,seenPlays:a,seenUpperPlays:o,standing:s,material:c}){try{let l=Ie(),{skinned:u,fileMaterials:d}=G(()=>{let e=Le(t),n=/* @__PURE__ */ new Map;return e.traverse(e=>{e instanceof Te&&(e.castShadow=!0,e.receiveShadow=!0,n.set(e,e.material)),e instanceof V&&(e.frustumCulled=!1)}),{skinned:e,fileMaterials:n}},[t]),f=G(()=>{for(let[e,t]of d)e.material=At(c,t);return u},[u,d,c]);ct(f);let p=Ot(t,{key:c?Nt(c):``,dress:c&&(e=>Z(c,e)),castShadow:!0,receiveShadow:!0});W(()=>{let e=p.addCopy(f);return()=>e.remove()},[p,f]);let m=G(()=>new _e(f),[f]),h=K(null);U(()=>{if(!r)return;let t=ge.findByName(n,r);if(!t){Lt({world:l,url:e,name:r,animations:n,by:`The entity's animation`});return}let i=m.clipAction(t).play();return h.current=i,()=>{h.current=null,i.stop()}},[r,n,m,e,l]),U(()=>()=>{m.stopAllAction(),m.uncacheRoot(f)},[f,m]);let[g]=q(()=>Bt(a)),[_]=q(()=>Ke(o)),v=G(()=>Ge(f),[f]),y=G(()=>new Map(n.map(e=>[e.name,e])),[n]);return pe(P(`AnimatedModelView`,(t,r)=>{ot(f),qe(_),i?.isAlive()&&Vt({world:l,entity:i,url:e,animations:n,oneShot:g,mixer:m,loop:h.current,deltaSeconds:r}),m.update(r),i?.isAlive()&&(tt({world:l,entity:i,layer:_,root:f,spine:v,clips:y,deltaSeconds:r}),at({entity:i,root:f,seconds:r}))})),/* @__PURE__ */ J(`primitive`,{object:f,dispose:null,"position-y":s,"rotation-y":x})}catch(e){throw F(`AnimatedModelView`,e)}}Pt.displayName=`StandingModelView`,Ft.displayName=`DressedModel`,Ht.displayName=`AnimatedModelView`;function Ut({name:e,animation:t,entity:n,material:r,children:i}){try{let a=_(e);return/* @__PURE__ */ ze(ke,{fallback:/* @__PURE__ */ J(Be,{name:`the model ${a}`}),children:[/* @__PURE__ */ J(Pt,{url:a,lift:C(e),animation:t,entity:n,material:r??p(e)}),i]})}catch(e){throw F(`ModelView`,e)}}Ut.displayName=`ModelView`;function Wt(e,t,n){let r=null,i=e=>{r=e,e.add(ae({path:t})),n(e)},a=e.get(ie)?.get(t);a?.isAlive()&&i(a);let o=e.onAdd(M,e=>{e.get(M)?.id===t&&i(e)}),s=e.onRemove(M,e=>{e===r&&(r=null,n(null))});return()=>{o(),s(),r?.isAlive()&&r.remove(ae)}}function Gt(e,t=j){return Me(n=>{e.isAlive()&&(n?e.add(t({object:n})):e.remove(t))},[e,t])}var Kt=Ae(null),qt=Ae(null);function Jt(e){return e===void 0?null:e instanceof B?e.toArray():[...e]}function Yt(e){return e===void 0?null:typeof e==`number`?e:e instanceof H?e.toArray():[...e]}function Q({prefab:t,model:c,animation:p,material:m,name:h,position:g=[0,0,0],rotation:y,scale:ee,authority:x=A.Server,body:S,collider:C,ai:T,children:E}){try{let D=c??t?.model,oe=p??t?.animation,O=C??t?.collider,A=S??t?.body,j=Ie(),N=n(),P=je(Kt),[F,I]=q(null);D!==void 0&&_(D);let L=O&&JSON.stringify(O),R=A&&JSON.stringify(A),z=G(()=>O!==void 0&&f(u(O)),[L]),ce=G(()=>z&&D!==void 0&&a(D),[z,D]);z&&d(D,ce);let le=K(g),ue=K(y),de=K(ee),fe=K(x),pe=K(O),me=K(A),he=K(t),ge=K(D);U(()=>{if(N!==void 0&&j.has(ie))return Wt(j,N,I);let e=i(j,he.current,{position:le.current,rotation:ue.current,scale:de.current,model:ge.current,collider:pe.current,body:me.current});e.add(re({context:fe.current}),se),N!==void 0&&j.has(ne)&&e.add(ae({path:N})),P!==null&&e.add(te({ground:P})),I(e);let t=j.onRemove(k,t=>{t===e&&I(null)});return()=>{t(),e.isAlive()&&r(j,e)}},[j,N,P]);let _e=K({colliderWords:L,bodyWords:R});return U(()=>{if(!F?.isAlive()||F.has(M))return;let e=_e.current;if(e.colliderWords===L&&e.bodyWords===R)return;if(_e.current={colliderWords:L,bodyWords:R},!O){F.remove(w(l),w(s),w(v));return}let t=u(O);b(F,l,{colliders:t});let n=o(A);b(F,s,n);let r=[...A?.ignore??[]];F.has(w(v))?b(F,v,{ignore:r}):r.length>0&&F.add(w(v)({ignore:r}))},[F,L,R]),F===null?null:/* @__PURE__ */ J(Qt,{entity:F,model:D,animation:oe,material:m,name:h,position:g,rotation:y,scale:ee,authority:x,ai:T,children:N===void 0?E:/* @__PURE__ */ J(e,{value:N,children:E})})}catch(e){throw F(`Entity`,e)}}var Xt=new H,$=new B;function Zt(e,t){g(e.get(S)?.handle??void 0,t,{})}function Qt({entity:e,model:n,animation:r=``,material:i,name:a,position:o,rotation:s,scale:c,authority:u,ai:d,children:p}){try{let m=Ie(),g=!e.has(M),_=JSON.stringify(o),v=JSON.stringify(Jt(s)),y=JSON.stringify(Yt(c));U(()=>{let t=g&&e.isAlive()?e.get(k):void 0;if(!t)return;let n=JSON.parse(_),r=!t.position.equals(Xt.set(...n));t.position.copy(Xt),e.set(k,t),r&&Zt(m,e)},[m,e,g,_]),U(()=>{let t=g&&e.isAlive()?e.get(k):void 0;if(!t)return;let n=JSON.parse(v);n?n.length===4?$.fromArray(n):O($,[n[0],n[1],n[2]]):$.identity();let r=!t.rotation.equals($);t.rotation.copy($),e.set(k,t),r&&Zt(m,e)},[m,e,g,v]),U(()=>{let t=g&&e.isAlive()?e.get(k):void 0;if(!t)return;let n=JSON.parse(y);n===null?t.scale.setScalar(1):typeof n==`number`?t.scale.setScalar(n):oe(t.scale,[n[0],n[1],n[2]]),e.set(k,t)},[e,g,y]),U(()=>{g&&e.isAlive()&&e.set(re,{context:u})},[e,g,u]),U(()=>{g&&e.isAlive()&&(n===void 0?e.remove(T):e.has(T)?e.set(T,{name:n,animation:r}):e.add(T({name:n,animation:r})))},[e,g,n,r]);let b=d&&JSON.stringify(d);U(()=>{if(g&&e.isAlive()){if(b===void 0)e.remove(I);else{let{is:t=``,facts:n=[],actions:r=[]}=JSON.parse(b);e.has(I)?e.set(I,{is:t,facts:n,actions:r}):e.add(I({is:t,facts:n,actions:r}))}}},[e,g,b]);let te=Gt(e),x=t(),S=f(e.get(w(l))?.colliders??[]),C=G(()=>S&&n!==void 0?ee(n):void 0,[S,n]);U(()=>{S&&n!==void 0&&e.isAlive()&&C&&e.add(h({points:C}))},[e,S,n,C]);let ne=de({id:String(e.id()),name:a,through:a===void 0?Q:void 0,owner:Q,kind:ce.Entity,entityId:D(m,e)});return/* @__PURE__ */ J(qt,{value:e,children:/* @__PURE__ */ J(fe,{value:ne,children:/* @__PURE__ */ ze(`group`,{ref:te,name:a,children:[n!==void 0&&!x&&/* @__PURE__ */ J(Ut,{name:n,animation:r,entity:e,material:i}),p]})})})}catch(e){throw F(`AliveEntity`,e)}}function $t(){let e=je(qt);if(e===null)throw N(/* @__PURE__ */ Error(`useEntity() is called outside an <Entity>: call it in a component rendered inside <Entity>.`),`SP0008`,`useEntity`);return e}Q.displayName=`Entity`,Qt.displayName=`AliveEntity`;export{tt as C,We as D,qe as E,Be as O,Ge as S,Ve as T,st as _,Gt as a,at as b,Pt as c,Z as d,At as f,ct as g,lt as h,Kt as i,Bt as l,vt as m,qt as n,Wt as o,Ot as p,$t as r,Ut as s,Q as t,Vt as u,rt as v,Ue as w,Ke as x,ot as y};
@@ -0,0 +1 @@
1
+ import{a as e}from"./CVgRrBP4.js";import{b as t,k as n,y as r}from"./Cq6VqPHb.js";import{createContext as i,use as a,useEffect as o,useMemo as s}from"react";import{useFiber as c}from"its-fine";var l=i(null);function u(e){if(typeof e==`function`)return(`displayName`in e&&typeof e.displayName==`string`?e.displayName:e.name)||void 0;if(typeof e!=`object`||!e)return;let t=e;return t.displayName??u(t.render)??u(t.type)}var d=/* @__PURE__ */ new WeakMap,f=0;function p(e){return m(e,u(e.type)??`Component`)}function m(e,t){let n=d.get(e)??(e.alternate&&d.get(e.alternate));if(n)return n;f+=1;let r={id:`group:${f}`,name:t};return d.set(e,r),r}function h(e,t,n){let r=!1;for(let i=e;i&&i.type!==n?.type;i=i.return){if(!r){r=i.type===t;continue}let e=u(i.type);if(e)return m(i,e)}}function g(i){let d=a(l),f=i.parent??d,p=c(),{id:m,kind:g,entityId:_,props:v,wiki:y,source:b,description:x,ranges:S,entity:C,traits:w,propName:T}=i,E=e(e=>e.edits),D=i.readOnlyReason??n(C,w,E),O=i.name??(i.through&&u(i.through))??g,k=i.through??i.owner,A=p&&k?h(p,k,f):void 0,j=i.through?A:void 0,M=i.type??p?.type;return o(()=>{if(m!==null)return r({id:m,name:O,kind:g,entityId:_,group:j,owner:A,parentId:f?.id??null})},[m,O,g,_,j,A,f]),o(()=>{m!==null&&t(m,{props:v,wiki:y,source:b,description:x,ranges:S,entity:C,traits:w,readOnlyReason:D,propName:T})},[m,v,y,b,x,S,C,w,D,T]),s(()=>({id:m??``,type:M}),[m,M])}export{g as i,p as n,u as r,l as t};
@@ -0,0 +1 @@
1
+ import{Ao as e,Ho as t,Io as n,Jo as r,Ko as i,jo as a,pn as o,qo as s,vn as c,yn as l}from"./-MLBVTaO.js";import{s as u}from"./BrfUaL46.js";import{T as d}from"./CVgRrBP4.js";import{r as f}from"./Bydoy8wO.js";import{n as p}from"./BJclgjKG.js";import{n as m,r as h}from"./BGDOC3Q-.js";import{i as g}from"./DZIhHLUn.js";import{t as _}from"./DR9bHgf0.js";import{useEffect as v}from"react";import{Button as y}from"@spawnite/ui";import{jsx as b}from"react/jsx-runtime";var x=d()(()=>({slots:[],equipment:{}}));function S({slot:e=g.Right}){try{let{entity:n}=_(),r=x(e=>e.slots);return/* @__PURE__ */ b(m,{slot:e,variant:h.Bare,children:r.map((e,r)=>{if(!e)return null;let{displayName:i,equip:a}=t(e.item);return/* @__PURE__ */ b(y,{onPress:()=>{n&&(a?c(n,r):o(n,{slot:r}))},children:`${i} ×${e.count}`},r)})})}catch(e){throw u(`Bag`,e)}}S.displayName=`Bag`;function C(){try{let t=f();return p(e,{}),v(()=>(t.isAlive()&&!t.has(s)&&t.add(s),()=>{let e=t.isAlive()&&t.get(s);if(e){for(let n of Object.values(i))e[n]&&l(t,n);t.remove(s)}}),[t]),null}catch(e){throw u(`Equipment`,e)}}C.displayName=`Equipment`;function w({slots:e}){try{let t=f();return p(a,{slots:e}),v(()=>{t.isAlive()&&n(t,e)},[t,e]),v(()=>()=>{t.isAlive()&&t.remove(r)},[t]),null}catch(e){throw u(`Inventory`,e)}}w.displayName=`Inventory`;export{x as i,C as n,S as r,w as t};
@@ -0,0 +1 @@
1
+ import{n as e}from"./BrfUaL46.js";import{t}from"./CRfoqBKG.js";import{u as n}from"./Dwfie-ev.js";import{a as r,i,t as a}from"./DlkDsMQd.js";import{n as o,r as s,t as c}from"./CSXcU95U.js";import{i as l,n as u,r as d,t as f}from"./Dh5kh1nX.js";import{Device as p}from"mediasoup-client";var m=.1;function h({noiseSuppression:e,autoGainControl:t}){return{noiseSuppression:e,autoGainControl:t}}function g(e){return typeof e==`object`&&!!e&&`name`in e&&(e.name===`NotAllowedError`||e.name===`SecurityError`)}function _(_,y){let b=!1,x,S,C,w,T,E=Promise.resolve(),D=/* @__PURE__ */ new Map,O=/* @__PURE__ */ new Map,k,A=Promise.resolve(),j=c(),M=/* @__PURE__ */ new WeakMap,N;function P(e,n){e.on(`connect`,({dtlsParameters:e},r,i)=>{O.set(n,{answer:r,refuse:i}),_({type:t.Voice,signal:f.Connect,direction:n,dtlsParameters:e})})}async function F(){if(await y.waitForActivation?.(),b||i.getState().muted)return;r.setState({access:a.Asking});let e=await y.openMicrophone(h(n.getState())).catch(e=>{r.setState({access:g(e)?a.Denied:a.Unavailable})});if(e)return r.setState({access:a.Granted}),y.processMicrophone?y.processMicrophone(e):{track:e,stop:()=>e.stop()}}async function I(){let e=w;if(b||!e)return;if(i.getState().muted){if(!C?.track)return;C.pause(),await C.replaceTrack({track:null}),T?.stop();return}if(C?.track?.readyState===`live`)return;let t=await F();if(!t){i.setState({microphone:!1});return}if(b||i.getState().muted)return t.stop();if(T=t,i.setState({microphone:!0}),C){await C.replaceTrack({track:t.track}),C.resume();return}C=await e.produce({track:t.track,codecOptions:l,zeroRtpOnPause:!0})}function L(){E=E.then(I).catch(e=>{R(),v(e)})}function R(){w=void 0,T?.stop(),b||i.setState({microphone:!1})}async function z(e){let n=new p({handlerFactory:y.handlerFactory});if(await n.load({routerRtpCapabilities:e.rtpCapabilities}),b)return;S=n.createRecvTransport(e.receive),P(S,d.Receive);let a=n.createSendTransport(e.send);x=a,P(a,d.Send),a.on(`produce`,({rtpParameters:e},n,r)=>{k={answer:e=>n({id:e}),refuse:r},_({type:t.Voice,signal:f.Produce,rtpParameters:e})}),_({type:t.Voice,signal:f.Listen,rtpCapabilities:n.rtpCapabilities}),w=a,i.setState({microphone:!0}),r.setState({open:!0}),L()}async function B({id:e,producerId:t,speaker:n,rtpParameters:r}){if(!S)return;let i=await S.consume({id:e,producerId:t,kind:`audio`,rtpParameters:r}),a=i.rtpReceiver;a&&`jitterBufferTarget`in a&&(a.jitterBufferTarget=120),D.set(e,{consumer:i,speaker:n,stop:y.playTrack(i.track,n)}),H(),N??=setInterval(U,m*1e3)}function V(e){let t=D.get(e);t&&(D.delete(e),t.stop(),t.consumer.close(),t.speaker!==void 0&&j.forget(t.speaker),H(),U())}function H(){let e=Array.from(D.values(),({speaker:e})=>e).filter(e=>e!==void 0).sort();o(e,r.getState().heard)||r.setState({heard:e})}function U(){let e=performance.now();for(let{consumer:t,speaker:n}of D.values()){let r=t.rtpReceiver;n!==void 0&&r&&j.hear(n,s(r,M),e)}let t=j.read(e);o(t,r.getState().speakers)||r.setState({speakers:t})}function W({refused:t,direction:n}){let r=e(/* @__PURE__ */ Error(`The room could not answer ${t}.`),`SP0369`,void 0);if(t===f.Produce&&k){k.refuse(r),k=void 0;return}let i=n&&O.get(n);if(t===f.Connect&&i){i.refuse(r),O.delete(n);return}v(r)}let G=i.subscribe(({muted:e},t)=>{e!==t.muted&&(e&&T?.stop(),L())}),K=n.subscribe((e,t)=>{let n=h(e),r=h(t);(n.noiseSuppression!==r.noiseSuppression||n.autoGainControl!==r.autoGainControl)&&C?.track?.readyState===`live`&&(T?.stop(),L())}),q=y.watchMicrophonePermission?.(e=>{let{access:t}=r.getState();e===`granted`&&t===a.Denied?L():e===`denied`&&t===a.Granted&&r.setState({access:a.Denied})});return _({type:t.Voice,signal:f.Open}),{receive:e=>{if(!b){if(e.signal===u.Connected){O.get(e.direction)?.answer(),O.delete(e.direction);return}if(e.signal===u.Produced){k?.answer(e.id),k=void 0;return}if(e.signal===u.Failed)return W(e);if(e.signal===u.Unavailable){r.setState({unavailable:!0});return}A=A.then(async()=>{b||(e.signal===u.Opened?await z(e):e.signal===u.Consume?await B(e):V(e.id))}).catch(v)}},close:()=>{if(!b){b=!0,G(),K(),q?.(),clearInterval(N);for(let e of D.keys())V(e);T?.stop(),x?.close(),S?.close(),i.setState({microphone:!1}),r.setState({open:!1,unavailable:!1,access:a.Unasked,talking:!1,pushing:!1,inputDecibels:-1/0,heard:[],speakers:[]})}}}}function v(e){console.warn(`Voice stopped, and the game plays on without it. Check that the page may use the microphone, and that the room has voice on:`,e)}export{_ as openVoice};
@@ -0,0 +1 @@
1
+ import{tt as e}from"./CU0epHFG.js";import{ca as t,l as n}from"./-MLBVTaO.js";import{or as r}from"./V70ADx0g.js";import{n as i,s as a}from"./BrfUaL46.js";import{m as o,u as s}from"./BobsCMiL.js";import{r as c,w as ee}from"./CVgRrBP4.js";import{Et as l,bt as te}from"./Cq6VqPHb.js";import{c as ne,n as u}from"./CRfoqBKG.js";import{a as re}from"./BEL83Bb6.js";import{u as d}from"./Dwfie-ev.js";import{S as ie,x as f}from"./CHntUxHl.js";import{_ as p,b as m,l as h,u as g}from"./BQnBIIt8.js";import{c as _,n as v,t as ae}from"./Dqx9hHBK.js";import{c as y,o as b,s as oe,t as x}from"./B_HFa2lJ.js";import{a as S,c as C,d as se,f as ce,h as le,i as w,l as ue,m as T,n as E,o as D,p as de,s as O,u as fe}from"./B0WN1jqX.js";import{Vector3 as pe}from"three";import{useEffect as k}from"react";import{useProgress as me}from"@react-three/drei";import{useWorld as A}from"koota/react";import{Fragment as j,jsx as M,jsxs as N}from"react/jsx-runtime";var he=1e3,P=10,ge=30;function F(e){let[t,n,r,...a]=y(e);if(t?.kind!==x.Session||n?.kind!==x.Resume||r?.kind!==x.Keyframe)throw i(/* @__PURE__ */ Error(`The dev server's window does not open on a keyframe.`),`SP0312`,void 0);return{session:b(t),welcome:b(n),keyframeAt:r.at,keyframe:b(r),records:a}}async function _e({id:e,session:t,at:n,to:r}){let i=new URLSearchParams({from:String(Math.round(n)),to:String(Math.round(r)),...t!==void 0&&{session:t}}),a=await fetch(`${_}/${e}/window?${i}`);if(!a.ok)throw Error(await a.text());return new Uint8Array(await a.arrayBuffer())}var I=()=>void 0,L={hidden:!1};function ve(){return{backlog:p(),receivedBytes:0,sentBytes:0,refusedShotOrigins:0,status:c.Joined,refusal:null,full:null,buildMismatch:null,lastDrop:null,notice:null,sendMoves:I,sendEdit:I,sendWalk:I,sendShot:I,sendItem:I,sendMessage:()=>null,sendPress:I,leave:()=>Promise.resolve(!1),move:I,close:I}}var R=()=>new Promise(e=>requestAnimationFrame(()=>e())),z=()=>new Promise(e=>setTimeout(e,0)),ye=()=>new Promise(e=>{let t=new MessageChannel;t.port1.onmessage=()=>{t.port1.close(),e()},t.port2.postMessage(null)}),be=e=>e.gl.info.programs??[],xe=new pe;function B(t,{fetch:a=_e}={}){let c=ve(),d={id:t.id,phase:`loading`,at:t.at,to:t.to,frames:0,gameMilliseconds:0,largestDriftMetres:0,lastDriftMetres:0,opening:{staleFrames:0,keyframeFrames:0,keyframePrograms:0,staleMilliseconds:0}},p=[],h=performance.now.bind(performance),g=/* @__PURE__ */ new WeakMap,_=()=>{for(let e of document.getAnimations?.()??[]){let{playState:t}=e;if(t===`finished`||t===`idle`)continue;let n=g.get(e);n===void 0&&(n=K,g.set(e,n)),t!==`paused`&&e.pause();let r=(K-n)*e.playbackRate,i=Number(e.effect?.getComputedTiming().endTime??1/0);Number.isFinite(i)&&r>=i?e.finish():e.currentTime=r}},y,S={seconds:0,now:0},w=null,E,D,k=0,A=0,j,M=0,N=a(t).then(F),I=e=>{d.phase=`failed`,d.error=e instanceof Error?e.message:String(e)},B=e=>p.push({at:d.at,event:e}),Se=(e,t)=>{e.type===v.Menu?ee.setState({open:e.open,settingsOpen:e.settingsOpen}):e.type===v.Lock?E?.setLocked(e.locked):`code`in e&&e.code===`Escape`||(`buttons`in e&&(M=e.buttons),T(e,t))},V=e=>{window.dispatchEvent(new Event(`blur`)),M!==0&&(T({type:v.PointerUp,canvas:!0,x:.5,y:.5,movementX:0,movementY:0,button:M&2?2:0,buttons:0,pointerType:`mouse`,pointerId:1},e),M=0)},H=e=>{let t=se(e),n=w?.readRoom()?.session.character?.get(r)?.position;if(!t||!n)return;let i=xe.copy(n).distanceTo(new pe().fromArray(t));d.lastDriftMetres=i,d.largestDriftMetres=Math.max(d.largestDriftMetres,i)},U=(e,t)=>{switch(e.kind){case x.RoomBytes:case x.RoomText:{let t=ne(e.kind===x.RoomBytes?e.payload:oe(e));t.type===u.Pong?y&&re(y,t,(D?.session.startedAtMilliseconds??0)+e.at):t.type!==u.Voice&&m(c.backlog,t,L);return}case x.Resume:m(c.backlog,b(e),L);return;case x.Input:Se(b(e),t);return;case x.Keyframe:H(b(e));return}},W=async(e,t)=>{if(!w||!D)return d;let n=w.readThree(),r=n.gl.domElement,{records:i}=D;d.phase=`playing`;let a=0;for(;k<i.length;){let o=i[k];if(o.at>e)break;if(o.kind!==x.Frame){U(o,r),k++;continue}for(;me.getState().active;)await z();_(),K=G+o.at-D.keyframeAt,d.at=o.at,S.seconds=o.seconds,S.now=D.session.startedAtMilliseconds+o.at;let s=h();q(n,o.gameSeconds);let c=h()-s;c>50&&B({type:ae.LongFrame,milliseconds:c,covered:!1}),d.frames++,d.gameMilliseconds+=o.gameSeconds*1e3,k++,t===`frame`||t===`settle`&&o.at>e-500?(await R(),await ye()):++a>=ge&&(a=0,await z())}return _(),d.phase=k>=i.length?`ended`:`paused`,d},G=0,K=0,Ce=()=>K,q=(e,t)=>{f(e),e.clock.elapsedTime=A,A+=t,e.advance(A)},we=(e,t=!1)=>{let n=d.at,r=0,i=D?.records??[];for(let a=k;a<i.length;a++){let o=i[a];if(o.kind!==x.Frame){a===i.length-1&&(n=o.at);continue}let s=o.gameSeconds*1e3;if(!t&&r+s>e||(n=o.at,r+=s,t&&r>=e-.001))break}return{at:n,spent:r}},Te=e=>(D?.keyframeAt??0)+e-G,Ee=e=>{let{loading:t,covered:n}=l.getState(),r=e.readRoom();return r!==null&&r.session.character!==null&&!t&&!n&&(!D?.keyframe.camera||o(e.world)!==null&&s(e.world)!==void 0)},De=async(e,t)=>{let n=e.readThree(),r=n.gl.domElement;D=t,k=0,m(c.backlog,t.welcome,L);let i=d.opening={staleFrames:0,keyframeFrames:0,keyframePrograms:0,staleMilliseconds:0},a;for(;c.backlog.welcome===t.welcome||!Ee(e);)l.getState().covered||(a??=h(),i.staleFrames++),q(n,0),await R();a??=h(),E??=le(r);let{keyframe:o}=t;ce(e,o),E.setLocked(o.held.locked),ee.setState(o.menu);do{await R();let e=be(n),t=e.filter(e=>!e.isReady()).length,r=e.length;q(n,0),i.keyframeFrames++===0&&(i.keyframePrograms=t+be(n).length-r,i.staleMilliseconds=h()-a)}while(te());for(let e of o.held.keys)T(e,r);M=o.held.buttons,o.held.buttons!==0&&T({type:v.PointerDown,canvas:!0,x:.5,y:.5,movementX:0,movementY:0,button:o.held.buttons&2?2:0,buttons:o.held.buttons,pointerType:`mouse`,pointerId:1},r);for(let e=0;e<P;e++)K+=he/P,await R(),await ye(),_();G=Math.max(h(),K),K=G,performance.now=Ce,d.at=t.keyframeAt,d.largestDriftMetres=0,H(o)},Oe=async e=>{let t=e.readThree();ie(t,`never`),f(t),A=t.clock.elapsedTime,await De(e,await N),d.phase=`ready`,Y=[ue((e,t)=>B({type:e,message:t})),fe((e,t)=>p.push({at:Te(t),event:e}))]},ke=async e=>{if(!w)return d;let n=w;return V(n.readThree().gl.domElement),await De(n,F(await a({...t,at:e}))),W(e,`settle`)},J,Y=[],X=async e=>{if(await J,d.phase===`failed`)return{...d};let t=j;j=(async()=>(await t,e()))();try{return{...await j}}catch(e){return I(e),{...d}}},Z,Q=async()=>{let e=Z;return e?(e.stop=!0,await e.done,{...d}):{...d}},$={readStatus:()=>({...d,opening:{...d.opening}}),runTo:(e,t=`settle`)=>X(()=>W(e,t)),async runFor(e){let t=0;return{...await X(()=>{let n=we(e,!0);return t=n.spent,W(n.at,`settle`)}),steps:Math.round(t/1e3/n)}},async seek(e){return await Q(),X(()=>{let t=D?.records.at(-1)?.at??-1/0;return e>=d.at&&e-d.at<=3e3&&e<=t?W(e,`settle`):ke(e)})},async settle(){return await Q(),X(()=>ke(d.at))},play(e=1){if(!(e>0)||!Number.isFinite(e))throw i(/* @__PURE__ */ Error(`Cannot play at ${e}: not a positive speed`),`SP0313`,void 0);Z&&(Z.stop=!0);let t={stop:!1,done:Promise.resolve()};return t.done=(async()=>{await Z?.done;let n=0,r=h();for(;!t.stop&&(await R(),!t.stop);){let t=h();n+=(t-r)*e,r=t;let i=await X(()=>{let{at:e,spent:t}=we(n);return n-=t,W(e,`fast`)});if(i.phase===`ended`||i.phase===`failed`)break;d.phase=`playing`}d.phase===`playing`&&(d.phase=`paused`),Z===t&&(Z=void 0)})(),Z=t,d.phase=`playing`,{...d}},pause:Q,redraw(){w&&q(w.readThree(),0)},readMoment:e=>de(t,e,d.at),readLog:()=>[...p]};return e.openRoom=(e,t)=>(y=t,c),e.readRoomFrame=()=>S,e.attachLoop=e=>{if(w=e,!e){E?.stop();for(let e of Y)e();Y=[],performance.now=h;return}J=Oe(e).catch(I),navigator.webdriver||$.runTo(t.to,`frame`)},e.markEngineEvents=!0,e.createCanvas=f,e.frameloop=`never`,N.catch(I),C.setState({mode:O.Play,recording:!1}),window.__GAME_REPLAY__=$,$}var Se=60;function V(e){let n=new URLSearchParams(e),r=n.get(`replay`);if(r===O.Off)return{mode:O.Off};if(r===null||!t(r))return{mode:O.Record};let i=Number(n.get(`at`)??0)*1e3,a=n.has(`to`)?Number(n.get(`to`))*1e3:i+Se*1e3,o=n.get(`session`);return{mode:O.Play,playback:{id:r,...o!==null&&{session:o},at:i,to:a}}}function H(e=window.location.search){let{mode:t,playback:n}=V(e);n?B(n):t===O.Record&&w(),E(t)}function U({game:e,room:t}){try{let n=A(),r=C(e=>e.shownMark),i=C(e=>e.unprotectedMarks.includes(e.shownMark??-1));return k(()=>{let r=S();if(r)return D(r,e,n,t)},[e,n,t]),r===null?null:/* @__PURE__ */ N(`p`,{role:`status`,className:`pointer-events-none fixed top-[18%] left-1/2 z-50 -translate-x-1/2 rounded-full bg-black/70 px-4 py-1.5 text-sm font-semibold text-white`,children:[`Marked m`,r,`:`,` `,i?`marks fill their share, so this one protects nothing`:`the replay keeps this moment`]})}catch(e){throw a(`ReplayLayer`,e)}}function W(){try{let e=C(e=>e.mode),t=C(e=>e.recording),n=C(e=>e.markMoment),r=d(e=>e.keepReplay);return e!==O.Record||r&&!t?null:/* @__PURE__ */ N(j,{children:[r&&/* @__PURE__ */ N(g,{onPress:n,className:`justify-between`,children:[`Mark this moment`,/* @__PURE__ */ M(`kbd`,{className:`rounded border border-menu-edge bg-menu-raised px-1.5 font-sans text-[11px] leading-4 font-semibold text-white/80`,children:`F8`})]}),/* @__PURE__ */ M(`p`,{className:`mt-1 text-center text-[13px] text-menu-muted`,children:r?`Replay is on · F8 marks this moment`:`Replay is off: Settings, Graphics`})]})}catch(e){throw a(`ReplayMenuRows`,e)}}function G(){try{let e=d(e=>e.keepReplay);return/* @__PURE__ */ M(h,{label:`Keep a replay`,description:`Keeps your play on this machine for an agent to find a moment in; F8 marks one. Development builds only.`,value:e,onChange:e=>d.getState().changeSetting(`keepReplay`,e)})}catch(e){throw a(`ReplaySettingRow`,e)}}U.displayName=`ReplayLayer`,W.displayName=`ReplayMenuRows`,G.displayName=`ReplaySettingRow`;export{U as ReplayLayer,W as ReplayMenuRows,O as ReplayMode,G as ReplaySettingRow,H as installReplay,V as readReplayRequest,C as useReplay};
@@ -0,0 +1 @@
1
+ import{n as e}from"./BrfUaL46.js";import{MathUtils as t}from"three";import{ScatterFamily as n,findTerrainCell as r,scatterKinds as i}from"@spawnite/schema";var a=.5,o=.25,s=.25,c=1e4;function l(e,n){return 1-t.smoothstep(e,n*a,n)}var u=(t,n)=>e(/* @__PURE__ */ Error(`A ${t} m radius dabs a ${n} m stroke more than ${c} times: widen the radius or shorten the stroke.`),`SP0107`,void 0);function d(e,t){let n=t*s;if(!(n>0))throw u(t,0);let r=e,i=e,a=0,o=1,l=0;return{first:[[e[0],e[1]]],add:e=>{let[s,d]=r,[f,p]=e;r=e;let m=Math.hypot(f-s,p-d);l+=m;let h=[];if(m===0)h.push([f,p]),a=0;else{let e=n-a;if(o+(m-e)/n+1>c)throw u(t,l);for(;e<=m+1e-9;){let t=e/m;h.push([s+(f-s)*t,d+(p-d)*t]),e+=n}a=m-(e-n)}if(o+=h.length,o>c)throw u(t,l);return h.length>0&&(i=h[h.length-1]),h},end:()=>Math.hypot(r[0]-i[0],r[1]-i[1])>1e-9?[r[0],r[1]]:null}}function f({points:e,radius:t},n,r){let i=d(e[0],t),a=e=>{let t=/* @__PURE__ */ new Set;r(t);for(let[r,i]of e)n(r,i,t,!1);let a=i.end();return a&&n(a[0],a[1],t,!0),[...t]};a(i.first);for(let t=1;t<e.length;t++)a(i.add(e[t]));return e=>a(i.add(e))}function p(e,t){return m(e,t).change()}function m(e,{tool:n,points:r,radius:i,strength:a,shape:s,lower:c,level:u}){let{size:d,cell:p,base:m,offsets:h}=e,g=Math.round(d/p)+1,_=d/2,v=/* @__PURE__ */ new Map,y=/* @__PURE__ */ new Map,b=/* @__PURE__ */ new Set,x=e=>m[e]+(Number.isNaN(h[e])?0:h[e]),S=u??(([e,n])=>{let r=t.clamp((e+_)/p,0,g-1),i=t.clamp((n+_)/p,0,g-1),a=Math.min(Math.floor(r),g-2),o=Math.min(Math.floor(i),g-2),s=r-a,c=i-o,l=(e,t)=>x(e*g+t);return t.lerp(t.lerp(l(o,a),l(o,a+1),s),t.lerp(l(o+1,a),l(o+1,a+1),s),c)})(r[0]),C=Math.ceil(i/p);function w(e,r,u,d){let f=Math.round((e+_)/p),w=Math.round((r+_)/p),T=(t,n)=>{let i=t*p-_-e,a=n*p-_-r;return s===`square`?Math.max(Math.abs(i),Math.abs(a)):Math.hypot(i,a)},E=T(f,w)>=i,D=Math.max(w-C,0),O=Math.max(f-C,0),k=Math.min(w+C,g-1),A=Math.min(f+C,g-1);if(D>k||O>A)return;let j=Math.max(D-1,0),M=Math.max(O-1,0),N=Math.min(A+1,g-1)-M+1,P=n===`smooth`?Float64Array.from({length:(Math.min(k+1,g-1)-j+1)*N},(e,t)=>x((j+Math.floor(t/N))*g+M+t%N)):void 0;for(let e=D;e<=k;e++)for(let r=O;r<=A;r++){let s=E&&e===w&&r===f?0:T(r,e);if(s>=i)continue;let p=a*l(s,i);if(p<=0)continue;let _=e*g+r;v.has(_)||(v.set(_,h[_]),d&&b.add(_)),d&&!y.has(_)&&y.set(_,h[_]);let C=x(_),D;if(n===`sculpt`)D=C+(c?-1:1)*p*i*o;else if(n===`flatten`)D=t.lerp(C,S,p);else{let n=(e,n)=>P[(t.clamp(e,0,g-1)-j)*N+t.clamp(n,0,g-1)-M],i=(n(e-1,r)+n(e+1,r)+n(e,r-1)+n(e,r+1))/4;D=t.lerp(C,i,p)}h[_]=D-m[_],u.add(_)}}let T=f({points:r,radius:i},w,e=>{for(let[t,n]of y)h[t]=n,e.add(t),b.has(t)&&v.delete(t);y.clear(),b.clear()}),E=e=>Number.isNaN(e)?null:e;return{level:S,extend:T,change:()=>{let e=[...v.keys()];return{points:e,before:e.map(e=>E(v.get(e))),after:e.map(e=>E(h[e]))}}}}function h(e,{points:t,height:n}){let r=t.map(t=>Number.isNaN(e.offsets[t])?null:e.offsets[t]);return t.forEach((t,r)=>{e.offsets[t]=n[r]??NaN}),{points:[...t],before:r,after:[...n]}}var g=Object.values(n);function _(e,t){let n=t=>Number.isNaN(t)?null:e.palette[t],r=g.flatMap(n=>{let r=e.scatter?.[n]?.[t];return r===void 0||Number.isNaN(r)?[]:[[n,r]]}),i=g.flatMap(n=>{let r=e.erased?.[n]?.get(t);return r?.length?[[n,r]]:[]});return{paint:n(e.paint[t]),overlay:n(e.overlay[t]),blend:Number.isNaN(e.blend[t])?null:e.blend[t],...r.length>0&&{scatter:Object.fromEntries(r)},...i.length>0&&{erased:Object.fromEntries(i)}}}function v(e,t,n){let r=t=>{if(t===null)return NaN;let n=e.palette.indexOf(t);return n<0&&(n=e.palette.push(t)-1),n};e.paint[t]=r(n.paint),e.overlay[t]=r(n.overlay),e.blend[t]=n.blend??NaN;for(let r of g){let i=n.scatter?.[r];(i!==void 0||e.scatter?.[r])&&(e.scatter??={},e.scatter[r]??=new Float64Array(e.paint.length).fill(NaN),e.scatter[r][t]=i??NaN)}for(let r of g){let i=n.erased?.[r];i?.length?(e.erased??={},(e.erased[r]??=/* @__PURE__ */ new Map).set(t,i)):e.erased?.[r]?.delete(t)}}var y=e=>Math.round(e*1e3)/1e3;function b(e,t,n,r){let i={overlay:null,blend:null};if(n>=1)return{paint:t,...i};let a=e.paint??r,o=e.blend??0;if(t===a){let t=y(o-n);return t>0&&e.overlay!==null?{...e,blend:t}:{paint:e.paint,...i}}if(t===e.overlay){let r=y(o+n);return r>=1?{paint:t,...i}:{...e,blend:r}}return{paint:e.overlay!==null&&o>.5?e.overlay:e.paint,overlay:t,blend:y(n)}}function x(e,{families:t=[],multiplier:n=1,clear:r},i){let a={...e.scatter};for(let e of t)r?delete a[e]:a[e]=y((a[e]??1)+(n-(a[e]??1))*i);let{paint:o,overlay:s,blend:c,erased:l}=e;return{paint:o,overlay:s,blend:c,...Object.keys(a).length>0&&{scatter:a},...l&&{erased:l}}}var S=(e,[t,n])=>`${e} ${t} ${n}`;function C(e,t){let{erased:n,...r}=e,i=Object.entries(e.erased??{}).flatMap(([e,n])=>{let r=n.filter(n=>!t.has(S(e,n)));return r.length>0?[[e,r]]:[]});return i.length>0?{...r,erased:Object.fromEntries(i)}:r}function w(e,t,n){return T(e,t,n).change()}function T(e,t,n){let{tool:r,points:i,radius:a,strength:o,shape:s,material:c,clear:u}=t,{size:d,cell:p}=e,m=Math.round(d/p),h=d/2,g=Math.ceil(a/p),y=r===`scatter`&&(u||(t.multiplier??1)>1),w=/* @__PURE__ */ new Set,T=/* @__PURE__ */ new Set,E=/* @__PURE__ */ new Map,D=/* @__PURE__ */ new Map,O=/* @__PURE__ */ new Map,k=i=>{let a=Math.max(E.get(i)??0,D.get(i)??0),o=O.get(i),s=a<=0?o:r===`scatter`?x(o,t,a):u?{...o,paint:null,overlay:null,blend:null}:{...b(o,c,a,n(i)),...o.scatter&&{scatter:o.scatter},...o.erased&&{erased:o.erased}};v(e,i,T.has(i)?C(s,w):s)};function A(n,r,i,c){let u=c?D:E,d=Math.floor((n+h)/p),f=Math.floor((r+h)/p),v=(e,t)=>{let i=(e+.5)*p-h-n,a=(t+.5)*p-h-r;return s===`square`?Math.max(Math.abs(i),Math.abs(a)):Math.hypot(i,a)};if(y)for(let o=Math.max(f-g-1,0);o<=Math.min(f+g+1,m-1);o++)for(let c=Math.max(d-g-1,0);c<=Math.min(d+g+1,m-1);c++){let l=o*m+c,u=O.get(l)??_(e,l),d=!1;for(let e of t.families??[])for(let t of u.erased?.[e]??[]){let i=t[0]-n,o=t[1]-r;(s===`square`?Math.max(Math.abs(i),Math.abs(o)):Math.hypot(i,o))>=a||(w.add(S(e,t)),d=!0)}d&&(O.has(l)||O.set(l,u),T.add(l),k(l),i.add(l))}let b=v(d,f)>=a,x=Math.min(f+g,m-1),C=Math.min(d+g,m-1);for(let t=Math.max(f-g,0);t<=x;t++)for(let n=Math.max(d-g,0);n<=C;n++){let r=b&&t===f&&n===d?0:v(n,t);if(r>=a)continue;let s=o*l(r,a),c=t*m+n;s<=(u.get(c)??0)||(O.has(c)||O.set(c,_(e,c)),u.set(c,s),k(c),i.add(c))}}return{extend:f({points:i,radius:a},A,e=>{let t=[...D.keys()];D.clear();for(let n of t)k(n),e.add(n)}),change:()=>{let t=[...O.keys()].filter(e=>T.has(e)||Math.max(E.get(e)??0,D.get(e)??0)>0);return{points:[],before:[],after:[],cells:t,paintBefore:t.map(e=>O.get(e)),paintAfter:t.map(t=>_(e,t))}}}}function E(e,t,n){let{points:a,radius:o,shape:s,families:c=[]}=t,l=n.filter(({kind:e})=>c.includes(i[e].family)),u=/* @__PURE__ */ new Map;f({points:a,radius:o},(t,n)=>{l=l.filter(({kind:a,position:c})=>{let l=c.x-t,d=c.z-n;if((s===`square`?Math.max(Math.abs(l),Math.abs(d)):Math.hypot(l,d))>=o)return!0;let f=[c.x,c.z],p=r(e,f),m=_(e,p);u.has(p)||u.set(p,m);let h=i[a].family;return v(e,p,{...m,erased:{...m.erased,[h]:[...m.erased?.[h]??[],f]}}),!1})},()=>void 0);let d=[...u.keys()];return{points:[],before:[],after:[],cells:d,paintBefore:d.map(e=>u.get(e)),paintAfter:d.map(t=>_(e,t))}}function D(e,t,n){return O(e,[r(e,n)],(e,r)=>{let i=r.erased?.[t]??[];return i.some(([e,t])=>e===n[0]&&t===n[1])?r:{...r,erased:{...r.erased,[t]:[...i,n]}}})}function O(e,t,n){let r=[],i=[],a=[];for(let o of t){let t=_(e,o);v(e,o,n(o,t)),r.push(o),i.push(t),a.push(_(e,o))}return{points:[],before:[],after:[],cells:r,paintBefore:i,paintAfter:a}}function k(e,{material:t,level:n,clear:r,rect:i},a){let{size:o,cell:s}=e.paint,c=o/2,l=i?([e,t])=>e>=Math.min(i[0][0],i[1][0])&&e<=Math.max(i[0][0],i[1][0])&&t>=Math.min(i[0][1],i[1][1])&&t<=Math.max(i[0][1],i[1][1]):e=>a(e)>.5,u=(e,t)=>{let n=[];for(let r=0;r<e;r++)for(let i=0;i<e;i++)l([(i+t)*s-c,(r+t)*s-c])&&n.push(r*e+i);return n},d=Math.round(o/s);if(n!==void 0){let{base:t,offsets:r}=e.height,i=u(d+1,0),a=e=>Number.isNaN(e)?null:e,o=i.map(e=>a(r[e]));for(let e of i)r[e]=n-t[e];return{points:i,before:o,after:i.map(e=>r[e])}}return O(e.paint,u(d,.5),(e,n)=>({...n,paint:r?null:t,overlay:null,blend:null}))}function A(e,{cells:t,paint:n}){let r=new Map(t.map((e,t)=>[e,n[t]]));return O(e,t,e=>r.get(e))}export{k as a,p as c,h as d,D as i,m as l,T as n,_ as o,E as r,A as s,w as t,a as u};
@@ -0,0 +1 @@
1
+ import{$d as e,$f as t,Ai as n,As as r,Bi as i,C as a,Ds as o,E as s,Ed as c,Es as l,Fs as u,Hi as d,Ii as ee,Ji as te,Ki as ne,Kl as re,Lf as ie,Mi as f,N as ae,Pi as p,Qi as oe,Rf as se,Ri as ce,Ss as le,Ui as ue,Vi as de,Wi as fe,Xf as m,_ as pe,_u as me,a as he,c as ge,d as _e,ec as ve,g as ye,go as be,hf as xe,ho as Se,j as Ce,ji as we,ks as Te,l as h,lf as Ee,lt as De,mo as Oe,mu as ke,pu as g,s as Ae,sf as _,t as je,tf as Me,tl as Ne}from"./-MLBVTaO.js";import{Cr as Pe,Ct as Fe,D as Ie,Dt as Le,Er as Re,Et as ze,Fn as v,Hn as Be,In as y,Jn as b,Kn as x,Mn as Ve,Nn as S,Pn as C,Q as He,Rn as w,Rt as Ue,Sr as T,St as We,Tt as Ge,Un as E,Vt as Ke,Wn as qe,Xn as D,ar as Je,br as O,bt as Ye,er as k,fn as Xe,fr as Ze,gt as A,ht as j,jt as Qe,lr as $e,mt as et,or as M,rr as N,un as P,vt as F,wr as tt,wt as nt,xr as rt,xt as it,zn as at}from"./V70ADx0g.js";import{n as ot,o as st}from"./BrfUaL46.js";import{L as ct,n as I,o as lt,t as L}from"./CRfoqBKG.js";import{n as ut,s as dt,t as ft}from"./BEL83Bb6.js";import{a as pt,n as mt,o as ht,s as gt,t as _t}from"./BiH9xCBB.js";import{useFrame as vt}from"@react-three/fiber";import{Vector3 as R}from"three";import{createQuery as z,trait as yt}from"koota";import{defaultRoomSendRate as bt,stepsPerSecond as xt}from"@spawnite/schema";function St(e){e.internal.frames=0,e.clock.autoStart=!1,e.clock.running=!1}function Ct(e,t){let{elapsedTime:n}=e.clock;e.setFrameloop(t),e.clock.elapsedTime=n}var wt=0,B=class{scaleSeconds;autoStart;startTime;oldTime;elapsedTime;running;unscaledSeconds=0;scaledSeconds=0;constructor(e,t){this.scaleSeconds=t,this.autoStart=e.autoStart,this.startTime=e.startTime,this.oldTime=e.oldTime,this.elapsedTime=e.elapsedTime,this.running=e.running}start(){this.startTime=this.oldTime=performance.now(),this.elapsedTime=0,this.running=!0}stop(){this.running=!1,this.autoStart=!1}getElapsedTime(){return this.elapsedTime}getDelta(){let e=0;if(this.autoStart&&!this.running)this.start();else if(this.running){let t=performance.now();e=(t-this.oldTime)/1e3,this.oldTime=t}return wt++,this.unscaledSeconds=e,this.scaledSeconds=this.scaleSeconds(e),this.elapsedTime+=this.scaledSeconds,this.scaledSeconds}};function Tt(e,t){let n=e.clock,r=new B(n,t);return e.set({clock:r}),()=>{n.start(),n.elapsedTime=r.elapsedTime,e.set({clock:n})}}function Et(e,t){let{clock:n}=e;return n instanceof B&&t===n.scaledSeconds?n.unscaledSeconds:t}function Dt(e){return e.clock instanceof B?wt:0}function Ot(e,t){vt(st(`useUnscaledFrame`,(t,n)=>e(t,Et(t,n))),t)}function kt(){return{pressRecords:[],sentPresses:[],pressReplay:!1}}function At(e,t){t.pressRecords.length=0,t.sentPresses.length=0,t.pressReplay=!1,e.has(j)||e.add(j);let n=e.get(j);n&&(n.queued.length=0)}function jt(e,t,n){for(let r of Ue(e,n,A.Predicted)){r.charged||it(e,r);let n=r.status===void 0;n||(r.result=A.Final);let{entity:i,name:a,payload:o,origin:s}=r,c=Number((r.atSeconds*xt-s.tick).toFixed(3));t.pressRecords.push({entity:i,name:a,payload:o,origin:s,fraction:c,sent:n,room:null}),n&&t.sentPresses.push({type:L.Press,tick:s.tick,ordinal:s.ordinal,name:a,payload:Le(r),...c>0&&{fraction:c},...i.has(at)&&{entity:Ke(e,i)}}),nt(e,r)}}function Mt(e){return e?.status===F.Dropped}function Nt({origin:e,sent:t,room:n},r){if(!t||Mt(n))return null;if(n)return n.ranTick??e.tick;let i=Math.max(e.tick,r);return i>e.tick+17?null:i}function Pt(e,t,{character:n,tick:r,firstTick:i}){for(let a of t.pressRecords){if(a.entity!==n||Nt(a,i)!==r)continue;let{name:t,payload:o,origin:s,fraction:c,room:l}=a;ze(e,t,o)===void 0&&nt(e,Fe({entity:n,name:t,payload:o,origin:s,fraction:c,result:l?A.None:A.Predicted}))}}function Ft(e,t,n){t.room=n,Qe(e,t.name,{origin:t.origin,payload:t.payload,status:n.status,...n.reason!==void 0&&{reason:n.reason},...n.detail!==void 0&&{detail:n.detail},...n.ranTick!==void 0&&{ranTick:n.ranTick},predicted:!1})}function It(e,t,n,r){let{pressRecords:i}=t;for(let a of n){let n=i.find(({origin:e})=>e.tick===a.tick&&e.ordinal===a.ordinal);n&&!n.room&&(Ft(e,n,a),n.sent&&a.status===F.Dropped&&(r===void 0||a.tick>r)&&(t.pressReplay=!0))}if(r===void 0)return;let a=0;for(let t of i){let n=Nt(t,r+1);if(t.origin.tick>r||n!==null&&n>r){i[a++]=t;continue}t.sent&&!t.room&&Ft(e,t,{...t.origin,status:F.Dropped,reason:et.Late})}i.length=a}var V={deltaSeconds:h},Lt={deltaSeconds:h},Rt={},H,zt=/*#__PURE__*/ z(M,m),Bt=/* @__PURE__ */ new Map,Vt=/* @__PURE__ */ new Map,Ht=/* @__PURE__ */ new WeakSet;function Ut(e){O(e,zt,([{position:e}],t)=>{Wt(Bt,t,e);let n=t.get($e);n&&Wt(Vt,t,n)})}function Wt(e,t,n){let r=e.get(t);r?r.copy(n):e.set(t,n.clone())}function Gt(e){let t=!1;return O(e,zt,([{position:e}],n)=>{if(n===V.rerunEntity)return;let r=Bt.get(n),i=n.get($e),a=Vt.get(n);(r&&!r.equals(e)||i&&a&&!a.equals(i))&&(t=!0)}),t}function Kt(e,t,n){if(!e.has(C)||Ht.has(t))return t(e,V);Ut(e),t(e,V),Gt(e)&&(Ht.add(t),v(e,`The predicted system ${t.name||`systems[${n}]`} moved a character on a step of another alone: on a step with step.rerunEntity, step her and no other.`))}function qt(e,{character:t,steps:n,pushes:r=!1,sweep:i}){let a=e.get(he)??[],o=_e(e);o&&tt(e),V.rerunEntity=t,V.pushes=r,V.sweep=i;let{tick:s}=ye(e,V);se(!0);try{ve(()=>Jt(e,{tick:s,steps:n,systems:a,guarded:o}))}finally{se(!1)}}function Jt(e,{tick:t,steps:n,systems:r,guarded:i}){for(let o=0;o<n;o++){V.tick=t+o,a(),u(),Ye(e,V);for(let t=0;t<r.length;t++){let n=r[t];if(De(n)){if(!i){Kt(e,n,t);continue}Pe(e);try{Kt(e,n,t)}finally{Re()}}}Ge(e)}}function Yt(e,{character:t,input:n,steps:r,sweep:i}){ge(Rt,n),Lt.input=Rt,Ae(e,Lt),H??={character:t,steps:r},H.character=t,H.steps=r,H.sweep=i,qt(e,H)}var Xt=.1,Zt=.1,Qt=.4;function $t(){let e=ft();return{playerId:null,player:null,characterId:null,character:null,control:[],predictedSet:[],setChanged:!1,edits:!1,snapshotSeconds:0,stretchSeconds:e.interpolationSeconds,moves:Array.from({length:192},()=>({sequence:0,tick:-1,entries:[],size:0})),sequence:0,stepping:!1,correcting:!1,predicted:/* @__PURE__ */ new Set,roomSequence:0,firstSequence:0,corrections:0,correctionMetres:0,correctionChecks:0,correctionFields:[],replayedSteps:0,rerunMilliseconds:0,takenSweeps:0,tiedSweeps:0,steadyCorrectionSeconds:0,roomTraits:{},walkCredit:lt(),clock:e,sendRate:bt,roomTick:0,pace:null,tick:0,...kt()}}function en(e,t,n){return t===`authority`||rt(e,b,`context`)===N.Client&&(qe.has(t)||n.has(t))}function U(e,t=!1){let{predicted:n}=e;return{owns:(e,t)=>en(e,t,n),welcome:t}}var tn=/*#__PURE__*/ z(M,k),nn=/*#__PURE__*/ z(D);function rn(e,t){T(e,tn,([e,n],r)=>{x(r)&&(n.position.lerp(e.position,t),n.rotation.slerp(e.rotation,t),n.scale.lerp(e.scale,t))}),T(e,nn,([e],n)=>{x(n)&&(e.previous+=(e.drop-e.previous)*t)})}function an(e){T(e,tn,([e,t],n)=>{x(n)&&Ze(t,e)}),T(e,nn,([e],t)=>{x(t)&&(e.previous=e.drop)})}var W=/*#__PURE__*/ yt({count:0}),on=/*#__PURE__*/ z(Je);function sn(e){O(e,on,([{count:e}],t)=>{if(!x(t))return;let n=t.get(W);if(!n){t.add(W({count:e}));return}if(n.count===e)return;t.set(W,{count:e});let r=t.get(M),i=t.get(k);r&&i&&Ze(i,r);let a=t.get(D);a&&t.set(D,{previous:a.drop})})}function G(e,t,n){n&&e.has(C)&&(t.roomTraits=oe(t.roomTraits,n))}var cn=new R;function ln(e,t){e.get(k)?.position.sub(t),e.has(y)||e.add(y);let n=e.get(y);if(n){if(t.length()>2){n.offset.set(0,0,0),n.previous.set(0,0,0),e.set(y,{seconds:0});return}n.offset.add(t),n.previous.add(t),e.set(y,{seconds:Math.min(Xt*Math.max(1,n.offset.length()/Zt),Qt)})}}var un=.5,dn=5;function fn(e,t){let n=e?.isAlive()?{...ae(e),...Ce(e)}:{},r=[],i=(e,t,n)=>`${e} (page ${JSON.stringify(t)}, room ${n===null?`none`:JSON.stringify(n)})`;for(let[e,a]of Object.entries(t)){if(e===`authority`||qe.has(e))continue;let t=n[e];if(a===null){e in n&&r.push(i(e,t,null));continue}if(!P(t,a)){if(!Xe(t)||!Xe(a)){r.push(i(e,t,a));continue}for(let n in a)P(t[n],a[n])||r.push(i(`${e}.${n}`,t[n],a[n]))}}return r}function pn(e,t){if(!e.has(C))return null;let{corrections:n,correctionChecks:r}=t;if(r===0||n<r*un)return t.steadyCorrectionSeconds=0,null;if(t.steadyCorrectionSeconds++,t.steadyCorrectionSeconds<dn)return null;let i=fn(t.character,t.roomTraits),a=i.length>0?`a system on the page writes ${i.join(`, `)} differently from the room. A system that changes what her page predicts, such as her speed, is a predicted system, marked predicted: true, which both ends run and her page re-runs after a correction; one that reads or writes what the room alone holds runs on the room alone`:`the page moves her otherwise than the room, though every trait the room sends of her matches. Compare the systems that move her on the page with the room's`,o=e.get(Oe)?.checks?.describeCorrections()??``,s=`The room corrected this page's character ${t.corrections} times a second for ${t.steadyCorrectionSeconds} s: ${a}.${o}`;return t.steadyCorrectionSeconds===dn&&v(e,s),s}var K;function mn(e,t,n,r,i){S(e,r.tick),Pt(e,t,{character:n,tick:r.tick,firstTick:hn}),K??={character:n,input:r,steps:1},K.character=n,K.input=r,K.sweep=i,Yt(e,K)}var hn=0;function gn({moves:e,sequence:t,tick:n},r){for(let n=r+1;n<=t;n++){let t=e[n%192];if(t.sequence===n)return t.tick}return n}function q(e,{id:t,serial:n}){for(let r=0;r<e.size;r++){let i=e.entries[r];if(i.id===t&&i.serial===n)return i}return null}function J(e,t){let n=q(e,t);if(n)return n;let r=e.entries[e.size];if(!r)r={id:t.id,serial:t.serial,rewound:{},sweep:Te()},e.entries.push(r);else{r.id=t.id,r.serial=t.serial;for(let e in r.rewound)delete r.rewound[e];r.sweep.valid=!1,r.sweep.entity=null}return e.size++,r}function _n(e,t,n){let{moves:i,predictedSet:a}=t;if(a.length===0)return;let o=Ve(e);hn=gn(t,n);for(let o=n+1;o<=t.sequence;o++){let n=i[o%192];if(n.sequence===o){for(let i of a){let a=J(n,i);mn(e,t,i.entity,n,a.sweep),t.replayedSteps++,a.sweep.reused&&!r.check&&t.takenSweeps++,a.sweep.refused&&t.tiedSweeps++}vn(t,n)}}for(let{entity:e}of a)c(e);S(e,o)}function vn({predictedSet:e,predicted:t},n){for(let r of e)we(r.entity,J(n,r).rewound,t)}function yn(e,t,n){if(!t.has(_)||n&&l(e,t,n))return;let r=t.get(Ee);o(e,t,{grounded:r?.isGrounded??!0,fallSpeed:r?.verticalSpeed??0,floorRead:!0})}function bn({predicted:e}){return new Set([...e].filter(e=>i.has(e)))}var xn=`the move acknowledged, which her page never ran`,Sn=`a press the room dropped, which her page ran`,Y=`a change of what her player controls`,Cn=[];function wn(e,t){let n={field:null,checkedField:null,movementMatched:!0},r=bn(e);for(let i of e.predictedSet){let{roomRewound:a,entity:o}=i,s=kn(i),c=q(t,i);if(!c){n.field??=Y,n.checkedField??=Y,n.movementMatched=!1;continue}let l={names:e.predicted,derived:ee(o,e.predicted)},u=p(c.rewound,a,l);u!==null&&(n.field??=u,n.checkedField??=s.size===0?u:p(c.rewound,a,{...l,names:An(e.predicted,s)}),p(c.rewound,a,{...l,names:r})!==null&&(n.movementMatched=!1),e.correctionMetres=Math.max(e.correctionMetres,ce(c.rewound,a)))}return n}function Tn(e,t){t.correcting=!0;for(let n of t.predictedSet)d(n.entity,n.roomRewound,t.predicted),yn(e,n.entity,null);t.correcting=!1}function En(e,t){let{predictedSet:n,roomSequence:r}=t,i=t.setChanged;if(t.setChanged=!1,n.length===0||n.some(({roomRewound:e})=>Ln(e)))return;if(r<t.firstSequence||r>t.sequence||r<=t.sequence-192){i&&Tn(e,t);return}let a=t.moves[r%192],o=a.sequence===r,s=t.pressReplay;t.pressReplay=!1;let c=xn,l=c,u=!1;if(o){t.correctionChecks++;let e=wn(t,a);if(e.field===null&&!s&&!i)return;c=e.field??(s?Sn:Y),l=e.field===null?c:e.checkedField??(s?Sn:null),u=e.movementMatched}else for(let e of n)kn(e);t.corrections++,t.correctionFields.includes(c)||t.correctionFields.push(c),l!==null&&e.get(Oe)?.checks?.noteCorrection(l,u),n.forEach(({entity:e},t)=>{let n=Cn[t]??=new R,r=e.get(M)?.position;r&&n.copy(r)}),t.correcting=!0;for(let e of n)d(e.entity,e.roomRewound,t.predicted);le(e);for(let t of n){let n=o?q(a,t):null;yn(e,t.entity,n?.sweep??null),o&&f(J(a,t).rewound,t.roomRewound)}let ee=performance.now();_n(e,t,r),On(e,t,{milliseconds:performance.now()-ee,ticks:t.sequence-r}),t.correcting=!1,n.forEach(({entity:e},t)=>{let n=Cn[t];ln(e,cn.subVectors(n,e.get(M)?.position??n))})}var Dn=1e3/60/4;function On(e,t,{milliseconds:n,ticks:r}){t.rerunMilliseconds=Math.max(t.rerunMilliseconds,n),!(n<=4.166666666666667||r<=0)&&v(e,`A correction re-ran ${t.predictedSet.length} predicted entities (${t.predictedSet.map(({id:e})=>e).join(`, `)}) over ${r} ticks in ${n.toFixed(1)} ms, past a quarter of a frame (${Dn.toFixed(1)} ms): predict fewer entities, or control some with Simulation.Server, so the page keeps its frame.`)}var X=/* @__PURE__ */ new Set;function kn(e){X.clear();for(let t of e.grants)X.add(t);return e.grants.clear(),X}function An(e,t){let n=/* @__PURE__ */ new Set;for(let r of e)t.has(r)||n.add(r);return n}function jn(e,t){let n=e.get(w),r=t.playerId?n?.get(t.playerId):null;r&&Mn(r),t.player=r??null,t.character=t.characterId?n?.get(t.characterId)??null:null}function Mn(e){e.has(b)?e.set(b,{context:N.Client}):e.add(b({context:N.Client})),e.has(g)||e.add(g)}function Nn(e,t,n){let r=e.get(w);t.correcting=!0;for(let[e,i]of Object.entries(n)){if(t.predictedSet.some(t=>t.id===e))continue;let n=r?.get(e);n?.isAlive()&&d(n,i,t.predicted)}t.correcting=!1}function Pn(e,n,r){Fn(e,n,r),n.control=r,He(e,In(e,r));let i=e.get(w),a=[];for(let{entity:e,serial:o,simulation:s}of r){if(s!==t.Predicted)continue;let r=i?.get(e);if(!r?.isAlive())continue;let c=n.predictedSet.find(t=>t.id===e);if(c?.serial===o){a.push(c);continue}Mn(r),r.has(me)&&!r.has(_)&&r.add(_(xe)),a.push({id:e,entity:r,serial:o,roomRewound:c?.roomRewound??{},grants:/* @__PURE__ */ new Set}),n.setChanged=!0}for(let{entity:e}of n.predictedSet)e.isAlive()&&!a.some(t=>t.entity===e)&&(e.set(b,{context:N.Server}),n.setChanged=!0);n.predictedSet=a}function Fn(e,t,n){let{player:r}=t;if(!r?.isAlive())return;let i=e.get(w);for(let{entity:e,serial:t,simulation:a,context:o=``}of n){let n=i?.get(e);if(!n?.isAlive())continue;let s={controller:r,serial:t,simulation:a,context:o};n.has(m)?n.set(m,s):n.add(m(s))}for(let{entity:e}of t.control){if(n.some(t=>t.entity===e))continue;let t=i?.get(e);t?.get(m)?.controller===r&&t.set(m,{controller:null})}}function In(e,t){let n=[];for(let{context:r}of t){let t=r?Ie(e,r):void 0;t&&!n.includes(t)&&n.push(t)}return n}function Ln(e){for(let t in e)return!1;return!0}function Rn(t){ie(t);let n=t.get(w);if(n){for(let r of n.values())r.isAlive()&&e(t,r);n.clear()}}function zn(e,t,{owned:n,control:r,rewound:i,ack:a,presses:o,grants:s}){n&&Un(e,t,n),r&&Pn(e,t,r);for(let e of t.predictedSet){let t=s[e.id];if(t)for(let n of t)e.grants.add(n);let n=i?.[e.id];n&&f(e.roomRewound,n)}i&&Nn(e,t,i),It(e,t,o,a&&a.sequence>0?a.sequence-1:void 0),a&&(t.roomSequence=a.sequence,t.roomTick=a.sequence,En(e,t))}function Bn(e,t,n){n.characterId!==null&&G(e,n,t.changed[n.characterId]),be(e,t),ue(e,t,U(n)),sn(e)}function Vn(e,t){let n=je(e);if(P(n,t))return;let r=P(n.plugins,t.plugins)?``:` The room lists ${Z(t.plugins)}; the page lists ${Z(n.plugins)}.`,i=P(n.options,t.options)?``:` The room's plugins take ${JSON.stringify(t.options)}; the page's take ${JSON.stringify(n.options)}.`,a=P(n.physics,t.physics)?``:` The room's physics scene steps with ${JSON.stringify(t.physics)}; the page's with ${JSON.stringify(n.physics)}: pass the physics src/game.ts exports to <Game physics>, and re-export it from the scene's file beside the plugins.`,o=P(n.collisionLayers,t.collisionLayers)?``:` The room numbers its collision layers ${Z(t.collisionLayers)}; the page numbers ${Z(n.collisionLayers)}.`;throw ot(/* @__PURE__ */ Error(`This page composed another step than its room. The room runs ${Z(t.systems)}; the page runs ${Z(n.systems)}.${r}${i}${a}${o} The page and the room must run one plugins list from one src/game.ts: the page passes it to <Game plugins>, and the scene's file re-exports it.`),`SP0518`,void 0)}function Z(e){return e?.length?e.join(`, `):`none`}function Hn(e,t,r){if(t.type===I.Ack){zn(e,r,qn(t));return}if(t.type!==I.Pong&&t.type!==I.Voice&&t.type!==I.ShotRefused){if(t.type===I.Owned){Un(e,r,t.traits);return}if(t.type===I.Welcome&&(r.sendRate=t.sendRate,r.roomTick=t.tick+1,dt(r.clock,t.sendRate)),Wn(e,r),t.type===I.Welcome){Vn(e,t.composition),Rn(e),r.character=null,r.player=null,r.control=[],r.predictedSet=[],r.setChanged=!1,r.walkCredit=lt(),r.playerId=t.player,r.characterId=t.character??null,r.edits=t.edits,r.predicted=n(t.predicted),s(e,t.predictionSeed),r.pace=mt(t.tick),At(e,r),We(e),r.tick=r.pace.stepped+1,r.firstSequence=$(r.tick),r.clock.feedback.length=0,r.roomTraits={},t.character!==void 0&&G(e,r,t.snapshot.entities[t.character]),fe(e,t.snapshot,U(r,!0)),t.events&&ne(e,e.get(w)??/* @__PURE__ */ new Map,t.events),sn(e);let i=e.get(E)?.count??0;e.has(E)?e.set(E,{count:i+1}):e.add(E({count:1})),jn(e,r),Pn(e,r,t.controlled),r.setChanged=!1,de(e,r.predicted),e.has(C)&&Se(e,r,t.snapshot),r.correcting=!0;for(let e of r.predictedSet){let n=t.rewound[e.id]??{};d(e.entity,n,r.predicted),f(e.roomRewound,n)}r.correcting=!1}else Bn(e,t.delta,r)}}function Un(e,t,n){let r=e.get(w),{owns:i}=U(t);for(let[a,o]of Object.entries(n)){let n=r?.get(a);n?.isAlive()&&te(n,o,i),a===t.characterId&&G(e,t,o)}}function Wn(e,t){rn(e,Yn(t)),t.snapshotSeconds=0,t.stretchSeconds=t.clock.interpolationSeconds}var Gn=[],Kn={};function qn(e){return{owned:e.owned??null,control:e.control??null,rewound:e.rewound??null,ack:e,presses:e.presses??Gn,grants:e.grants??Kn}}function Jn(e,t,n){let{welcome:r,delta:i}=t;r&&Hn(e,r,n),i&&(Wn(e,n),Bn(e,i,n),i.moments||an(e)),zn(e,n,t)}function Yn({snapshotSeconds:e,stretchSeconds:t}){return Math.min(e/t,1)}function Xn({clock:e,stretchSeconds:t},n){return ut(e,n)-(e.roundTripMilliseconds/2e3+t)/h*e.rate}var Q={deltaSeconds:h},Zn={value:1};function $(e){return e+1}function Qn(e,t,n){let{pace:r,clock:i}=e;if(!r)return null;for(let e of i.feedback.splice(0))gt(r,e);return _t(r,{seconds:t,rate:i.rate,roomTick:i.pongs>0?ut(i,n):null,oneWayMilliseconds:i.roundTripMilliseconds/2})}function $n(e,t){let n=$(e.tick)===e.firstSequence;e.tick+=t,n&&(e.firstSequence=$(e.tick))}function er(e,t,n){let{tick:r}=e;e.sequence=$(r);let i=e.moves[e.sequence%192];i.sequence=e.sequence,i.tick=r,i.size=0;for(let t of e.predictedSet)J(i,t);return pt(t,r),ge(i,n),i}function tr(e,t,n){Zn.value=Yn(t),e.has(Be)?e.set(Be,Zn):e.add(Be(Zn));let{pace:r}=t;if(!r)return Q.input=n,Q.sweep=void 0,pe(e,Q),null;let i=er(t,r,n);Q.input=n;let a=i.size>0?i.entries[0]:void 0;return Q.sweep=a?.sweep,a&&(a.sweep.entity=t.predictedSet[0]?.entity??null,a.sweep.valid=!1,a.sweep.reused=!1),t.stepping=!0,S(e,t.tick),jt(e,t,t.tick),pe(e,Q),t.stepping=!1,vn(t,i),t.tick++,i}var nr={};function rr(e,t,n){if(!t.pace)return;let r=t.player??t.character;re(nr.angles??=[],r?.get(g)?.angles);let i=tr(e,t,nr);i&&n(i),ht(t.pace,t.tick)}function ir({buttons:e,axes:t,vectors:n,angles:r,changes:i}){return{buttons:e||void 0,axes:t?.some(ar)?[...t]:void 0,vectors:n?.some(ar)?[...n]:void 0,angles:r?.some(ar)?[...r]:void 0,changes:i?.length?[...i]:void 0}}function ar(e){return e!==0}function or(e){return e.length>0}function sr(e){let[t,...n]=e;return{type:L.Input,tick:t.tick,...ir(t),next:n.map(ir)}}function cr(e,t,n){let r=null;return e.onChange(ke,e=>{let i=e.get(ke);if(e!==t.character||!t.pace||!i||t.correcting)return;let{corners:a,destination:o}=i,s=a.length===0,{tick:c}=t,l=s?null:[o.x,o.y,o.z];!s&&!ct(t.walkCredit,c)?(a.length=0,r&&o.copy(r)):s||(r??=new R).copy(o),n({type:L.Walk,tick:c,destination:l})})}function lr(e){return e.query(at,Me(Ne)).length}var ur=!1,dr=!1;function fr(e){ur=e}function pr(e){dr=e}function mr(){if(ur)return+!dr}export{Ot as C,Ct as S,cr as _,lr as a,Tt as b,Xn as c,Yn as d,Jn as f,pn as g,rr as h,Qn as i,or as l,tr as m,pr as n,sr as o,$n as p,mr as r,$t as s,fr as t,J as u,Dt as v,St as x,Et as y};
@@ -0,0 +1 @@
1
+ import{fn as e}from"./V70ADx0g.js";import{n as t}from"./BrfUaL46.js";import{i as n,n as r,r as i}from"./D3wyrZ2_.js";import{n as a,t as o}from"./BWOKsReG.js";import{a as s,l as c,n as l,s as u,t as d}from"./DCIejHqp.js";import{useStore as f}from"zustand";import{createContext as p,use as m}from"react";import{createStore as h}from"zustand/vanilla";var g=/* @__PURE__ */ function(e){return e.Platform=`platform`,e.Browser=`browser`,e.Nowhere=`nowhere`,e}({}),_={destination:`nowhere`,load:()=>({record:null,next:1}),hand:()=>void 0};function v(e){return`${e}-record`}function y(e,t,n){let r=v(t),i=`${r}-cleared`,a,o=()=>{let t=n?.takeStart();if(t)return t;let a=e();return n&&(a.getItem(i)??``)!==n.cleared?null:a.getItem(r)};return{destination:`browser`,load:()=>({record:JSON.parse(o()??`null`),next:1}),hand:({number:t,cloud:o,text:s})=>{try{let t=e();t.setItem(r,s),n&&t.setItem(i,n.cleared)}catch{o&&a?.failed(t);return}o&&a?.stored(t)},connect:e=>(a=e,()=>{a===e&&(a=void 0)})}}var b=null;function x(){return b!==null}var S=null,C=null;async function w(){let e=S;await C,T(e)}function T(e){e?.scheduler.stop(),e?.disconnect?.(),S===e&&(S=null)}function E(e,t){if(Object.keys(t).length===0)return e;let n=Object.fromEntries([...Object.entries(e.stores??{}),...Object.entries(t)]);return{...e,stores:n}}function D(e){return{ok:!1,key:``,owner:`the record`,reason:e,message:`The save did not load: the record failed, ${e}. Nothing was restored, and the save must not be written over.`}}function O(e){return{ok:!1,key:``,owner:`the record`,reason:e.reason,message:`The save is past its size limit: ${e.reason}. The game stops, and opens again once a version of the game trims the save.`,pastLimit:!0}}function k(e,t){if(!e?.ok)return null;let n=JSON.stringify(e.record);return r(new TextEncoder().encode(n).byteLength)?t(n).then(e=>{let t=i(e);return t&&O(t)}):null}function A(e,t){return!e.refused&&(e.refused=t,e.scheduler.stop(),e.host.loadFailed?.(t),!0)}var j=e=>e instanceof Error?e.message:String(e);function M({name:r,session:i,host:f,report:p,onRefused:m,page:g,clock:_,pack:v}){if(b)throw t(/* @__PURE__ */ Error(`A page save is already open: one Game on the page saves.`),`SP0350`,void 0);let y=h()(()=>({status:o.Unsaved,destination:`nowhere`,problem:null,size:null})),x=!1,w=!1,M,N,P=null,F=()=>{w&&g?.visibilityState===`hidden`&&S?.scheduler.flush()},I=()=>{if(i.owners.length===0&&s().length===0)return null;let e=i.read();return e?.ok?{ok:!0,record:E(e.record,c())}:e},L={ok:!0,record:{},states:/* @__PURE__ */ new Map},R=(e,t)=>(e.loadFailed?.(t),t),z=(e,t)=>n=>(N?.({keep:!1}),N=void 0,R(e,D(`${t}: ${j(n)}`))),B=e=>{S&&A(S,e)&&m?.(e)},V=e=>{if(x)return L;if(y.setState({destination:e.destination}),e.destination!==`nowhere`&&S){if(S.name!==r)T(S);else if(S.refused)return S.refused;else{let t=S.read();return H(e,{record:t?.ok?t.record:null,next:1},!0)}}let t=z(e,`it could not be read`),n;try{n=e.load()}catch(e){return t(e)}return n instanceof Promise?n.then(t=>H(e,t,!1),t):H(e,n,!1)},H=(e,t,n)=>{let r=z(e,`it could not be restored`);try{let i=U(e,t,n);return i instanceof Promise?i.catch(r):i}catch(e){return r(e)}},U=(t,n,r)=>{let{record:i}=n;if(!e(i)||i.stores===void 0)return W(t,n,/* @__PURE__ */ new Map,r);let a=e(i.stores)?u(i.stores):D(`its stores is no record of keys`),o=e=>e instanceof Map?W(t,n,e,r):R(t,e);return a instanceof Promise?a.then(o):o(a)},W=(t,r,a,o)=>{let{record:s}=r;if(x)return L;let c=l(a)??i.load(s);if(!c.ok)return R(t,c);let u=d({states:a,entries:e(s)&&e(s.stores)?s.stores:void 0,refuse:B});if(u?.refused)return u.unbind({keep:!1}),R(t,u.refused);if(N=u?.unbind,P=e(s)?s:null,t.destination===`nowhere`)return c;let f=o?null:k(I(),v??n);return f instanceof Promise?f.then(e=>G(t,r,c,o,e)):G(t,r,c,o,f)},G=(e,t,n,i,o)=>{let{record:s}=t;return x?(N?.({keep:!1}),N=void 0,L):o?(N?.({keep:!1}),N=void 0,R(e,o)):(i&&S?S.disconnect?.():S={name:r,scheduler:a({read:()=>S?.read()??null,hand:e=>S?.host.hand(e),firstNumber:t.next,stored:s!==null,onChange:e=>S?.onChange(e),onPastLimit:e=>S?.refuse(O(e)),report:(e,t)=>S?.report(e,t),clock:_,pack:v}),host:e,disconnect:void 0,read:I,onChange:()=>void 0,report:p,refused:null,refuse:()=>void 0},S.host=e,S.refuse=B,S.read=I,S.report=p,S.onChange=e=>y.setState(e),S.disconnect=e.connect?.(S.scheduler),w=!0,M=e,g?.addEventListener(`visibilitychange`,F),S.scheduler.start(),y.setState(S.scheduler.state),n)},K={status:y,loaded:f instanceof Promise?f.then(V):V(f),save:()=>{w&&S?.scheduler.save()},refuse:e=>{w&&M&&!x&&B(e)},close:()=>{if(x)return;x=!0,g?.removeEventListener(`visibilitychange`,F),b===K&&(b=null);let e=w?S:null;if(!e){N?.();return}let t=()=>e.scheduler.text===null?P:JSON.parse(e.scheduler.text),n;try{let e=I();n=e===null?null:e.ok?JSON.parse(JSON.stringify(e.record)):t()}catch(e){p(`error`,`The save could not read the record as the game closed: ${j(e)}. The record read before it is kept.`),n=t()}finally{N?.()}let r=n;e.read=()=>r===null?null:{ok:!0,record:r},e.onChange=()=>void 0,e.refuse=t=>void A(e,t),e.scheduler.pause(),C=e.scheduler.saveNow().catch(()=>void 0)}};return b=K,K}function N(){b?.save()}var P=p(null),F=h()(()=>({status:o.Unsaved,destination:`nowhere`,problem:null,size:null}));function I(){return f(m(P)??F)}export{_ as a,N as c,x as i,I as l,P as n,M as o,y as r,w as s,g as t};
@@ -0,0 +1 @@
1
+ import{p as e}from"./BH6Ftfg9.js";import{n as t,t as n}from"./BJIJuxaE.js";import{n as r}from"./Chcm92bZ.js";import{Color as i}from"three";import{ScatterFamily as a,readTerrainGrid as o}from"@spawnite/schema";var s=new i;function c(e,t,{base:n,overlay:r,blend:i,multiplier:a}){let o=0,c=0,l=0,d=0,f=0,p=0,m=0;for(let[e,t]of[[n,1-i],[r,i]])!e.cover||t<=0||(o+=t,c+=e.cover.density*t,l+=e.cover.height*t,e.cover.sway&&(d+=t),e.cover.colour?s.set(e.cover.colour):s.set(e.swatch).multiply(u(e)),f+=s.r*t,p+=s.g*t,m+=s.b*t);e.share[t]=o,e.density[t]=Math.min(c*a,2),e.height[t]=o>0?l/o:0,e.sway[t]=o>0?d/o:0,e.colour.set(o>0?[f/o,p/o,m/o]:[0,0,0],t*3)}var l=new i,u=e=>l.setRGB(...t(e));function d(t,i=r(t)){let s=Math.round(t.size/t.cell),l=n(i.names,e(t.map)),u=t.terrain?.scatter?.[a.Tuft],d=u&&o(u,s),f=s*s,p={share:new Float32Array(f),density:new Float32Array(f),height:new Float32Array(f),colour:new Float32Array(f*3),sway:new Float32Array(f)};for(let e=0;e<f;e++){let t=d?.[e];c(p,e,{base:l[i.base[e]],overlay:l[i.overlay[e]],blend:i.blend[e],multiplier:t===void 0||Number.isNaN(t)?1:t})}return p}function f(e,t){let n=Math.round(e.density[t]*100)/100;return n>0?`grass ${n}`:`bare`}export{d as n,c as r,f as t};
@@ -0,0 +1 @@
1
+ import{Gi as e,l as t}from"./-MLBVTaO.js";import{fn as n}from"./V70ADx0g.js";import{n as r}from"./BrfUaL46.js";var i=4,a=[1,10,100,1e3,1e4],o=2**52,s=15,c=/* @__PURE__ */ `type.welcome.delta.ack.pong.character.snapshot.edits.entities.hash.changed.removed.sequence.sent.step.authority.body.chase.collider.dayClock.turn.input.interact.isGrounded.model.movement.path.playerName.pose.round.steer.trackMover.trackTrigger.transform.trigger.velocity.wallet.spin.bob.pickup.health.rotation.target.turnSeconds.turnSecondsLeft.side.armed.left.right.heading.intent.steering.verticalSpeed.airSeconds.standingOn.corners.destination.state.landSecondsLeft.current.maximum.coins.name.context.server.client.idle.floorNormal.jumpsSinceGrounded.externalVelocity.platformVelocity.launchCount.teleport.count.stats.maxHealth.base.min.max.modifiers.source.flat.percent.more.seconds.tick.next.strafe.pitch.buttons.axes.seenInput.position.scale.attachment.parent.offset.vectors.angles.changes.controlled.controller.serial.simulation.control.rewound.owned.grants.level`.split(`.`),l=new Map(c.map((e,t)=>[e,t]));function u(e){for(let t=0;t<=i;t++){let n=Math.round(e*a[t]);if(Math.abs(n)>o)return-1;if(n/a[t]===e)return t}return-1}function ee(e){let t=0;for(let n of e){let e=u(n);if(e<0)return-1;t=Math.max(t,e)}let n=a[t];for(let t of e){let e=Math.round(t*n);if(Math.abs(e)>o||e/n!==t)return-1}return t}function d(e){return e===void 0||typeof e==`function`||typeof e==`symbol`}var te=new TextEncoder,ne=new TextDecoder,f=class{bytes=/* @__PURE__ */ new Uint8Array(1024);view=new DataView(this.bytes.buffer);length=0;reserve(e){if(this.length+e<=this.bytes.length)return;let t=new Uint8Array(Math.max(this.bytes.length*2,this.length+e));t.set(this.bytes.subarray(0,this.length)),this.bytes=t,this.view=new DataView(t.buffer)}writeByte(e){this.reserve(1),this.bytes[this.length++]=e}writeCount(e){for(;e>=128;)this.writeByte(e%128+128),e=Math.floor(e/128);this.writeByte(e)}writeSigned(e){this.writeCount(e<0?-2*e-1:2*e)}writeFloat(e){this.reserve(8),this.view.setFloat64(this.length,e,!0),this.length+=8}writeUtf8(e){let t=new Uint8Array(e.length*3),{written:n}=te.encodeInto(e,t);this.writeCount(n),this.reserve(n),this.bytes.set(t.subarray(0,n),this.length),this.length+=n}};function p(e,t){m.writeByte(e+Math.min(t,s)),t>=s&&m.writeCount(t)}var m=new f,h=new f,g=[],_=/* @__PURE__ */ new Map;function v(e){let t=l.get(e)??_.get(e);t===void 0&&(t=c.length+g.length,g.push(e),_.set(e,t)),m.writeCount(t)}function y(e){let t=Number.isFinite(e)?u(e):-1;t>=0?(m.writeByte(3+t),m.writeSigned(Math.round(e*a[t]))):Number.isFinite(e)?(m.writeByte(8),m.writeFloat(e)):m.writeByte(0)}var re=63;function b(e,t,n){let r=Math.round(Math.sqrt(t*t-e*e));return n?-r:r}function ie(e,t){if(e.length!==4)return!1;let n=a[t],[r,i,o,s]=e.map(e=>Math.round(e*n));if(r!==0||o!==0||Math.abs(i)>n)return!1;let c=s<0,l=s-b(i,n,c);return Math.abs(l)>re?!1:(m.writeByte(10+t),m.writeSigned(2*i+ +!!c),m.writeSigned(l),!0)}function x(e,t){if(!ie(e,t)){p(48+t*16,e.length);for(let n of e)m.writeSigned(Math.round(n*a[t]))}}function S(t){if(t.length>0&&e(t)){let e=ee(t);if(e>=0)return x(t,e)}p(16,t.length);for(let e of t)w(d(e)?null:e)}function C(e){let t=Object.keys(e).filter(t=>!d(e[t]));p(32,t.length);for(let n of t)v(n),w(e[n])}function w(e){if(e===null||d(e))m.writeByte(0);else if(e===!1)m.writeByte(1);else if(e===!0)m.writeByte(2);else if(typeof e==`number`)y(e);else if(typeof e==`string`)m.writeByte(9),v(e);else if(Array.isArray(e))S(e);else if(n(e))C(e);else throw r(/* @__PURE__ */ Error(`A streamed value holds a ${typeof e}, which the stream cannot carry: keep only numbers, strings, booleans, arrays and plain objects in a streamed trait.`),`SP0175`,void 0)}function T(e,t){let n=0,r=Math.min(e.length,t.length);for(;n<r&&e[n]===t[n];)n++;let i=t.charCodeAt(n-1);return n>0&&i>=55296&&i<=56319&&n--,n}var E=/^(0|[1-9][0-9]{0,14})$/;function D(e){m.length=0,h.length=0,g.length=0,_.clear(),w(e),h.writeCount(g.length);let t=``;for(let e of g){if(E.test(e))h.writeCount(Number(e)*2+1);else{let n=T(t,e);h.writeCount(n*2),h.writeUtf8(e.slice(n))}t=e}let n=new Uint8Array(h.length+m.length);return n.set(h.bytes.subarray(0,h.length)),n.set(m.bytes.subarray(0,m.length),h.length),n}function O(e){if(e.offset>=e.bytes.length)throw r(/* @__PURE__ */ Error(`The frame ends early.`),`SP0176`,void 0);return e.bytes[e.offset++]}var ae=8;function k(e){let t=0,n=1;for(let r=0;r<ae;r++){let r=O(e);if(t+=r%128*n,r<128)return t;n*=128}throw r(/* @__PURE__ */ Error(`A count runs past eight bytes.`),`SP0177`,void 0)}function A(e){let t=k(e);return t%2==0?t/2:-(t+1)/2}function oe(e){let t=k(e),n=e.offset+t;if(n>e.bytes.length)throw r(/* @__PURE__ */ Error(`The frame ends early.`),`SP0176`,void 0);let i=ne.decode(e.bytes.subarray(e.offset,n));return e.offset=n,i}function j(e,t){return M(e,t<s?t:k(e))}function M(e,t){if(t>e.bytes.length-e.offset)throw r(/* @__PURE__ */ Error(`The frame names more entries than the frame has bytes left.`),`SP0178`,void 0);return t}function N(e){let t=e.strings[k(e)];if(t===void 0)throw r(/* @__PURE__ */ Error(`The frame names no such string.`),`SP0179`,void 0);return t}function P(e){let t=O(e);if(t===0)return null;if(t===1)return!1;if(t===2)return!0;if(t>=3&&t<8)return A(e)/a[t-3];if(t===8){if(e.offset+8>e.bytes.length)throw r(/* @__PURE__ */ Error(`The frame ends early.`),`SP0176`,void 0);let t=e.view.getFloat64(e.offset,!0);return e.offset+=8,t}if(t===9)return N(e);if(t>=10&&t<=14){let n=a[t-10],r=A(e),i=Math.floor(r/2),o=b(i,n,r-2*i==1)+A(e);return[0,i/n,0,o/n]}if(t>=16&&t<32)return Array.from({length:j(e,t-16)},()=>P(e));if(t>=32&&t<48){let n={},r=j(e,t-32);for(let t=0;t<r;t++){let t=N(e);n[t]=P(e)}return n}let n=Math.floor((t-48)/16);if(t>=48&&n<=i){let r=a[n],i=j(e,(t-48)%16);return Array.from({length:i},()=>A(e)/r)}throw r(/* @__PURE__ */ Error(`No value opens with ${t}.`),`SP0180`,void 0)}function F(e){let t=L(e),n=R(t);if(t.offset!==e.length)throw r(/* @__PURE__ */ Error(`The frame runs on past its value.`),`SP0181`,void 0);return n}function I(e){let t=L(e),n=[];do n.push({value:R(t),end:t.offset});while(t.offset<e.length);return n}function L(e){return{bytes:e,view:new DataView(e.buffer,e.byteOffset,e.byteLength),offset:0,strings:[]}}function R(e){e.strings=[...c];let t=M(e,k(e)),n=``;for(let i=0;i<t;i++){let t=k(e);if(t%2==0&&t/2>n.length)throw r(/* @__PURE__ */ Error(`A string shares more than the one before it holds.`),`SP0182`,void 0);n=t%2==1?String((t-1)/2):n.slice(0,t/2)+oe(e),e.strings.push(n)}return P(e)}var z=21;function B(e){return Math.round(1/(e*t))}var V=12,H=17,U=60,W=64,G=15,K=/* @__PURE__ */ function(e){return e.Welcome=`welcome`,e.Delta=`delta`,e.Ack=`ack`,e.Pong=`pong`,e.Voice=`voice`,e.Owned=`owned`,e.ShotRefused=`shotRefused`,e}({}),q=/* @__PURE__ */ function(e){return e.Join=`join`,e.Input=`input`,e.Edit=`edit`,e.Walk=`walk`,e.Ping=`ping`,e.Shot=`shot`,e.Voice=`voice`,e.Item=`item`,e.Message=`message`,e.Press=`press`,e.Leave=`leave`,e}({}),se=/* @__PURE__ */ function(e){return e.Binary=`binary-12`,e.Json=`json`,e}({}),ce=4013,le=4014,ue=4007,de=4008,fe=4009,pe=4010;function me(e){try{let t=JSON.parse(e);if(!n(t))return;let{key:r,retry:i}=t;return typeof r!=`string`||typeof i!=`boolean`?void 0:{key:r,retry:i}}catch{return}}var he=4012;function ge(e){try{let t=JSON.parse(e);return!n(t)||typeof t.saved!=`boolean`?void 0:{saved:t.saved}}catch{return}}var _e=1009,ve=4004;function ye(e){try{let t=JSON.parse(e);if(!n(t))return;let{players:r,maxPlayers:i}=t;return!Number.isInteger(r)||!Number.isInteger(i)?void 0:{players:Number(r),maxPlayers:Number(i)}}catch{return}}var be=4006;function xe(e){return`protocol ${Number.isSafeInteger(e)?String(e):`none`}`}function Se(e){try{let t=JSON.parse(e);if(!n(t))return;let{room:r,page:i}=t;return typeof r!=`string`||typeof i!=`string`?void 0:{room:r,page:i}}catch{return}}var Ce=8,we=5,J=Math.round(1/(5*t));function Te(){return{steps:8*J,at:0}}function Ee(e,t){return e.steps=Math.min(8*J,e.steps+Math.max(0,t-e.at)),e.at=Math.max(e.at,t),e.steps<J?!1:(e.steps-=J,!0)}var De=1e3;function Y(e){return JSON.stringify(e)}function X(e){return typeof e==`object`&&!!e&&typeof e.type==`string`}function Oe(e,t){return t===`json`?Y(e):D(e)}function ke(e,t){let n={changed:{},removed:[],hash:e.hash},r=e=>D({type:`delta`,delta:e}).length,i=r(n),a=(e,n)=>{t[e]=(t[e]??0)+r(n)-i},o=/* @__PURE__ */ new Map;for(let t in e.changed)for(let n in e.changed[t]){let r=o.get(n)??{};o.set(n,r),r[t]={[n]:e.changed[t][n]}}for(let[e,t]of o)a(e,{...n,changed:t});return e.removed.length>0&&a(`removed`,{...n,removed:e.removed}),e.events&&e.events.length>0&&a(`events`,{...n,events:e.events}),t}function Ae(e){if(e.length===1)return e[0];let t=0;for(let n of e)t+=n.length;let n=new Uint8Array(t),r=0;for(let t of e)n.set(t,r),r+=t.length;return n}function je(e){if(typeof e==`string`)return[{message:Z(JSON.parse(e)),frame:e}];let t=0;return I(e).map(({value:n,end:r})=>{let i=e.subarray(t,r);return t=r,{message:Z(n),frame:i}})}function Me(e){return Z(typeof e==`string`?JSON.parse(e):F(e))}function Z(e){if(X(e)&&(e.type===`welcome`||e.type===`delta`||e.type===`ack`||e.type===`pong`||e.type===`owned`||e.type===`shotRefused`||e.type===`voice`))return e;throw r(/* @__PURE__ */ Error(`Not a room message.`),`SP0198`,void 0)}function Ne(e,t){return t===`binary-12`&&e.type===`input`?D(e):Y(e)}var Q=D({type:`input`}).subarray(2);function $(e){if(e.length<Q.length+2||e[0]!==0)return!1;for(let t=0;t<Q.length;t++)if(e[t+2]!==Q[t])return!1;return!0}function Pe(e){let t=typeof e==`string`?JSON.parse(e):F(e);if(X(t)&&(t.type===`join`||t.type===`input`||t.type===`edit`||t.type===`walk`||t.type===`ping`||t.type===`shot`||t.type===`item`||t.type===`voice`||t.type===`message`||t.type===`press`||t.type===`leave`))return t;throw r(/* @__PURE__ */ Error(`Not a client message.`),`SP0199`,void 0)}export{me as A,de as C,ge as D,Se as E,fe as F,ue as I,Ee as L,he as M,ve as N,je as O,pe as P,Ce as R,_e as S,z as T,H as _,be as a,V as b,Me as c,Y as d,Oe as f,ce as g,Ae as h,$ as i,B as j,ye as k,xe as l,le as m,K as n,Te as o,G as p,se as r,Pe as s,q as t,Ne as u,De as v,U as w,ke as x,W as y,we as z};
@@ -0,0 +1 @@
1
+ var e=.3;function t(){let t=/* @__PURE__ */ new Map;return{hear:(e,n,r)=>{n>=-55&&t.set(e,r)},forget:e=>t.delete(e),read:n=>Array.from(t).filter(([,t])=>n-t<=e*1e3).map(([e])=>e).sort()}}function n(e,t){return e.length===t.length&&e.every((e,n)=>e===t[n])}function r(e,t){let[n]=e.getSynchronizationSources();if(n?.audioLevel===void 0)return-1/0;let r=t.get(e);return t.set(e,n.rtpTimestamp),r===n.rtpTimestamp?-1/0:n.audioLevel>0?20*Math.log10(n.audioLevel):-1/0}export{e as i,n,r,t};
@@ -0,0 +1,3 @@
1
+ import{Bu as e,Jc as t,Xf as n,_d as r,_o as i,at as a,ca as o,dc as s,it as c,ot as l,pl as u,sl as ee,tt as te,vd as ne}from"./-MLBVTaO.js";import{$n as d,Pn as re,or as f}from"./V70ADx0g.js";import{a as p,c as m,l as h,n as g,s as _,t as ie}from"./BrfUaL46.js";import{_roots as ae,createRoot as oe,extend as se}from"@react-three/fiber";import*as ce from"three";import{DeviceClass as v,DeviceClass as y,FavoriteKind as b,QualityGroup as x,QualityGroup as S,QualityLevel as C,QualityLevel as w,createQualitySchema as le,devtoolsFavorites as ue,devtoolsPresets as de}from"@spawnite/schema";import{useStore as T}from"zustand";import*as fe from"react";import{Component as pe,Suspense as me,createContext as E,use as D,useEffect as he,useState as ge}from"react";import{useShallow as _e}from"zustand/shallow";import{createStore as O}from"zustand/vanilla";import{createJSONStorage as k,persist as A}from"zustand/middleware";import{WorldProvider as ve}from"koota/react";import{jsx as j}from"react/jsx-runtime";import{FiberProvider as ye,useFiber as be}from"its-fine";var xe=Object.defineProperty,Se=(e,t)=>{let n={};for(var r in e)xe(n,r,{get:e[r],enumerable:!0});return t||xe(n,Symbol.toStringTag,{value:`Module`}),n},Ce=typeof __GAME_ENGINE_DEV__==`boolean`&&__GAME_ENGINE_DEV__,we={},Te=typeof __GAME_ENGINE_DEV__==`boolean`&&__GAME_ENGINE_DEV__&&typeof window<`u`?import(`./CCh4CnV9.js`).then(e=>(e.installReplay(),e)):void 0,Ee=/* @__PURE__ */ function(e){return e.Spawn=`spawn`,e.Destroy=`destroy`,e.Load=`load`,e.Scene=`scene`,e.Shot=`shot`,e.Stage=`loading stage`,e.Lift=`loading screen lifted`,e.WarmUp=`warm-up`,e}({});function M(){return typeof window<`u`&&new URLSearchParams(window.location.search).has(`profile`)}function De(){return typeof window>`u`?!1:o(new URLSearchParams(window.location.search).get(`replay`)??``)}function Oe(){return M()?new URLSearchParams(window.location.search).get(`scene`):null}function N(e,t,n){(M()||Ce&&we.markEngineEvents)&&performance.mark(e,{...t!==void 0&&{detail:t},...n!==void 0&&{startTime:n}})}function ke(t){let r=/* @__PURE__ */ new Map,i=e=>{if(r.has(e))return;r.set(e,void 0);let t=performance.now();queueMicrotask(()=>{if(!r.has(e))return;let n=e.get(d)?.name||void 0;r.set(e,n),N(`spawn`,n,t)})},a=[d,e,n].map(e=>t.onAdd(e,i));return a.push(t.onRemove(f,e=>{r.has(e)&&(N(`destroy`,r.get(e)),r.delete(e))})),()=>{for(let e of a)e()}}var Ae=`map-preview`;function je(){let e={};return O()((t,n)=>({scenes:{},active:null,reloads:0,registerScene:(r,i)=>{let a={};return e[r]=a,t({scenes:{...n().scenes,[r]:i}}),()=>{if(e[r]!==a)return;delete e[r];let{[r]:i,...o}=n().scenes;t({scenes:o})}},go:e=>{if(!Object.hasOwn(n().scenes,e))throw g(Error(s({kind:`scene`,name:e,names:Object.keys(n().scenes),registrationInstructions:`render a <Scene name component> for it inside the <Game>`})),[[`SP0031`,`No %s named "%s" is registered, and none is yet: %s.`],[`SP0501`,`No %s named "%s" is registered: %s, or name one of %s%s.`]],void 0);t({active:e})},reload:()=>t({reloads:n().reloads+1})}))}function Me(e,{key:t}){return O()(A(e=>({framing:null,keepFraming:t=>e({framing:t})}),{name:t,version:1,storage:k(e),partialize:({framing:e})=>({framing:e})}))}var Ne=[{kind:b.World,field:`gravity`},{kind:b.World,field:`hour`},{kind:b.Behaviour,behaviour:`Movement`,field:`speed`},{kind:b.Behaviour,behaviour:`Movement`,field:`acceleration`}];function P(e,t){return e.kind===t.kind&&e.field===t.field&&e.behaviour===t.behaviour&&(e.component===void 0||e.component===t.component)}function Pe(e=()=>localStorage,{key:t}){return O()(A((e,t)=>({favorites:Ne,isFavorite:e=>t().favorites.some(t=>P(t,e)),toggleFavorite:n=>{let{favorites:r,isFavorite:i}=t();e({favorites:i(n)?r.filter(e=>!P(e,n)):[...r,n]})}}),{name:t,storage:k(e),partialize:({favorites:e})=>({favorites:e}),merge:(e,t)=>{let n=ue.safeParse(e);return{...t,favorites:n.success?n.data.favorites:Ne}}}))}function Fe(e=()=>localStorage,{key:t}){return O()(A((e,t)=>({presetsByComponent:{},savePreset:({component:n,name:r,rows:i})=>{let a=/* @__PURE__ */ new Map;for(let e of i){if(e.stats)continue;let t=Object.fromEntries(Object.entries({...e.props,...e.edits}).filter(([,e])=>typeof e!=`function`));a.set(e.name,[...a.get(e.name)??[],t])}let o=Object.fromEntries([...a].map(([e,t])=>[e,t.length===1?t[0]:t])),{presetsByComponent:s}=t();e({presetsByComponent:{...s,[n]:{...s[n],[r]:o}}})},applyPreset:({component:e,name:n,rows:r,setProp:i,readStatFields:a=()=>({})})=>{let o=t().presetsByComponent[e]?.[n];if(!o)return;let s=/* @__PURE__ */ new Map;for(let{id:e,name:t,readOnlyReason:n,stats:c}of r){let r=s.get(t)??0;if(s.set(t,r+1),n!==void 0||c)continue;let l=o[t],u=Array.isArray(l)?l[r]:r===0?l:void 0;if(typeof u!=`object`||!u)continue;let ee=a(e);for(let[t,n]of Object.entries(u))Object.hasOwn(ee,t)||i({id:e,name:t,value:n})}},deletePreset:(n,r)=>{let i=t().presetsByComponent[n];if(!i)return;let{[r]:a,...o}=i;e({presetsByComponent:{...t().presetsByComponent,[n]:o}})}}),{name:t,storage:k(e),partialize:({presetsByComponent:e})=>({presetsByComponent:e}),merge:(e,t)=>{let n=de.safeParse(e);return{...t,presetsByComponent:n.success?n.data.presetsByComponent:{}}}}))}var F=/* @__PURE__ */ function(e){return e.Grading=`grading`,e.Bloom=`bloom`,e.Occlusion=`occlusion`,e}({}),I=[C.Minimum,C.Low,C.Medium,C.High],L={[C.Minimum]:{pixelRatio:.75,shadowMapSize:0,grading:!1,bloom:!1,occlusion:!1,occlusionQuality:`performance`,occlusionHalfResolution:!0,multisampling:0,scatter:0,scatterNear:15,scatterFar:20,grassShare:0,grassNear:0,grassFar:0,grassSway:!1,groundDetail:!1},[C.Low]:{pixelRatio:1,shadowMapSize:0,grading:!1,bloom:!1,occlusion:!1,occlusionQuality:`performance`,occlusionHalfResolution:!0,multisampling:2,scatter:0,scatterNear:22.5,scatterFar:30,grassShare:.3,grassNear:4,grassFar:12,grassSway:!1,groundDetail:!1},[C.Medium]:{pixelRatio:1.5,shadowMapSize:1024,grading:!0,bloom:!0,occlusion:!0,occlusionQuality:`performance`,occlusionHalfResolution:!0,multisampling:2,scatter:1,scatterNear:34,scatterFar:45,grassShare:.75,grassNear:9,grassFar:28,grassSway:!0,groundDetail:!0},[C.High]:{pixelRatio:2,shadowMapSize:2048,grading:!0,bloom:!0,occlusion:!0,occlusionQuality:`medium`,occlusionHalfResolution:!0,multisampling:4,scatter:1,scatterNear:45,scatterFar:60,grassShare:1,grassNear:9,grassFar:28,grassSway:!0,groundDetail:!0}},R={[x.Shadows]:[`shadowMapSize`],[x.PostProcessing]:[`grading`,`bloom`],[x.AmbientOcclusion]:[`occlusion`,`occlusionQuality`,`occlusionHalfResolution`],[x.AntiAliasing]:[`multisampling`],[x.Foliage]:[`scatter`,`scatterNear`,`scatterFar`,`grassShare`,`grassNear`,`grassFar`,`grassSway`],[x.Terrain]:[`groundDetail`]},z={[C.Auto]:`Automatic`,[C.Minimum]:`Minimum`,[C.Low]:`Low`,[C.Medium]:`Medium`,[C.High]:`High`};function Ie(e,t){let n=globalThis.devicePixelRatio??1;return Math.min(n,e)*t>=2}var Le=[[`pixelRatio`,.1,4],[`shadowMapSize`,0,8192],[`multisampling`,0,16],[`scatter`,0,1],[`scatterNear`,0,1/0],[`scatterFar`,0,1/0],[`grassShare`,0,1],[`grassNear`,0,1/0],[`grassFar`,0,1/0]],Re=[`performance`,`low`,`medium`,`high`,`ultra`];function ze(e,t){if(!Re.includes(t.occlusionQuality))throw g(/* @__PURE__ */ Error(`Game's quality.levels sets ${z[e]}'s occlusionQuality to ${JSON.stringify(t.occlusionQuality)}: give one of ${Re.join(`, `)}.`),`SP0361`,void 0);for(let[n,r,i]of Le){let a=t[n];if(typeof a!=`number`||!(a>=r&&a<=i))throw g(/* @__PURE__ */ Error(`Game's quality.levels sets ${z[e]}'s ${n} to ${String(a)}: give a number from ${r} to ${i}.`),`SP0362`,void 0)}}function Be(e){return Object.fromEntries(I.map(t=>{let n={...L[t],...e?.levels?.[t]};return ze(t,n),[t,n]}))}function Ve(e){let t=e?.dynamicResolution,{enabled:n,minimumScale:r=.5,maximumScale:i=1,targetFrameRate:a}=typeof t==`boolean`?{enabled:t}:t??{};if(a!==void 0&&!(a>=10))throw g(/* @__PURE__ */ Error(`Game's quality.dynamicResolution sets targetFrameRate to ${a}: give frames a second, 10 or more.`),`SP0363`,void 0);if(!(i>0&&i<=1))throw g(/* @__PURE__ */ Error(`Game's quality.dynamicResolution sets maximumScale to ${i}: give a share of the level's pixel ratio above 0 and at most 1.`),`SP0364`,void 0);if(!(r>0&&r<=i))throw g(/* @__PURE__ */ Error(`Game's quality.dynamicResolution sets minimumScale to ${r}: give a share above 0 and at most maximumScale, ${i}.`),`SP0365`,void 0);return{enabled:n,minimumScale:r,maximumScale:i,targetFrameRate:a}}function He(e,{level:t,groups:n}){let r={...e[t]};for(let i of Object.values(x)){let a=n[i];if(a!==void 0&&a!==t)for(let t of R[i])Object.assign(r,{[t]:e[a][t]})}return r}var Ue={[x.Shadows]:e=>e.shadowMapSize===0,[x.PostProcessing]:e=>!e.grading&&!e.bloom,[x.AmbientOcclusion]:e=>!e.occlusion,[x.AntiAliasing]:e=>e.multisampling===0,[x.Foliage]:e=>e.scatter===0&&e.grassShare===0,[x.Terrain]:e=>!e.groundDetail};function We(e,t){return t===void 0?R[e]:e===x.PostProcessing?[F.Grading,F.Bloom].filter(e=>t.has(e)):e===x.AmbientOcclusion?t.has(F.Occlusion)?R[e]:[]:R[e]}function B(e,t,n){return e===x.PostProcessing?n.every(e=>!t[e]):e===x.AmbientOcclusion?n.length===0||!t.occlusion:Ue[e](t)}function Ge(e,t,n,r){let i=B(e,t,r),a=B(e,n,r);return i||a?i&&a:r.every(e=>t[e]===n[e])}function Ke(e,t,n,r){return B(e,t,r)?`Off`:e===x.AntiAliasing?`${t.multisampling}x`:z[n]}function qe(e,t,n){let r=We(t,n),i=[];for(let n of I){let a=i.find(i=>Ge(t,e[i.level],e[n],r));a?(a.levels.push(n),a.level=n):i.push({level:n,levels:[n]})}return i.map(n=>({...n,name:Ke(t,e[n.level],n.level,r)}))}var Je=/swiftshader|llvmpipe|softpipe|basic render/i,Ye=/\bRTX\b|Radeon RX [5-9]\d{3}|\bArc\b|Apple M\d+ (Pro|Max|Ultra)/i;function Xe({renderer:e,coarsePointer:t,screenPixels:n,devicePixelRatio:r},i){return Je.test(e)?v.Software:t?v.Touch:Ye.test(e)?n===void 0?v.GraphicsCardLargeScreen:n*(Math.min(r,i)/r)**2<=55e5?v.GraphicsCard:v.GraphicsCardLargeScreen:v.Computer}var Ze={[v.Software]:C.Minimum,[v.Touch]:C.Low,[v.Computer]:C.Medium,[v.GraphicsCard]:C.High,[v.GraphicsCardLargeScreen]:C.Medium};function Qe(e){return I.includes(e)}function $e(e){if(e!==void 0&&typeof e!=`function`){for(let[t,n]of Object.entries(e))if(n!==void 0&&!Qe(n))throw g(/* @__PURE__ */ Error(`Game's quality.start sets ${t} to ${tt(n)}: give ${et}.`),`SP0318`,void 0)}}var et=`QualityLevel.Minimum, Low, Medium or High`;function tt(e){if(e===C.Auto)return`QualityLevel.Auto (Automatic)`;try{return JSON.stringify(e)??String(e)}catch{return`a ${typeof e}`}}function nt(e,t){let n=Ze[t.deviceClass];if(typeof e!=`function`)return e?.[t.deviceClass]??n;let r,i=!1,a;try{r=e({...t})}catch(e){i=!0,a=e}return!i&&r===void 0?n:!i&&Qe(r)?r:(console.warn(`Game's quality.start ${i?`threw`:`returned ${tt(r)}`} for a ${t.deviceClass} device, so it starts at the engine's ${z[n]}. Return ${et}, or undefined for the engine's level.`,...i?[a]:[]),n)}function rt(){let{screen:e}=globalThis;if(e!==void 0)return e.width*e.height*it()**2}function it(){let e=globalThis.devicePixelRatio;return typeof e==`number`&&e>0?e:1}function at({coarsePointer:e,game:t}){return t??e}function ot(e){try{let t=e?.getContext();if(!t)return``;let n=t.getExtension(`WEBGL_debug_renderer_info`),r=t.getParameter(n?n.UNMASKED_RENDERER_WEBGL:t.RENDERER);return typeof r==`string`?r:``}catch{return``}}function st(){return typeof matchMedia==`function`&&matchMedia(`(pointer: coarse)`).matches}var ct={[y.Software]:`a browser with no graphics card`,[y.Touch]:`a phone or tablet`,[y.Computer]:`a computer`,[y.GraphicsCard]:`a recent graphics card`,[y.GraphicsCardLargeScreen]:`a recent graphics card on a large screen`};function V(e){return e.level===w.Auto?e.automatic?.level??w.Medium:e.level}function H(e,t){return e.groups[t]??V(e)}function lt(e){return Object.values(e.groups).some(e=>e!==void 0)}function U(e){return He(e.levels,{level:V(e),groups:e.groups})}function ut(e){return e.dynamicResolution??at({coarsePointer:e.coarsePointer,game:e.dynamicResolutionBounds.enabled})}function dt(e){let t=e.renderScale??1;return ut(e)?Math.min(t,e.dynamicScale):t}var W=[w.Auto,...I];function ft(e){return W[(W.indexOf(e)+1)%W.length]}function pt(){let e=globalThis.location?new URLSearchParams(globalThis.location.search).get(`quality`):null;return Object.entries(w).find(([t])=>t.toLowerCase()===e)?.[1]}function mt(e){let t=M()?new URLSearchParams(window.location.search).get(`qualityLevels`):null;if(t===null)return e;let n;try{n=JSON.parse(t)}catch{n=void 0}if(typeof n!=`object`||!n||Array.isArray(n))throw g(/* @__PURE__ */ Error(`?qualityLevels=${t} is not JSON keyed by level: give an object such as {"low":{"bloom":true}}.`),`SP0355`,void 0);let r={...e?.levels};for(let[e,t]of Object.entries(n)){let n=I.find(t=>z[t].toLowerCase()===e);if(n===void 0)throw g(/* @__PURE__ */ Error(`?qualityLevels= names the level ${e}: name minimum, low, medium or high.`),`SP0356`,void 0);if(typeof t!=`object`||!t||Array.isArray(t))throw g(/* @__PURE__ */ Error(`?qualityLevels= gives ${e} ${JSON.stringify(t)}: give an object of level values, such as {"bloom":true}.`),`SP0357`,void 0);for(let[n,r]of Object.entries(t)){let t=Object.hasOwn(L[w.Medium],n)?Reflect.get(L[w.Medium],n):void 0;if(t===void 0)throw g(/* @__PURE__ */ Error(`?qualityLevels= sets ${n}, which no level has: name a QualitySettings value, such as bloom.`),`SP0358`,void 0);if(typeof r!=typeof t)throw g(/* @__PURE__ */ Error(`?qualityLevels= sets ${e}'s ${n} to ${JSON.stringify(r)}: give ${typeof t==`boolean`?`true or false`:`a ${typeof t}`}.`),`SP0359`,void 0)}r[n]={...r[n],...t}}return{...e,levels:r}}function ht(e,t){if(t>=1||typeof e!=`object`||!e)return e;let n=Reflect.get(e,`groups`);if(typeof n!=`object`||!n)return e;let r=Reflect.get(n,S.PostProcessing);return r===void 0?e:{...e,groups:{...n,[S.AmbientOcclusion]:r}}}function gt(e=()=>localStorage,{key:t,options:n}){let r=le(),i=Be(mt(n));$e(n?.start);let a=Ve(n),o=pt(),s=w.Auto;return O()(A((e,t)=>({level:o??w.Auto,groups:{},levels:i,dynamicResolutionBounds:a,coarsePointer:st(),deviceRead:!1,dynamicScale:a.maximumScale,setLevel:t=>e({level:r.parse({level:t}).level,groups:{}}),setGroupLevel:(n,r)=>e({groups:{...t().groups,[n]:r}}),setRenderScale:t=>{if(!(t>0&&t<=1))throw g(/* @__PURE__ */ Error(`setRenderScale was handed ${t}: give a share of the level's pixel ratio above 0 and at most 1.`),`SP0360`,void 0);e({renderScale:t})},setDynamicResolution:t=>e({dynamicResolution:t}),detectDevice:r=>{let{automatic:a}=t(),o=a?.renderer===r.renderer?a:r,s={renderer:o.renderer,coarsePointer:o.coarsePointer,screenPixels:o.screenPixels,devicePixelRatio:o.devicePixelRatio},c={deviceClass:Xe(s,i[w.High].pixelRatio),...s};e({deviceRead:!0,coarsePointer:r.coarsePointer,automatic:{...c,level:nt(n?.start,c)}})},setDynamicScale:t=>e({dynamicScale:Math.min(a.maximumScale,Math.max(a.minimumScale,t))}),resetQuality:()=>e({level:w.Auto,groups:{},renderScale:void 0,dynamicResolution:void 0})}),{name:t,storage:k(e),version:1,migrate:ht,partialize:({level:e,groups:t,renderScale:n,dynamicResolution:r,automatic:i})=>({level:e===o?s:e,groups:t,renderScale:n,dynamicResolution:r,automatic:i}),merge:(e,t)=>{let n=r.parse(e);return s=n.level,{...t,...n,level:o??n.level}}}))}function _t(e,{key:t}){return O()(A(e=>({places:{},keepPlace:(t,n)=>e(({places:e})=>({places:{...e,[t]:n}})),forgetPlaces:()=>e({places:{}})}),{name:t,version:1,storage:k(e),partialize:({places:e})=>({places:e})}))}var G=E(null);function vt(e,t=()=>localStorage,n){return{quality:gt(t,{key:`${e}-quality`,options:n}),presets:Fe(t,{key:`${e}-presets`}),favorites:Pe(t,{key:`${e}-favorites`}),camera:Me(t,{key:`${e}-camera`}),scenes:je(),windowPlaces:_t(t,{key:`${e}-windows`})}}function yt(){return J(`useQualityStore`).quality}function bt(){return T(J(`useScenes`).scenes)}var xt=je();function St(){let e=D(G);return T(e?.scenes??xt,e=>e.active)}var Ct=gt(()=>({getItem:()=>null,setItem:()=>void 0,removeItem:()=>void 0}),{key:`standalone-quality`}),wt=_t(()=>({getItem:()=>null,setItem:()=>void 0,removeItem:()=>void 0}),{key:`standalone-windows`});function Tt(){return D(G)?.windowPlaces??wt}function K(){return D(G)?.quality??Ct}function Et(){return T(K(),e=>e.level)}function Dt(e){return T(K(),t=>e===void 0?V(t):H(t,e))}function q(e){return T(K(),_e(t=>{let n=U(t);return e?e(n):n}))}function Ot(){return q(e=>e.groundDetail)}function kt(){return q(e=>({share:e.grassShare,near:e.grassNear,far:e.grassFar,sway:e.grassSway}))}function At(){return q(e=>({near:e.scatterNear,far:e.scatterFar}))}function jt(){return T(K(),_e(e=>{let t=U(e);return{multisampling:Ie(t.pixelRatio,e.renderScale??1)?0:t.multisampling,occlusionQuality:t.occlusionQuality,halfResolution:t.occlusionHalfResolution}}))}var Mt;function Nt(){let e=D(G);return e?e.presets:(Mt??=Fe(()=>localStorage,{key:`devtools-presets`}),Mt)}var Pt;function Ft(){let e=D(G);return e?e.favorites:(Pt??=Pe(()=>localStorage,{key:`devtools-favorites`}),Pt)}function J(e){let t=D(G);if(t===null)throw g(/* @__PURE__ */ Error(`${e} is called outside a <Game>: call it in a component rendered inside <Game>.`),`SP0349`,void 0);return t}function Y({plugins:e,children:t}){try{return e.reduceRight((e,{component:t})=>t?/* @__PURE__ */ j(t,{children:e}):e,t)}catch(e){throw _(`PluginComponents`,e)}}Y.displayName=`PluginComponents`;var X=E(null);function It(){let e=D(X),t=be(),[n]=ge(()=>e===null||!t?void 0:Lt(t,e));return n}function Lt(e,t){let n=[];for(let t=e;t&&t.type!==X;t=t.return)n.push(t.key===null?String(t.index):encodeURIComponent(t.key));return t!==``&&n.push(t),n.reverse().join(`/`)}var Rt=/* @__PURE__ */ Se({mountHeadlessScene:()=>Wt,useHeadless:()=>Z,useViewsOff:()=>Bt}),zt=E(!1);function Z(){return D(zt)}function Bt(){return Z()||typeof process<`u`&&process.env.GAME_ENGINE_VIEWS===`off`}var Vt={render:()=>void 0,setSize:()=>void 0,setPixelRatio:()=>void 0},Ht={getItem:()=>null,setItem:()=>void 0,removeItem:()=>void 0};function Ut(){let e=a();return e.add(re),e}async function Wt(e,n=Ut()){await Promise.all([t(),i()]);let a=te();a&&!n.queryFirst(ee)&&c(n,a),n.has(u)||n.add(u),se(ce);let o={},s=oe(o);await s.configure({frameloop:`never`,gl:Vt});let d=ae.get(o)?.fiber,re=vt(`headless`,()=>Ht),f,p=0,m=!1,h=()=>void 0,g=()=>(m=!0,()=>{m=!1,h()}),_=()=>s.render(/* @__PURE__ */ j(ye,{children:/* @__PURE__ */ j(ve,{world:n,children:/* @__PURE__ */ j(zt,{value:!0,children:/* @__PURE__ */ j(G,{value:re,children:/* @__PURE__ */ j(Kt,{onFailure:e=>{f=e,h()},children:/* @__PURE__ */ j(me,{fallback:/* @__PURE__ */ j(Gt,{onShow:g}),children:/* @__PURE__ */ j(Y,{plugins:l(n),children:/* @__PURE__ */ j(X,{value:``,children:/* @__PURE__ */ j(e,{})},p)})})})})})})}));if(await $(d,_),!f&&r()&&(await ne(),await $(d,()=>void 0)),f)throw await $(d,()=>s.unmount()),f;return{world:n,input:{},unmount:()=>$(d,()=>s.unmount()),async reload(){for(p++,await $(d,_);m&&!f;)await new Promise(e=>h=e),await $(d,()=>void 0);if(f)throw f},scene:ae.get(o)?.store.getState().scene}}function Gt({onShow:e}){try{return he(e,[e]),null}catch(e){throw _(`Suspended`,e)}}var Kt=class extends pe{state={failed:!1};static getDerivedStateFromError(){return{failed:!0}}componentDidCatch(e,t){let n=(t.componentStack??``).split(`
2
+ `).map(e=>e.trim()).filter(Boolean);p(e,{boundary:ie.Render,component:h(t.componentStack),componentStack:t.componentStack??void 0});let r=m(e).label.component??`A component`,i=e instanceof Error?e.message:String(e);this.props.onFailure(g(Error(`${r} failed headless: ${i}\nIf it loads a file (useModel, useLoader) or reaches for the page (window, document), render nothing, or skip the effect, when useHeadless() is true.\n${n.slice(0,5).join(`
3
+ `)}`,{cause:e}),`SP0026`,void 0))}render(){return this.state.failed?null:this.props.children}},Q=`IS_REACT_ACT_ENVIRONMENT`;async function $(e,t){let{act:n}=fe;if(!n){if(!e)throw g(/* @__PURE__ */ Error(`The headless mount found no fiber root.`),`SP0027`,void 0);await Xt(e,t);return}let r=Reflect.get(globalThis,Q);Reflect.set(globalThis,Q,!0);try{for(await n(async()=>t());e&&e.pendingLanes!==0;)await n(Yt)}finally{Reflect.set(globalThis,Q,r)}}function qt(){let{createRequire:e}=process.getBuiltinModule(`node:module`);return e(import.meta.resolve(`@react-three/fiber`))(`scheduler`)}function Jt(e){return new Promise(t=>{e.unstable_scheduleCallback(e.unstable_IdlePriority,t)})}function Yt(){return new Promise(e=>setTimeout(e))}async function Xt(e,t){let n=qt();t(),await Jt(n);do await Yt(),await Jt(n);while(e.pendingLanes!==0)}Gt.displayName=`Suspended`;export{ke as $,lt as A,rt as B,bt as C,w as D,S as E,dt as F,F as G,I as H,Ze as I,Ee as J,P as K,st as L,H as M,ft as N,ct as O,U as P,Oe as Q,it as R,At as S,y as T,qe as U,Ie as V,z as W,De as X,M as Y,N as Z,jt as _,X as a,q as b,G as c,Dt as d,Ce as et,St as f,Ot as g,kt as h,Bt as i,ut as j,V as k,vt as l,J as m,Wt as n,Te as nt,It as o,Ft as p,Ae as q,Z as r,Se as rt,Y as s,Rt as t,we as tt,Ct as u,Nt as v,Tt as w,yt as x,Et as y,ot as z};