@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}from"./BEL83Bb6.js";import{WebGLRenderer as t}from"three";import{defaultRoomSendRate as n}from"@spawnite/schema";import{and as r,createActor as i,raise as a,setup as o,stateIn as s}from"xstate";import{create as c}from"zustand";var l=[];function u(e){return l.push(e),()=>{let t=l.lastIndexOf(e);t>=0&&l.splice(t,1)}}var d=o({types:{events:{}},actions:{openMenu:a({type:`OPEN`}),closePanel:()=>l.at(-1)?.()},guards:{panelTakes:()=>l.length>0,held:({event:e})=>`held`in e&&e.held,free:({event:e})=>`held`in e&&!e.held,shown:({event:e})=>`shown`in e&&e.shown,windowed:({event:e})=>`shown`in e&&!e.shown,leftByPlayer:({event:e})=>e.type===`FULLSCREEN_CHANGED`&&!e.shown&&!e.covered,captured:s({cursor:`captured`}),fullscreen:s({screen:`fullscreen`})}}).createMachine({id:`menu`,type:`parallel`,states:{view:{initial:`closed`,states:{closed:{on:{OPEN:`menu`,ESCAPE:[{guard:`panelTakes`,actions:`closePanel`},{target:`menu`}],SETTINGS:`settings`}},menu:{on:{CLOSE:`closed`,ESCAPE:`closed`,SETTINGS:`settings`}},settings:{on:{CLOSE:`closed`,BACK:`menu`,ESCAPE:`menu`}}}},cursor:{initial:`free`,states:{free:{on:{LOCK_READ:{guard:`held`,target:`captured`},LOCK_CHANGED:{guard:`held`,target:`captured`},RELEASE:`releasing`}},captured:{on:{LOCK_READ:{guard:`free`,target:`free`},LOCK_CHANGED:[{guard:r([`free`,`panelTakes`,s({view:`closed`})]),target:`free`,actions:`closePanel`},{guard:`free`,target:`free`,actions:`openMenu`}],FULLSCREEN_CHANGED:{guard:r([`leftByPlayer`,`fullscreen`]),target:`releasing`},RELEASE:`releasing`,UNTRACK:`free`}},releasing:{on:{LOCK_CHANGED:[{guard:`held`,target:`captured`},{target:`free`}],LOCK_READ:{guard:`free`,target:`free`}}}}},screen:{initial:`windowed`,states:{windowed:{on:{FULLSCREEN_READ:{guard:`shown`,target:`fullscreen`},FULLSCREEN_CHANGED:{guard:`shown`,target:`fullscreen`}}},fullscreen:{on:{FULLSCREEN_READ:{guard:`windowed`,target:`windowed`},FULLSCREEN_CHANGED:[{guard:r([`leftByPlayer`,`panelTakes`,s({view:`closed`})]),target:`windowed`,actions:`closePanel`},{guard:`leftByPlayer`,target:`windowed`,actions:`openMenu`},{guard:`windowed`,target:`windowed`}],LOCK_CHANGED:{guard:r([`free`,`captured`]),target:`leaving`},LEAVE_FULLSCREEN:`leaving`}},leaving:{on:{FULLSCREEN_CHANGED:[{guard:`shown`,target:`fullscreen`},{target:`windowed`}]}}}}}}),f=c()(()=>({open:!1,settingsOpen:!1,fullscreen:!1,openMenu:()=>v({type:`OPEN`}),closeMenu:()=>v({type:`CLOSE`}),openSettings:()=>v({type:`SETTINGS`}),closeSettings:()=>v({type:`BACK`}),pressEscape:()=>v({type:`ESCAPE`})})),p=c()(()=>({captured:!1,canvas:null,freed:!1}));function m(e){return{open:!e.matches({view:`closed`}),settingsOpen:e.matches({view:`settings`}),fullscreen:!e.matches({screen:`windowed`}),captured:e.matches({cursor:`captured`})}}function h(e){let{captured:t,...n}=m(e),{open:r,settingsOpen:i,fullscreen:a}=f.getState();(r!==n.open||i!==n.settingsOpen||a!==n.fullscreen)&&f.setState(n),t!==p.getState().captured&&p.setState({captured:t})}function g(e){let t=i(d,{snapshot:e});return t.subscribe(h),t.start()}var _=g();function v(e){_.send(e)}function y(e){let{value:t}=_.getSnapshot();_.stop(),_=g(d.resolveState({value:{...t,...e}}))}f.subscribe(({open:e,settingsOpen:t,fullscreen:n})=>{let r=m(_.getSnapshot());(e!==r.open||t!==r.settingsOpen||n!==r.fullscreen)&&y({view:t?`settings`:e?`menu`:`closed`,screen:n?`fullscreen`:`windowed`})}),p.subscribe(({captured:e})=>{e!==m(_.getSnapshot()).captured&&y({cursor:e?`captured`:`free`})});function b(){return typeof navigator<`u`&&navigator.webdriver===!0}function x(e){if(e.ownerDocument.pointerLockElement===e)return!0;let{captured:t,canvas:n}=p.getState();return b()&&t&&n===e}var S=`data-cursor-captured`;function C(e){let{ownerDocument:t}=e,n=t.documentElement,r=()=>t.pointerLockElement===e,i=()=>v({type:`LOCK_CHANGED`,held:r()}),a=e=>n.toggleAttribute(S,e);p.setState({canvas:e}),b()||v({type:`LOCK_READ`,held:r()}),a(p.getState().captured);let o=p.subscribe(({captured:t},n)=>{a(t),t&&!n.captured&&w.size>0&&(T=!0,N(e))});return t.addEventListener(`pointerlockchange`,i),()=>{t.removeEventListener(`pointerlockchange`,i),o(),v({type:`UNTRACK`}),p.setState({canvas:null}),a(!1),T=!1}}var w=/* @__PURE__ */ new Set,T=!1;function E(){let e=Symbol(`free cursor`);if(w.size===0){let{captured:e,canvas:t}=p.getState();e&&t&&(T=!0,N(t))}return w.add(e),p.setState({freed:!0}),()=>{!w.delete(e)||w.size>0||p.setState({freed:!1})}}function D(){let e=T;return T=!1,e}function O(e){let t=e.ownerDocument.defaultView;return typeof t?.matchMedia!=`function`||!(`requestPointerLock`in e)?!1:t.matchMedia(`(any-pointer: fine)`).matches}function k(e){let t=e.requestPointerLock({unadjustedMovement:!0});return t?t.then(()=>!0,t=>t instanceof DOMException&&t.name===`NotSupportedError`&&Promise.resolve(e.requestPointerLock()).then(()=>!0,()=>!1)):null}function A(e){if(b()){v({type:`LOCK_CHANGED`,held:!0});return}e.ownerDocument.pointerLockElement!==e&&k(e)}function j(e,t){if(t)return t;let{ownerDocument:n}=e;return new Promise(t=>{let r=e=>{clearTimeout(o),n.removeEventListener(`pointerlockchange`,i),n.removeEventListener(`pointerlockerror`,a),t(e)},i=()=>{n.pointerLockElement===e&&r(!0)},a=()=>r(!1),o=setTimeout(a,3e3);n.addEventListener(`pointerlockchange`,i),n.addEventListener(`pointerlockerror`,a)})}function M(e,t,{wanted:n,refused:r}={}){let{ownerDocument:i}=e,a=`lock`,o;function s(){i.pointerLockElement!==e&&u()}function c(){clearTimeout(o),i.removeEventListener(`pointerlockchange`,s)}function l(t){if(a===`done`)return;a=`done`,c();let i=D();if(d(),t&&i){if(p.getState().freed){T=!0;return}f.getState().open||n?.()===!1||j(e,k(e)).then(e=>{e||r?.()})}}function u(){if(a!==`lock`)return;a=`screen`,c();let e=()=>l(!0);o=setTimeout(e,3e3),t().then(e,e)}let d=E();return i.addEventListener(`pointerlockchange`,s),o=setTimeout(u,3e3),j(e,k(e)).then(e=>{e||u()}),()=>l(!1)}function N(e){if(b()){v({type:`LOCK_READ`,held:!1});return}let{ownerDocument:t}=e;t.pointerLockElement===e&&(v({type:`RELEASE`}),t.exitPointerLock())}var P=/* @__PURE__ */ function(e){return e.Basic=`basic`,e.Percentage=`percentage`,e.Variance=`variance`,e}({});function F(e){if(e!==void 0)return typeof e==`function`?async({canvas:t,antialias:n=!0,alpha:r=!0})=>e({canvas:t,powerPreference:`high-performance`,antialias:n,alpha:r}):n=>new t({...n,...e})}function I(e){return`isWebGPURenderer`in e&&e.isWebGPURenderer===!0}var L=/* @__PURE__ */ function(e){return e.FrameTimer=`frame-timer`,e.GpuScopes=`gpu-scopes`,e.ProgramWarmUp=`program-warm-up`,e.Sky=`sky`,e.SkyBake=`sky-bake`,e.PostProcessing=`post-processing`,e.Shader=`shader`,e.Line=`line`,e.Particles=`particles`,e.Ground=`ground`,e.Grass=`grass`,e.Scatter=`scatter`,e.Batch=`batch`,e.Avatar=`avatar`,e}({}),R={"frame-timer":{what:`the performance overlay's GPU time, from WebGL's timer query`,instead:`The overlay shows the CPU time alone.`},"gpu-scopes":{what:`the GPU spans spawnite play profile times, with WebGL's timer queries`,instead:`The profile lists no GPU span; time the GPU under WebGL.`},"program-warm-up":{what:`the shader warm-up under the loading screen`,instead:`Each program builds as it first draws, and the screen lifts on the first frame.`},sky:{what:`the daylight rig's sky dome, a ShaderMaterial`,instead:`The sky shows the canvas's clear colour; draw your own with a node material from three/tsl.`},"sky-bake":{what:`the look's environment light, baked from the sky with WebGL's PMREMGenerator`,instead:`Surfaces take the sun and the fill alone; set scene.environment yourself with the PMREMGenerator from three/webgpu.`},"post-processing":{what:`<PostProcessing> and the look's stack, on the postprocessing library`,instead:`The frame draws with no pass; pass postProcessing: false to the look, and draw three's RenderPipeline from three/webgpu in a useFrame at priority 1.`},shader:{what:`<Shader> and the engine's ShaderMaterials: WaterMaterial, the sea, CrtMaterial, PortalMaterial and EnergyOrbMaterial`,instead:`The mesh draws nothing; write the material as a node material from three/tsl.`},line:{what:`a weapon's tracer, an ability's line to its target and the terrain brush's outlines, drawn with three's LineMaterial, a ShaderMaterial`,instead:`None draws, and the brush shows its fill alone; draw your own lines with three's Line2NodeMaterial.`},particles:{what:`<Particles>, drawn with three.quarks's ShaderMaterials`,instead:`Every burst and Emitter plays nothing.`},ground:{what:`the World's ground shading, an onBeforeCompile patch`,instead:`The ground draws in one plain colour.`},grass:{what:`the World's grass, placed and swayed by an onBeforeCompile patch`,instead:`No grass draws.`},scatter:{what:`the World's scattered trees and rocks, on an instancing library that calls WebGL`,instead:`No scatter draws, though its colliders stand; place your own with InstancedModel.`},batch:{what:`the skinned batch an animated Entity's model and useSkinnedBatch draw in, on an instancing library that calls WebGL`,instead:`Each copy draws its own meshes, a draw per mesh, and a copy's parts list is empty.`},avatar:{what:`a VRM avatar, drawn with MToon, a ShaderMaterial`,instead:`She draws as the placeholder capsule; give CharacterSpawn a GLB model.`}},z=/* @__PURE__ */ new Set;function B(e){let{what:t,instead:n}=R[e];return`Off under WebGPURenderer, since it needs WebGL: ${t}. ${n}`}function V(e,t){return I(e)?(H(t),!0):!1}function H(e){z.has(e)||(z.add(e),console.warn(B(e)))}var U=/* @__PURE__ */ function(e){return e.Connecting=`connecting`,e.Joined=`joined`,e.Reconnecting=`reconnecting`,e.Rejoining=`rejoining`,e.Closed=`closed`,e}({}),W=/* @__PURE__ */ function(e){return e.TooLarge=`tooLarge`,e.NotJoined=`notJoined`,e.NoPlayer=`noPlayer`,e.InvalidPayload=`invalidPayload`,e.MissingEntity=`missingEntity`,e.NotYours=`notYours`,e}({}),G={tooLarge:`Message too long`,notJoined:`Not connected to the room`,noPlayer:`Not in play yet`,invalidPayload:`Message not understood`,missingEntity:`That is no longer there`,notYours:`That is not yours to control`},K=/* @__PURE__ */ function(e){return e.Gone=`gone`,e.MessageTooLarge=`messageTooLarge`,e}({}),q=c()(()=>({status:`closed`,characterId:null,edits:!1,sendEdit:()=>void 0,sendShot:()=>null,readViewStep:()=>null,refusedShot:null,sendMessage:()=>`notJoined`,leave:()=>Promise.resolve(!1),move:()=>void 0,refusal:null,full:null,buildMismatch:null,lastDrop:null,notice:null,players:0,snapshotsPerSecond:0,bytesPerSecond:0,sentBytesPerSecond:0,leadTicks:null,stepMilliseconds:0,roomStepMilliseconds:null,corrections:0,correctionsTotal:0,correctionMetres:0,correctionFields:[],correctionWarning:null,replayedSteps:0,takenSweeps:0,tiedSweeps:0,correctionMilliseconds:0,rerunMilliseconds:0,predictionChecks:[],roundTripMilliseconds:0,jitterMilliseconds:0,interpolationMilliseconds:e(n)*1e3,sendRate:n,refusedShotOrigins:0}));export{p as C,u as S,c as T,x as _,q as a,C as b,I as c,H as d,O as f,b as g,E as h,G as i,F as l,M as m,K as n,P as o,A as p,U as r,L as s,W as t,V as u,N as v,f as w,v as x,D as y};
@@ -0,0 +1,7 @@
1
+ import{n as e}from"./BrfUaL46.js";import{n as t,r as n,t as r}from"./DSb1ApLU.js";import{a as i,n as a,o,r as s,s as c}from"./CjiCdqiE.js";import{c as l}from"./Dqx9hHBK.js";import{i as u,r as d}from"./Bp238wbZ.js";import{n as f,t as p}from"./28wIPE7L.js";import{existsSync as m,globSync as ee,readFileSync as h,readdirSync as g,realpathSync as _,statSync as v}from"node:fs";import{createHash as y}from"node:crypto";import{basename as b,dirname as x,extname as S,isAbsolute as C,join as w,relative as T,resolve as E,sep as D}from"node:path";import{mkdtemp as O,rm as k}from"node:fs/promises";import{tmpdir as te}from"node:os";import{gzipSync as ne}from"node:zlib";import{build as re,createIdResolver as ie,normalizePath as A,parseSync as j}from"vite";import"node:module";import M from"cacache";import ae from"env-paths";var oe=12;function se(e,t=``){let n=[];for(let r of g(e,{withFileTypes:!0})){if(r.name.startsWith(`.`)||r.name===`node_modules`)continue;let i=t+r.name;r.isDirectory()?n.push(...se(w(e,r.name),`${i}/`)):r.isFile()&&n.push(i)}return n.sort()}function N(e,t,n){if(!m(n))return;let r=h(n).toString(`latin1`).replaceAll(`\r
2
+ `,`
3
+ `);e.update(`${t}\0${r.length}\0`,`latin1`),e.update(r,`latin1`)}function P(e,t,n){if(m(n))for(let r of se(n))N(e,`${t}/${r}`,w(n,r))}function ce(e){let t=w(e,`package.json`);if(!m(t))return{name:``,dependencies:{}};let n=JSON.parse(h(t,`utf8`));return{name:n.name??``,dependencies:n.dependencies??{}}}function F(e,t){for(let[n,r]of Object.entries(ce(e).dependencies)){if(!r.startsWith(`workspace:`)||t.has(n))continue;let i=w(e,`node_modules`,...n.split(`/`));if(!m(i))continue;let a=_(i);t.set(n,a),F(a,t)}}function le(e){let t=y(`sha256`);return N(t,`engine/package.json`,w(e,`..`,`package.json`)),P(t,`engine/code`,e),t.digest(`hex`).slice(0,oe)}function ue(e,t){let n=y(`sha256`),r=w(t,`..`);N(n,`game/package.json`,w(e,`package.json`)),P(n,`game/src`,w(e,`src`)),N(n,`engine/package.json`,w(r,`package.json`)),P(n,`engine/code`,t);let i=/* @__PURE__ */ new Map;F(e,i),F(r,i),i.delete(ce(r).name);for(let e of[...i.keys()].sort()){let t=i.get(e)??``;N(n,`${e}/package.json`,w(t,`package.json`)),P(n,`${e}/src`,w(t,`src`))}return n.digest(`hex`).slice(0,oe)}function I(e,t){let n=x(e.split(`?`)[0]);if(t.has(n))return t.get(n);let r=w(n,`package.json`),i=(m(r)?JSON.parse(h(r,`utf8`)).name:void 0)??(x(n)===n?void 0:I(n,t));return t.set(n,i),i}var de=`importmap.json`,L=`release.json`,fe=[`./abilities`,`./weapons`,`./npcs`,`./inventory`,`./dragAndDrop`,`./tracks`],pe=[`./rounds`],R={"@spawnite/engine":[`.`,`./core`,...fe,...pe,`./three`,`./looks/*`],"@spawnite/schema":[`.`],"@spawnite/ui":[`.`,`./motion`],"@pixiv/three-vrm":[`.`,`./nodes`],"@react-three/drei":[`.`],"@react-three/fiber":[`.`],"@react-three/postprocessing":[`.`],koota:[`.`,`./react`],postprocessing:[`.`],react:[`.`,`./jsx-runtime`],"react-dom":[`.`,`./client`],three:[`.`,`./addons`,`./addons/*`,`./examples/jsm/*`,`./tsl`,`./webgpu`],"three.quarks":[`.`],zustand:[`.`,`./middleware`,`./shallow`,`./vanilla`]};function z(e,t){let n=t.replace(/[A-Z]/g,e=>`-${e.toLowerCase()}`);return`${me(e)}${n}.js`}var me=e=>`${e}/exports/`;function he(e){let t=t=>{let n=w(e,t);return m(n)?JSON.parse(h(n,`utf8`)):void 0},n=t(de),r=t(L);if(n?.imports!==void 0&&r?.version!==void 0)return{version:r.version,imports:n.imports,exports:r.exports??{},packages:r.packages??{}}}var B=e=>e.replace(/[.*+?^${}()|[\]\\/]/g,`\\$&`),V=String.raw`(?:/(?![^?]*\.css(?:\?|$))|$)`;function H(){return Object.keys(R).map(e=>RegExp(`^${B(e)}${V}`))}var U=Object.keys(R).map(B).join(`|`),W=RegExp(`^(?:${U})${V}`),G=RegExp(`["'\`](?:${U})[/"'\`]`);function K({imports:e},t){if(t in e)return e[t];let n=Object.keys(e).filter(e=>e.endsWith(`/`)&&t.startsWith(e)).sort((e,t)=>t.length-e.length)[0];return n===void 0?void 0:e[n]+t.slice(n.length)}function ge({version:e}){return`/_engine/${e}/`}var _e=/<script\s+type=["']?importmap["']?[^>]*>[\s\S]*?<\/script>\s*/i;function ve(e,t){let n=new URL(ge(t),`https://engine.invalid`),r=Object.fromEntries(Object.entries(t.imports).map(([e,t])=>[e,new URL(t,n).pathname])),i=`<script type="importmap">${JSON.stringify({imports:r}).replaceAll(`<`,`\\u003c`)}<\/script>`,a=e.replace(_e,``),o=a.replace(/<head\b[^>]*>/i,e=>e+i);return o===a?i+a:o}function ye(e,t){let{module:n}=j(`module.js`,e),r=[],i=(e,n)=>{W.test(e)&&r.push({importer:t,specifier:e,name:n})};for(let{moduleRequest:e,entries:t}of n.staticImports){i(e.value);for(let{importName:n}of t)n.kind!==`NamespaceObject`&&i(e.value,n.kind===`Default`?`default`:n.name??void 0)}for(let{entries:e}of n.staticExports)for(let{moduleRequest:t,importName:n}of e)t&&i(t.value,n.kind===`Name`?n.name??void 0:void 0);for(let t of q(e,n))i(t);return r}function q(e,t){return t.dynamicImports.flatMap(({moduleRequest:t})=>{let n=e.slice(t.start,t.end);return/^(["'`])[^"'`]*\1$/.test(n)?[n.slice(1,-1)]:[]})}function be(e,t){let n=/* @__PURE__ */ new Set;for(let{importer:r,specifier:i,name:a}of t){let t=K(e,i),o=t===void 0?void 0:e.exports[t];if(o===void 0){let t=i.match(W)?.[0]??``,a=Object.keys(e.imports).filter(e=>e.startsWith(t.replace(/\/$/,``)));n.add(`${r} imports "${i}", which engine ${e.version} does not serve. It serves ${a.join(`, `)}.`)}else a!==void 0&&!o.includes(a)&&n.add(`${r} imports ${a} from "${i}", which engine ${e.version} does not export.`)}return[...n]}function xe(e){let t=[],n=process.cwd();return{name:`spawnite:release-imports`,enforce:`post`,configResolved(e){n=e.root},transform(e,r){if(!G.test(e))return null;let i=T(n,r.split(`?`)[0]).replaceAll(`\\`,`/`);return t.push(...ye(e,i)),null},buildEnd(n){if(n)return;let r=be(e,t);r.length>0&&this.error([...r,`A published page loads the engine and its peers from the release its import map names, so each import must be one that release has. Import something its ${L} lists, or build against a release that has it.`].join(`
4
+ `))}}}var Se=`@spawnite/engine`,Ce=`@spawnite/engine/core`;function we(){let e={persist:/* @__PURE__ */ new Set,defineSave:/* @__PURE__ */ new Set,whole:/* @__PURE__ */ new Set},t=/* @__PURE__ */ new Map,n=/* @__PURE__ */ new Map,r=[],i=process.cwd(),a=e=>T(i,e.split(`?`)[0]).replaceAll(`\\`,`/`),o=e=>[...e].sort(),s=e=>{let t=n.get(e);return t||n.set(e,t=/* @__PURE__ */ new Set),t};return{name:`spawnite:save-imports`,enforce:`post`,configResolved(e){i=e.root},async transform(t,n){let i=G.test(t),o=!n.includes(`/node_modules/`);if(!i&&!o)return null;let c=a(n),l=(t,n)=>t!==Se&&t!==Ce?!1:(n===null?e.whole.add(c):n===`persist`&&t===Se?e.persist.add(c):n===`defineSave`&&e.defineSave.add(c),!0),u=async(e,t,i)=>{if(!o)return;let a=(await this.resolve(e,n))?.id;a&&!a.includes(`/node_modules/`)&&r.push({id:n,from:a,name:t,exportedAs:i})},{module:d}=j(`module.js`,t);for(let{moduleRequest:e,entries:t}of d.staticImports)for(let{importName:n}of t){let t=n.kind===`Name`?n.name:n.kind===`Default`?`default`:null;!l(e.value,t)&&t!==null&&await u(e.value,t)}for(let{entries:e}of d.staticExports)for(let{moduleRequest:t,importName:r,exportName:i}of e){if(!t)continue;let e=r.kind===`Name`?r.name:null,a=i.kind===`Name`?i.name:null;l(t.value,e)?e===`persist`&&a!==null&&s(n).add(a):e!==null&&a!==null&&await u(t.value,e,a)}for(let e of q(t,d))l(e,null);return null},buildEnd(){for(let t=!0;t;){t=!1;for(let{id:i,from:o,name:c,exportedAs:l}of r)n.get(o)?.has(c)&&(l===void 0?e.persist.has(a(i))||(e.persist.add(a(i)),t=!0):s(i).has(l)||(s(i).add(l),e.persist.add(a(i)),t=!0))}for(let e of this.getModuleIds()){let n=this.getModuleInfo(e);n&&n.code!==null&&!e.includes(`/node_modules/`)&&t.set(a(e),n.exports)}},get imports(){return{persist:o(e.persist),defineSave:o(e.defineSave),whole:o(e.whole)}},exports:e=>t.get(e)}}function Te({page:e,releaseFolder:t,release:n}){let r={pageBytes:0,releaseBytes:0},i=[],a=/* @__PURE__ */ new Set,o=(o,s)=>{if(a.has(o)||!m(o))return;a.add(o);let c=h(o),l=ne(c).length;r[s?`releaseBytes`:`pageBytes`]+=l;let u=T(s?t:e,o).replaceAll(`\\`,`/`),d=s?n.packages[u]:void 0;return i.push({fileName:u,bytes:l,from:s?`release`:`page`,...d!==void 0&&{packages:d}}),c.toString(`utf8`)},s=(e,r)=>{let i=o(e,r);if(i!==void 0)for(let{moduleRequest:a}of j(`module.js`,i).module.staticImports){let i=a.value;if(i.startsWith(`.`))s(w(x(e),i),r);else{let e=K(n,i);e!==void 0&&s(w(t,e),!0)}}},c=o(w(e,`index.html`),!1)??``;for(let[t,n,r]of c.matchAll(/<(script|link)\b[^>]*?(?:src|href)="([^"]+)"[^>]*>/g)){let i=w(e,r);n===`script`&&/type="module"/.test(t)?s(i,!1):/rel="stylesheet"/.test(t)&&o(i,!1)}return{...r,files:i.sort((e,t)=>t.bytes-e.bytes)}}function Ee(e,t){let n=JSON.stringify(e),r=[],i=[];for(let{importName:e,localName:n}of t)e.kind===`Default`?i.push(n.value):e.kind===`NamespaceObject`?i.push(`* as ${n.value}`):r.push(`${e.name} as ${n.value}`);return r.length>0&&i.push(`{ ${r.join(`, `)} }`),`import ${i.join(`, `)} from ${n};`}function De(e){let t=(t,n)=>e.exports[K(e,z(t,n))??``]?.includes(n)===!0;return{name:`spawnite:split-release-imports`,renderChunk(e){let n=``,r=0;for(let{start:i,end:a,moduleRequest:o,entries:s}of j(`chunk.js`,e).module.staticImports){let c=o.value,l=s.filter(({importName:e})=>e.kind===`Name`&&e.name!==null&&t(c,e.name));if(l.length===0)continue;let u=s.filter(e=>!l.includes(e)),d=l.map(e=>Ee(z(c,e.importName.name??``),[e]));u.length>0&&d.unshift(Ee(c,u)),n+=e.slice(r,i)+d.join(``),r=a}return r===0?null:{code:n+e.slice(r),map:null}}}}var Oe=/\.[cm]?[jt]sx?$/,ke=/\.css$/,Ae=e=>e.length===0||e.some(({isType:e})=>!e);function je(e,t){let{module:n}=j(t,e);return[...n.staticImports.filter(({entries:e})=>Ae(e)).map(({start:e,moduleRequest:t})=>({start:e,specifier:t.value})),...n.staticExports.flatMap(({start:e,entries:t})=>{let n=t.find(({moduleRequest:e})=>e!==null)?.moduleRequest;return n&&Ae(t)?[{start:e,specifier:n.value}]:[]})].sort((e,t)=>e.start-t.start)}function Me(e,t){return q(e,j(t,e).module).map(e=>({start:0,specifier:e}))}function Ne(e){let t=/* @__PURE__ */ new Map,n=r=>{let i=t.get(r);if(i!==void 0)return i;let a=(async()=>{let t=(await Promise.all(je(h(r,`utf8`),r).filter(({specifier:e})=>!e.includes(`?`)).map(({specifier:t})=>e(t,r)))).flatMap(e=>e===void 0||e.startsWith(`\0`)?[]:ke.test(e)?[{file:e,sheet:!0}]:Oe.test(e)?[{file:e,sheet:!1}]:[]);for(let e of t)e.sheet||n(e.file).catch(()=>void 0);return t})();return t.set(r,a),a};return async e=>{let t=[],r=/* @__PURE__ */ new Set,i=async e=>{if(!r.has(e)){r.add(e);for(let r of await n(e))r.sheet?t.includes(r.file)||t.push(r.file):await i(r.file)}};return await i(e),t}}function Pe(){let e,t;return{name:`spawnite:release-stylesheets`,enforce:`post`,configResolved(e){t=ie(e)},async transform(n,r){if(!G.test(n)||t===void 0)return null;let i=t,a=this.environment;e??=Ne((e,t)=>i(a,e,t));let o=[...Me(n,r),...je(n,r)],s=``,c=0,l=!1;for(let{start:t,specifier:u}of o){if(!W.test(u))continue;let o=await i(a,u,r);if(o===void 0||!Oe.test(o))continue;let d=await e(o);d.length!==0&&(s+=n.slice(c,t)+d.map(e=>`import ${JSON.stringify(e)};`).join(``),c=t,l=!0)}return l?{code:s+n.slice(c),map:null}:null}}}function Fe(e,{outDir:t,release:n}){return{root:e,mode:`production`,logLevel:`warn`,worker:{plugins:()=>[Q()]},plugins:[Q(),xe(n),De(n),Pe(),{name:`spawnite:import-map`,transformIndexHtml:{order:`post`,handler:e=>ve(e,n)}}],build:{outDir:t,emptyOutDir:!0,rolldownOptions:{external:H()}}}}var J=`([0-9a-f]{64})\\.(glb|vrm|vrma|webp|ktx2|hdr|mp3|json)`,Ie=RegExp(`^${J}$`),Le=RegExp(`https:\\/\\/assets\\.spawnite\\.com\\/assets\\/(${J})(?![\\w./-])`,`g`),Re={glb:`model/gltf-binary`,vrm:`application/octet-stream`,vrma:`application/octet-stream`,webp:`image/webp`,ktx2:`image/ktx2`,hdr:`application/octet-stream`,mp3:`audio/mpeg`,json:`application/json`},ze=`/__spawnite/assets`,Be={offline:504,"site-error":502,"invalid-bytes":502,disk:500},Y=class extends Error{failure;key;constructor(e,t,n){super(n.message,{cause:n.cause}),this.failure=e,this.key=t,this.name=`SharedAssetError`}};function Ve(t=process.env){let n=t.SPAWNITE_CACHE_DIR;if(n){if(!C(n))throw e(/* @__PURE__ */ Error(`SPAWNITE_CACHE_DIR is ${n}, a relative path. Set it to an absolute path, or unset it to use the OS cache folder.`),`SP0546`,void 0);return w(n,`assets`)}let r=ae(`spawnite`,{suffix:``}).cache;if(!C(r))throw e(/* @__PURE__ */ Error(`Spawnite's cache folder is ${r}, a relative path. Set the variable it comes from (XDG_CACHE_HOME or LOCALAPPDATA) to an absolute path, or set SPAWNITE_CACHE_DIR.`),`SP0547`,void 0);return w(r,`assets`)}function He(t,n=process.env){let r=n.ASSETS_URL||t,i=`${r}/`,a=URL.canParse(i)?new URL(i):void 0;if(!a||!/^https?:$/.test(a.protocol)||a.href!==i||/[?#]/.test(r)||r.endsWith(`/`))throw e(/* @__PURE__ */ Error(`ASSETS_URL is ${r}. Set it to an http or https URL with no trailing slash, such as ${t}, or unset it.`),`SP0548`,void 0);return r}function Ue(t){let n=Ie.exec(t)?.[1];if(!n)throw e(/* @__PURE__ */ Error(`${t} is not a shared asset's key.`),`SP0549`,void 0);return`sha256-${Buffer.from(n,`hex`).toString(`base64`)}`}function X(e){return e?.code}var We=12e4;function Ge({folder:t,origin:n}){let r=/* @__PURE__ */ new Map;function i(n,r){return new Y(`disk`,n,e(Error(`The shared asset ${n} could not be read or stored in ${t}: ${r.message}. Free some space, or move the cache with SPAWNITE_CACHE_DIR.`,{cause:r}),`SP0550`,void 0))}async function a(n,r){let i,a;try{i=await fetch(r,{signal:AbortSignal.timeout(We)}),a=Buffer.from(await i.arrayBuffer())}catch(i){let a=(process.env.HTTPS_PROXY||process.env.https_proxy)&&!process.env.NODE_USE_ENV_PROXY?` Node's fetch ignores HTTPS_PROXY; start the dev server with NODE_USE_ENV_PROXY=1 (Node 24 and later).`:``;throw new Y(`offline`,n,e(Error(`The shared asset ${n} is not in the cache, and ${r} could not be reached. Connect to the network and reload the page once; after that it loads offline from ${t}.${a}`,{cause:i}),`SP0551`,void 0))}if(!i.ok)throw new Y(`site-error`,n,e(/* @__PURE__ */ Error(`The assets site answered ${i.status} for ${r}: the installed engine or @spawnite/assets names a file the site does not hold. Update them.`),`SP0552`,void 0));return a}async function o(r){let o=Ue(r);try{return await M.get.byDigest(t,o)}catch(e){if(X(e)===`EINTEGRITY`)await M.rm.content(t,o).catch(e=>{throw i(r,e)});else if(X(e)!==`ENOENT`)throw i(r,e)}let s=`${n}/assets/${r}`,c=await a(r,s);try{await M.put(t,r,c,{integrity:o,algorithms:[`sha256`]})}catch(t){if(X(t)!==`EINTEGRITY`)throw i(r,t);let n=y(`sha256`).update(c).digest(`hex`);throw new Y(`invalid-bytes`,r,e(Error(`${s} answered bytes whose SHA-256 is ${n}, not the ${r.split(`.`)[0]} its name gives, so they were not stored. Reload to try again, and report it if it repeats.`,{cause:t}),`SP0553`,void 0))}return c}return{read(e){let t=r.get(e);return t||(t=o(e).finally(()=>r.delete(e)),r.set(e,t)),t}}}async function Ke(e,t,n,r){let i=(t.url??``).split(/[?#]/)[0].replace(/^\//,``),a=Ie.exec(i)?.[2];if(!a){n.statusCode=404,n.end();return}if(t.method!==`GET`&&t.method!==`HEAD`){n.statusCode=405,n.setHeader(`Allow`,`GET, HEAD`),n.end();return}let o;try{o=await e.read(i)}catch(e){if(!(e instanceof Y))throw e;let t=r.readSource(i),a=t?`${e.message} ${t} names it.`:e.message;r.failed(i,a),n.statusCode=Be[e.failure],n.statusMessage=`${i}: ${e.failure}, see the dev server's terminal`,n.setHeader(`Cache-Control`,`no-store`),n.setHeader(`Content-Type`,`text/plain; charset=utf-8`),n.end(a);return}r.served(i),n.setHeader(`Content-Type`,Re[a]),n.setHeader(`Content-Length`,o.byteLength),n.setHeader(`Cache-Control`,`public, max-age=31536000, immutable`),n.end(t.method===`HEAD`?void 0:o)}function qe(e,t,n){return e.replace(Le,(e,r)=>(n?.(r),`${t}${ze.slice(1)}/${r}`))}function Je(e,t){let n=/* @__PURE__ */ new Map,r=/* @__PURE__ */ new Map,i=e=>t.send({type:`error`,err:{message:e,stack:``}});return t.on(`connection`,()=>r.forEach(i)),{noteSource(e,t){n.has(e)||n.set(e,t)},readSource:e=>n.get(e),failed(t,n){r.has(t)||e.error(n),r.set(t,n),i(n)},served(e){r.delete(e)}}}var Ye=String.raw`/\*[\s\S]*?\*/|//.*`,Xe=new RegExp(String.raw`${Ye}|(?<=^[ \t]*)#include\s+"(lygia/[^"]+)"`,`gm`),Ze=/#include\s+"lygia\//,Qe=new RegExp(String.raw`${Ye}|^[ \t]*#include\s+"([^"]+)".*$`,`gm`);function $e(){for(let t=import.meta.dirname;;t=x(t)){let n=w(t,`node_modules`,`lygia`);if(m(w(n,`README_GLSL.md`)))return n;if(x(t)===t)throw e(/* @__PURE__ */ Error(`Shader: the lygia package is not installed. Install it with pnpm add lygia.`),`SP0384`,void 0)}}var et;function tt(t,n){let r=n.get(t);if(r===void 0){et??=$e();let e=w(et,t.slice(6));r=t.startsWith(`lygia/`)&&m(e)?h(e,`utf8`):null,n.set(t,r)}if(r===null)throw e(/* @__PURE__ */ Error(`Shader: no LYGIA file at "${t}". Check the path against the lygia package's GLSL files, such as lygia/generative/snoise.glsl.`),`SP0385`,void 0);return r}function nt(e,t){let n=[],r=t.startsWith(`lygia/`)?t:e+t;for(let e of r.split(`/`))e===`..`?n.pop():e!==`.`&&e!==``&&n.push(e);return n.join(`/`)}function rt(e,t){t.included.add(e);let n=e.slice(0,e.lastIndexOf(`/`)+1);return tt(e,t.files).replace(Qe,(e,r)=>{if(r===void 0)return e;let i=nt(n,r);return t.included.has(i)?``:rt(i,t)})}function it(e){return e.replaceAll(`\\`,`\\\\`).replaceAll("`","\\`").replaceAll("${","\\${").replaceAll(`
5
+ `,`\\n`)}function at(e){return`type`in e&&e.type===`TemplateElement`}function ot(e,t){if(typeof e!=`object`||!e)return t;if(at(e))t.push(e);else for(let n of Object.values(e))ot(n,t);return t}function st(e,{filename:t=`module.ts`,files:n=/* @__PURE__ */ new Map}={}){if(!Ze.test(e))return e;let r=ot(j(t,e).program,[]),i=/\.(?:[cm]?ts|tsx)$/.test(t),a=e;for(let t of r.reverse()){let{start:r,end:o}=t;i&&(r+=1,o-=e[o-1]==="`"?1:2);let s=e.slice(r,o),c=s.replace(Xe,(e,t)=>t===void 0?e:it(rt(nt(``,t),{included:/* @__PURE__ */ new Set,files:n})));c!==s&&(a=a.slice(0,r)+c+a.slice(o))}return a}var ct=/[\\/]three[\\/]examples[\\/]jsm[\\/]loaders[\\/]DRACOLoader\.js$/,lt=/new URL\(\s*'\.\.\/libs\/draco\/draco_decoder\.js',\s*import\.meta\.url\s*\)\.toString\(\)/,ut=`'../libs/draco/draco_`;function dt(e){if(!lt.test(e))return;let t=e.replace(lt,`null`);if(t.includes(ut))return t.replaceAll(ut,`'../libs/draco/gltf/draco_`)}function ft(e,t){let n=w(t,b(e));if(m(n)&&m(e)&&v(n).size===v(e).size&&h(n).equals(h(e)))return`assets/${b(e)}`}var Z=`https://assets.spawnite.com`;function Q(){let e=/* @__PURE__ */ new Map;return{name:`spawnite:shared-assets`,apply:`build`,enforce:`pre`,load(t){let[n,r]=t.split(`?`),i=new URLSearchParams(r);if(!i.has(`url`)||i.has(`inline`)||I(n,e)!==`@spawnite/assets`)return null;let a=`${Z}/assets/${y(`sha256`).update(h(n)).digest(`hex`)}${S(n).toLowerCase()}`;return`export default ${JSON.stringify(a)};`}}}var pt=A(E(import.meta.dirname,`../rapier/simd-compat/rapier.mjs`)),mt=A(E(import.meta.dirname,`../../ui/src/index.tsx`)),ht=`\0spawnite-ui-sheet-in-dev`,gt=A(E(import.meta.dirname,`../../ui/src/styles.css`)),_t=A(E(import.meta.dirname,`../../ui/src/workspace.css`)),vt=`@spawnite/ui/styles.css`;function yt(e,t){return(Array.isArray(e)?e.map(({find:e})=>e):Object.keys(e??{})).some(e=>typeof e==`string`?t===e||t.startsWith(`${e}/`):e.test(t))}var $=1e3,bt=10;function xt(e){return e.type!==`log`||e.data.level===`error`}function St(e,t){let n=/* @__PURE__ */ new Map,r=0,i=0,a=0,o=()=>{t.warn(`${a} more errors from the page were not printed, to keep the dev server responsive.`,{timestamp:!0}),a=0};return(t,s)=>{if(!xt(t))return e(t,s);let c=Date.now();for(let[e,t]of n)c-t>=$&&n.delete(e);let l=JSON.stringify(t);if(!n.has(l)){if(c-r>=$&&(r=c,i=0),i===bt){a++===0&&setTimeout(o,$-(c-r)).unref();return}i++,n.set(l,c),e(t,s)}}}function Ct(e){let{hot:t}=e.environments.client,n=t.on.bind(t),r=t.off.bind(t),i=/* @__PURE__ */ new Map;t.on=((t,r)=>{if(t!==`vite:forward-console`)return n(t,r);let a=i.get(r)??St(r,e.config.logger);return i.set(r,a),n(t,a)}),t.off=((e,t)=>r(e,e===`vite:forward-console`&&i.get(t)||t))}function wt(e){try{return h(w(e,c,i),`utf8`).trim()}catch{return``}}function Tt(e){try{return JSON.parse(h(w(e,`package.json`),`utf8`))}catch{return}}function Et(e={}){let{loadingScreen:i=!0}=e,c=u(e.replay),f=d(e.clips),p={shotIntervalSeconds:c.shotIntervalSeconds,shotWidth:c.shotWidth},ee=/* @__PURE__ */ new Map,h,g=!1,_=!1,v=`/`,y,b=(e,t)=>qe(e,v,e=>y?.noteSource(e,A(T(S??process.cwd(),t)))),x=!1,S,D=()=>S===void 0?void 0:ue(S,import.meta.dirname),O,k=()=>O??=le(import.meta.dirname);return{name:`spawnite`,enforce:`pre`,api:{replay:c,clips:f,readBuild:D},config(e,{mode:t,command:n}){if(g=n===`serve`,_=g&&t!==`test`,e.build?.lib)return;let r=e.build?.assetsInlineLimit,i={assetsInlineLimit:(e,t)=>e.endsWith(`.mp3`)?!1:typeof r==`function`?r(e,t):r===void 0?void 0:t.length<r,rolldownOptions:{experimental:{lazyBarrel:e.build?.rolldownOptions?.experimental?.lazyBarrel??!0}}};return t===`test`?{build:i}:(S=E(e.root??process.cwd()),{build:i,worker:{rolldownOptions:{experimental:{lazyBarrel:e.worker?.rolldownOptions?.experimental?.lazyBarrel??!0}}},...m(gt)&&e.resolve?.conditions?.includes(`@spawnite/source`)&&!yt(e.resolve.alias,vt)&&{resolve:{alias:[{find:vt,replacement:g?gt:_t}]}},...g&&{optimizeDeps:{include:[`@spawnite/engine > @dnd-kit/react`,`@spawnite/engine > @dnd-kit/dom`]}},define:{__GAME_ENGINE_DEV__:JSON.stringify(t===`development`),...t===`development`&&{__GAME_ENGINE_REPLAY__:JSON.stringify(p),__GAME_ENGINE_MANIFEST__:JSON.stringify(Tt(S)??null)}}})},configureServer(e){Ct(e),e.middlewares.use(l,(t,n,r)=>{Dt(e).then(({handleReplayRequest:r})=>r(e.config.root,t,n,{warn:t=>e.config.logger.warn(t),settings:c})).catch(r)});let n=Ge({folder:Ve(),origin:He(Z)}),r=Je(e.config.logger,e.ws);y=r,e.middlewares.use(`${e.config.base}${ze.slice(1)}`,(e,t,i)=>{Ke(n,e,t,r).catch(i)});let i=w(import.meta.dirname,`..`,`package.json`);e.watcher.on(`all`,(e,t)=>{let n=T(import.meta.dirname,t);(t===i||!n.startsWith(`..`)&&!C(n))&&(O=void 0)}),e.middlewares.use(t,(e,t)=>{t.setHeader(`Content-Type`,`application/json`),t.setHeader(`Cache-Control`,`no-store`),t.end(JSON.stringify({build:k(),folder:import.meta.dirname}))})},configResolved(e){v=e.base,x=g||[e.build.rolldownOptions.output].flat().some(e=>e?.strictExecutionOrder),e.command===`build`&&!e.build.lib&&(h=e.publicDir?w(e.publicDir,`assets`):void 0)},resolveId(e,t){return g&&e===`./styles.css`&&t?.split(`?`)[0]===mt?ht:e!==`#rapier`||!x?null:pt},load(e){if(e===ht)return``;let[t,n]=e.split(`?`);if(!h||!new URLSearchParams(n).has(`url`))return null;let r=ft(t,h);return r?`export default ${JSON.stringify(r)};`:null},transformIndexHtml(e,{filename:t}){_&&(e=b(e,t));let[c,l]=g?[r,k()]:[n,D()],u=[...l===void 0?[]:[{tag:`meta`,attrs:{name:c,content:l},injectTo:`head`}],...g&&S!==void 0?[{tag:`meta`,attrs:{name:o,content:wt(S)},injectTo:`head`}]:[]];if(!i)return{html:e,tags:u};let d=e.replace(/<body\b[^>]*>/i,e=>e+a);return d===e&&console.warn(`The page has no <body> tag, so it shows no loading screen until the game mounts. Add <body> to index.html.`),{html:d,tags:[{tag:`style`,children:s,injectTo:`head`},...u]}},generateBundle(e,t){for(let e of Object.values(t))e.type===`asset`&&e.fileName.endsWith(`.css`)&&String(e.source).includes(`@theme`)&&this.warn(`CSS: ${e.fileName} holds an @theme block, which the browser drops. Write its values as plain CSS: variables under :root, an animation as a class in @layer components with a top-level @keyframes.`)},transform(e,t){let n=t.split(`?`)[0],r=_&&this.environment.name===`client`?b(e,n):e,i=r===e?null:{code:r,map:null};if(e=r,ct.test(n)){let t=dt(e);return t===void 0?(this.warn(`Draco: three's DRACOLoader.js no longer names the decoder files the engine rewrites, so the build copies both decoders`),null):{code:t,map:null}}if(!/\.(?:[cm]?[jt]s|[jt]sx)$/.test(n)||!Ze.test(e))return i;try{return{code:st(e,{filename:n,files:ee}),map:null}}catch(e){this.error(e instanceof Error?e.message:String(e))}}}}async function Dt(e){return await e.ssrLoadModule(`@spawnite/engine/internal/dev-server`)}function Ot(e){return v(e,{throwIfNoEntry:!1})?.isFile()??!1}function kt(e,t){let n=T(e,t);return!n.startsWith(`..`)&&!C(n)}function At(e){let t=w(_(e),`../../apps/wiki/src/content/docs`);return m(w(t,`engine`))?t:w(e,`dist/wiki`)}function jt(e,t=x(import.meta.dirname)){let n=At(t),r=e.split(`#`)[0].replace(/^\/+|\/+$/g,``);return[`${r}.md`,`${r}.mdx`,`${r}/index.md`,`${r}/index.mdx`].map(e=>w(n,e)).find(e=>kt(w(n,`engine`),e)&&Ot(e))}function Mt(e,t){if(t===void 0||!Ot(t)){e.statusCode=204,e.end();return}e.setHeader(`Content-Type`,`text/markdown; charset=utf-8`),e.end(h(t))}function Nt(e){return decodeURIComponent(new URL(e.url??`/`,`http://page`).pathname)}function Pt(){return{name:`engine:wiki-pages`,apply:`serve`,configureServer({config:{root:e},middlewares:t,watcher:n,ws:r}){let i=w(e,`wiki`);t.use(`${f}wiki`,(e,t)=>{let n=w(i,Nt(e));if(!kt(i,n)){t.statusCode=404,t.end();return}Mt(t,n)}),t.use(`${f}engine`,(e,t)=>Mt(t,jt(`/engine${Nt(e)}`)));let a=t=>{let n=T(e,t).split(D).join(`/`);n.startsWith(`wiki/`)&&r.send(p,{path:n})};for(let e of[`add`,`change`,`unlink`])n.on(e,a)},transformIndexHtml:{order:`pre`,handler:()=>[{tag:`script`,attrs:{type:`module`},children:`import.meta.hot?.on(${JSON.stringify(p)}, (detail) => dispatchEvent(new CustomEvent(${JSON.stringify(p)}, { detail })));`,injectTo:`head`}]}}}var Ft=15e5;function It(e){let t=/* @__PURE__ */ new Set([`index.html`]),n=r=>{let i=e[r];t.has(r)||i?.type!==`chunk`||(t.add(r),i.viteMetadata?.importedCss.forEach(e=>t.add(e)),i.imports.forEach(n))};return Object.values(e).filter(e=>e.type===`chunk`&&e.isEntry).forEach(e=>n(e.fileName)),t}function Lt(e){return new Map([...It(e)].map(t=>{let n=e[t],r=n.type===`chunk`?n.code:n.source;return[t,ne(r).length]}))}function Rt(e){let t=0;for(let n of Lt(e).values())t+=n;return t}function zt(){let e;return{name:`spawnite:server-half-build`,configResolved(t){e=t.plugins.find(({name:e})=>e===`spawnite`)?.api?.readBuild},generateBundle(){let t=e?.()??null;this.emitFile({type:`asset`,fileName:`build.json`,source:`${JSON.stringify({build:t})}\n`})}}}function Bt(t,{outDir:n=w(t,`dist-server`),emptyOutDir:r=!0,release:i}={}){let a=ee(`src/scenes/*.tsx`,{cwd:t}).sort();if(a.length===0)throw e(/* @__PURE__ */ Error(`${t} holds no scene under src/scenes: a server half builds each scene there, as \`spawnite add scene\` writes it.`),`SP0386`,void 0);return{root:t,mode:`production`,logLevel:`warn`,plugins:[zt(),...i===void 0?[]:[xe(i)],Q()],ssr:{noExternal:!0},build:{ssr:!0,outDir:n,emptyOutDir:r,copyPublicDir:!1,rolldownOptions:{input:Object.fromEntries(a.map(e=>[b(e,`.tsx`),w(t,e)])),external:H(),output:{format:`es`,entryFileNames:`[name].mjs`,chunkFileNames:`chunks/[name]-[hash].mjs`}}}}}function Vt(e){return Object.values(e).flatMap(e=>e.type===`chunk`?e.moduleIds:[]).filter(e=>/[\\/]zod[\\/]v4[\\/](classic[\\/]|locales[\\/](?!en\.js$))/.test(e))}function Ht(e,t){let n=_(e),r=0;for(let e of Object.values(t))if(e.type===`chunk`)for(let[t,{code:i}]of Object.entries(e.modules)){if(t.startsWith(`\0`))continue;let e=T(n,t);!e.startsWith(`..`)&&!C(e)&&!e.split(/[\\/]/).includes(`node_modules`)&&(r+=Buffer.byteLength(i??``,`utf8`))}return r}async function Ut(t,{env:n={},plugins:r=[]}={}){let i={},a=await O(w(te(),`game-build-`)),o=[`NODE_ENV`,...Object.keys(n)],s=o.map(e=>process.env[e]);Object.assign(process.env,{...n,NODE_ENV:`production`});try{await re({root:t,logLevel:`silent`,build:{outDir:a,emptyOutDir:!0},plugins:[...r,{name:`spawnite:record-bundle`,writeBundle:(e,t)=>void Object.assign(i,t)}]})}finally{o.forEach((e,t)=>{s[t]===void 0?delete process.env[e]:process.env[e]=s[t]}),await k(a,{recursive:!0,force:!0})}let c=[],l=Rt(i);l>15e5&&c.push(`A standalone build's code, engine included, is ${l.toLocaleString(`en`)} bytes gzipped, over this repository's ceiling of ${Ft.toLocaleString(`en`)}. The engine is most of it; the game's own source files render to ${Ht(t,i).toLocaleString(`en`)} bytes before gzip. \`spawnite build\` prints the game's own code gzipped as \`Game code\`, with its heaviest modules; load what the first frame does not draw through a dynamic import.`);let u=Vt(i);if(u.length>0&&c.push(`The bundle holds zod's classic API or a locale other than English:\n${u.map(e=>` ${e}`).join(`
6
+ `)}\nImport zod from "zod/mini", and \`describe\` by name from "zod/v4/core".`),c.length>0)throw e(/* @__PURE__ */ Error(`The production build of ${t} breaks the platform's rules:\n${c.join(`
7
+ `)}`),`SP0387`,`checkGameBuild`);return i}function Wt(e){return{name:`rooms-content-policy`,apply:`build`,transformIndexHtml:()=>e?[{tag:`meta`,attrs:{"http-equiv":`Content-Security-Policy`,content:`connect-src 'self' blob: ${Z} wss://*.${e}`},injectTo:`head`}]:[]}}export{Wt as a,Fe as c,ge as d,we as f,It as i,Te as l,Bt as n,Et as o,jt as r,Pt as s,Ut as t,he as u};
@@ -0,0 +1 @@
1
+ import{tp as e}from"./-MLBVTaO.js";import{_r as t,xr as n}from"./V70ADx0g.js";import{_ as r,l as i}from"./BobsCMiL.js";import{createQuery as a}from"koota";var o=.01,s=/*#__PURE__*/ a(i);function c(e){let r=t(e,s);return r!==void 0&&((n(r,i,`locked`)??!1)||(n(r,i,`firstPersonView`)??!1))}function l(e){let t=e.queryFirst(i)?.get(i)?.orbit;return t?t.polarAngle-Math.PI/2:0}function u(e){let t=e.queryFirst(i),n=t?.get(i);t&&n?.lockToggle&&t.set(i,{locked:!n.locked})}function d(e){let t=e.queryFirst(i);t?.get(i)?.firstPersonView&&(t.set(i,{firstPersonView:!1}),r(e))}function f(e,t){let n=e.queryFirst(i),r=n?.get(i);if(n&&r?.orbit){if(!t){d(e);return}r.firstPerson&&!r.firstPersonView&&(r.orbit.distance>r.minDistance+o||n.set(i,{firstPersonView:!0}))}}function p(t,n){let r=t.queryFirst(i)?.get(i);if(!r?.orbit)return;let a=r.invertLook?n.y:-n.y;r.orbit.rotate(-n.x*r.lookSpeed,a*r.lookSpeed*e.tiltShare,!1)}export{f as a,p as i,c as n,u as r,l as t};
@@ -0,0 +1 @@
1
+ import{n as e}from"./BrfUaL46.js";import{MathUtils as t}from"three";import{readPaintGrid as n}from"@spawnite/schema";import r from"alea";import{SimplexNoise as i}from"three/addons/math/SimplexNoise.js";var a=16;function o(o,s=o.terrain&&n(o.terrain)){let{map:c,size:l,cell:u}=o,{ground:d,regions:f,seed:p}=c,m=Math.round(l/u),h=l/2,g=Object.keys(f),_=Object.values(f),v=new i({random:r(`${p}:ground`)}),y=[d.base],b=t=>{let n=y.indexOf(t);if(n<0){if(y.length>=a)throw e(/* @__PURE__ */ Error(`The map resolves to more than ${a} materials, the most the ground draws: ${[...y,t].join(`, `)}. Paint or rule fewer.`),`SP0101`,`resolveGroundMaterials`);n=y.push(t)-1}return n},x=(e,t,n)=>(e.above===void 0||n.height>e.above)&&(e.below===void 0||n.height<e.below)&&(e.steeperThan===void 0||n.slope>e.steeperThan)&&(e.flatterThan===void 0||n.slope<e.flatterThan)&&(e.region===void 0||n.regionWeights[g.indexOf(e.region)]>.5)&&(e.noise===void 0||v.noise(n.x/e.noise.scale+t*97.31,n.z/e.noise.scale)>e.noise.above)&&(e.deeperThan===void 0||n.depth>e.deeperThan)&&(e.shallowerThan===void 0||n.depth>0&&n.depth<e.shallowerThan)&&(e.shoreWithin===void 0||n.depth<=0&&o.getShoreDistanceAt(n)<=e.shoreWithin);function S(e){let t=d.rules.find((t,n)=>t.material!==void 0&&x(t,n,e));if(t)return t.material;if(e.slope>d.steepAbove)return d.steep;let n=d.base;return _.forEach((t,r)=>{t.material&&e.regionWeights[r]>.5&&(n=t.material)}),n}let C=m*m,w={names:y,base:new Uint8Array(C),overlay:new Uint8Array(C),blend:new Float32Array(C),ruled:new Uint8Array(C)};for(let e=0;e<m;e++)for(let n=0;n<m;n++){let r=e*m+n,i={x:(n+.5)*u-h,z:(e+.5)*u-h},a=o.getHeightAt(i),c={...i,height:a,depth:o.sea-a,slope:t.radToDeg(Math.atan(o.getSlopeAt(i))),regionWeights:o.getRegionWeightsAt(i)},l=o.getPathSurfaceAt(i),f=l&&l.weight>.5?l.surface:S(c);w.ruled[r]=b(f);let p=s?.paint[r]??NaN,g=s?.overlay[r]??NaN;if(!Number.isNaN(p)||!Number.isNaN(g)){w.base[r]=Number.isNaN(p)?w.ruled[r]:b(s.palette[p]),Number.isNaN(g)||(w.overlay[r]=b(s.palette[g]),w.blend[r]=s.blend[r]||0);continue}w.base[r]=w.ruled[r];let _=d.rules.find((e,t)=>e.overlay!==void 0&&x(e,t,c));_&&(w.overlay[r]=b(_.overlay),w.blend[r]=_.blend)}return w}var s=/* @__PURE__ */ new WeakMap;function c(e){let t=s.get(e);return t||(t=o(e),s.set(e,t)),t}function l({names:e,base:t,overlay:n,blend:r},i){let a=e[t[i]];return r[i]>0?`${a} (${e[n[i]]} ${Math.round(r[i]*100)}%)`:a}export{c as n,o as r,l as t};
@@ -0,0 +1,2 @@
1
+ var e=`.spawnite/saves`,t=`.cleared`,n=`spawnite-saves-cleared`,r=`spawnite:start-save`,i={root:`pointer-events-none fixed inset-0 z-[60] overflow-hidden bg-loading-background font-sans text-loading-text antialiased`,foot:`visible absolute inset-x-0 bottom-0 px-[max(1.5rem,6vw)] pb-[max(1.75rem,env(safe-area-inset-bottom))]`,meter:`relative mt-10 pt-9`,percent:`absolute top-0 left-[max(calc(var(--loading-progress)*100%),3ch)] -translate-x-full font-display text-2xl leading-none font-semibold tabular-nums`,track:`h-0.5 w-full bg-loading-track`,fill:`h-full w-[calc(var(--loading-progress)*100%)] bg-loading-bar`,under:`mt-3 flex items-baseline justify-between gap-6 text-sm`,stage:`text-loading-label`,notice:`shrink-0 text-xs text-loading-label`,problem:`mt-8 max-w-[60ch]`,problemTitle:`text-lg font-semibold`,problemDetail:`mt-1 text-sm text-loading-label`,retry:`pointer-events-auto mt-4 inline-block rounded-md border border-loading-text/35 px-4 py-2 text-sm font-medium hover:bg-loading-text/10 focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-loading-text`,noticeLink:`pointer-events-auto ml-1 font-bold underline underline-offset-2`},a=`spawnite-loading`,o=`Loading the game`,s=[`<div id="${a}" class="${i.root}" role="progressbar" aria-label="Loading" aria-valuemin="0" aria-valuemax="100" aria-valuetext="${o}">`,`<div class="${i.foot}">`,`<div data-shell-stall role="status" class="absolute bottom-full ${i.problem}">`,`<p class="${i.problemTitle}">This is taking longer than usual</p>`,`<p class="${i.problemDetail}">Still loading the game.</p>`,`<a href="" class="${i.retry}">Reload</a>`,`</div>`,`<div class="${i.meter}">`,`<span class="${i.percent}" aria-hidden="true"></span>`,`<div class="${i.track}"><div class="${i.fill}"></div></div>`,`</div>`,`<div class="${i.under}">`,`<span class="${i.stage}">${o}</span>`,`<p class="${i.notice}">Made with<a href="https://spawnite.com" target="_blank" rel="noopener noreferrer" class="${i.noticeLink}">Spawnite</a></p>`,`</div>`,`</div>`,`</div>`].join(``),c=[`#${a} { position: fixed; inset: 0; z-index: 60; overflow: hidden; background-color: var(--color-loading-background, oklch(14.5% 0 0)); color: var(--color-loading-text, oklch(97% 0 0)); }`,`@layer base { #${a} > div { visibility: hidden; } }`,`@property --loading-progress { syntax: "<number>"; inherits: true; initial-value: 0; }`,`@keyframes spawnite-loading-page { to { --loading-progress: 0.2; } }`,`#${a} { animation: spawnite-loading-page 12s cubic-bezier(0.2, 0.7, 0.3, 1) forwards; }`,`#${a} [aria-hidden] { counter-reset: loading-percent calc(var(--loading-progress) * 100 - 0.5); }`,`#${a} [aria-hidden]::after { content: counter(loading-percent) "%"; }`,`@keyframes spawnite-loading-stall { to { visibility: visible; } }`,`#${a} [data-shell-stall] { visibility: hidden; animation: spawnite-loading-stall 0s 20s forwards; }`].join(`
2
+ `);function l(){let e=globalThis.document?.getElementById(a);if(!e)return null;let t=Number.parseFloat(getComputedStyle(e).getPropertyValue(`--loading-progress`));return e.remove(),Number.isFinite(t)?t:0}export{t as a,r as c,l as i,s as n,n as o,c as r,e as s,i as t};
@@ -0,0 +1 @@
1
+ import{Hc as e,Vc as t,ef as n,ha as r,nl as i,tf as a,tl as o,u as s}from"./-MLBVTaO.js";import{Bt as c,Fn as l,Nt as u,Rn as d,Yt as f,Zt as p,en as m}from"./V70ADx0g.js";import{n as h}from"./BrfUaL46.js";import{a as g,t as _}from"./CVgRrBP4.js";function v(e,t,n){let{name:r,settings:i}=S(e,t);if(t.predicted)throw h(/* @__PURE__ */ Error(`sendMessage(world, ${r}) sends a plain message: "${r}" is a press, so send it with sendPress(world, handle, payload).`),`SP0028`,`sendMessage`);return C(e,r,i,n)}function y(t,n,r,...[i]){let{name:a,settings:o}=S(t,n);if(!n.predicted)throw h(/* @__PURE__ */ Error(`sendPress(world, ${a}) sends a press: "${a}" is a plain message, so send it with sendMessage(world, handle, payload).`),`SP0029`,`sendPress`);let d=i?.entity;if(d&&!D(t,d))return l(t,`sendPress: "${a}" was not sent, since it names an entity her player does not control: pass one readControlled(world, usePlayer()) lists.`),_.NotYours;let f=d??e(t)??E(t);if(!f)return T(t,`sendPress`,a),_.NoPlayer;let p=c(t,o.shape,r);return p.missing===void 0&&!m(p.payload,o.shape)?(x(t,`sendPress`,a,o,r),_.InvalidPayload):f===E(t)&&!s(t)?C(t,a,o,r):(u(t,{entity:f,name:a,payload:r}),null)}function b(e,t,n){let{name:r,settings:i}=S(e,t);return C(e,r,i,n)}function x(e,t,n,r,i){l(e,`${t}: "${n}" was not sent, since its payload ${w(i)} is not of its shape, ${JSON.stringify(r.shape)}: each field it declares, in range, and no other.`)}function S(e,t){let{name:n}=t;if(!e.get(f)?.get(n))throw h(/* @__PURE__ */ Error(`"${n}" is no message of this world: add the ${n.slice(0,n.indexOf(`.`))} plugin to plugins in src/game.ts.`),`SP0030`,void 0);return t}function C(t,n,r,i){let a=c(t,r.shape,i);if(a.missing!==void 0)return l(t,`sendMessage: "${n}" was not sent, since its field ${a.missing} names an entity no longer there, or one only this page holds.`),_.MissingEntity;if(!m(a.payload,r.shape))return x(t,`sendMessage`,n,r,i),_.InvalidPayload;if(t.has(d))return g.getState().sendMessage({name:n,payload:a.payload});let o=e(t);return o?(p(t,{entity:o,name:n,payload:i}),null):(T(t,`sendMessage`,n),_.NoPlayer)}function w(e){try{return JSON.stringify(e)}catch{return`(one JSON cannot write)`}}function T(e,t,n){l(e,`${t}: "${n}" went nowhere, since this world has no player's character to send it as; spawn the <CharacterSpawn> before a screen sends.`)}function E(e){let r=e.query(a(o));return s(e)?r.find(e=>n(e,o)?.role===i.Player):r.find(e=>t(e))}function D(e,n){if(n===E(e))return!0;let i=r(e,n);return i?.has(a(o))?s(e)||t(i):!1}export{y as n,b as r,v as t};
@@ -0,0 +1,2 @@
1
+ import{$ as e,J as t,Y as n,Z as r,et as i,q as a}from"./CU0epHFG.js";import{$d as o,Ad as s,At as c,Bo as l,Bu as u,Ds as d,Dt as f,Du as p,F as ee,Fl as te,Fn as m,G as ne,Gc as re,Hc as ie,Ho as ae,I as oe,J as se,Jo as ce,Ju as le,M as ue,Nu as de,O as fe,Of as pe,P as me,Pd as he,Pl as ge,Pn as _e,Pu as ve,Qo as ye,R as be,Vl as xe,Xa as Se,Xf as Ce,Ya as we,Yr as Te,_ as Ee,a as De,ac as Oe,af as ke,au as Ae,bf as je,bl as Me,bs as Ne,bt as Pe,dc as Fe,dl as Ie,do as Le,dt as Re,fl as ze,h as Be,i as Ve,ic as He,il as Ue,ip as We,kl as Ge,kt as Ke,l as qe,lc as Je,mn as Ye,mu as Xe,n as Ze,nc as Qe,od as $e,ol as et,on as tt,q as nt,qa as rt,qo as it,r as at,rc as ot,sn as st,tf as ct,uo as lt,v as ut,vt as dt}from"./-MLBVTaO.js";import{$n as h,B as ft,Gt as pt,Ht as g,Pn as mt,Pt as ht,R as gt,Rn as _t,Vt as _,W as vt,Y as yt,br as bt,cr as xt,hn as St,lr as Ct,ni as wt,or as v,pr as Tt,rr as Et,tr as y,tt as Dt,v as b,w as Ot,zn as kt}from"./V70ADx0g.js";import{n as x}from"./BrfUaL46.js";import{d as At,l as S,m as jt,n as Mt,u as Nt}from"./BobsCMiL.js";import{C as Pt,T as C,_ as Ft,a as It,s as Lt,u as Rt}from"./CVgRrBP4.js";import{a as zt,i as Bt,o as Vt,r as Ht,t as Ut}from"./Bh-CVkQx.js";import{c as Wt,d as Gt,i as Kt,l as qt,n as Jt,o as Yt,r as Xt}from"./BH6Ftfg9.js";import{a as Zt,i as Qt,r as $t,t as en}from"./wmIDrLkF.js";import{i as tn}from"./UJDr3Nrd.js";import{t as nn}from"./CRfoqBKG.js";import{i as rn}from"./DSb1ApLU.js";import{addAfterEffect as an}from"@react-three/fiber";import{Box3 as w,DefaultLoadingManager as on,InstancedMesh as sn,MathUtils as T,Matrix4 as cn,Raycaster as ln,Vector2 as un,Vector3 as dn}from"three";import{createQuery as fn,trait as pn}from"koota";import{PropShape as mn,ScatterKind as E,directLink as hn,parseLinkConditions as gn,scatterKinds as _n}from"@spawnite/schema";import{useMemo as vn,useSyncExternalStore as yn}from"react";import{shallow as bn}from"zustand/shallow";import{useProgress as xn}from"@react-three/drei";import{createStore as Sn}from"zustand/vanilla";var Cn=/*#__PURE__*/ pn({fromLook:!1}),wn=/*#__PURE__*/ pn({intensity:.6,threshold:.85,radius:.7}),Tn=/*#__PURE__*/ pn({radius:2,intensity:2}),En=/*#__PURE__*/ pn({offset:.3,darkness:.5}),Dn=`/engine/graphics/post-processing/`,On={trait:wn,wiki:Dn,description:`A glow around whatever is brighter than the threshold.`,ranges:{intensity:{min:0,max:3,step:.05},threshold:{min:0,max:1,step:.01},radius:{min:0,max:1,step:.01}},runsOn:Et.Client},kn={trait:Tn,wiki:Dn,description:`Darkens where surfaces meet.`,ranges:{radius:{min:0,max:10,step:.1},intensity:{min:0,max:5,step:.1}},runsOn:Et.Client},An={trait:En,wiki:Dn,description:`Darker corners.`,ranges:{offset:{min:0,max:1,step:.01},darkness:{min:0,max:1,step:.01}},runsOn:Et.Client},jn=/* @__PURE__ */ new Map;function Mn(e,t){return wt(jn,e,{...t})}function Nn(){return[...jn.keys()]}function Pn(e){return jn.get(e)}function Fn(e){let t=Pn(e);if(!t)throw x(Error(Fe({kind:`avatar`,name:e,names:jn.keys(),registrationInstructions:`register it with registerAvatar(name, body)`})),[[`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);return t}var In=`https://assets.spawnite.com/assets/c56d6f210c1dcf8529eaecc4c79e539ce4bc2fdc90f46485f1b91a847b544d03.glb`,Ln=`https://assets.spawnite.com/assets/6e6ea055ab5c05e0d498f955779c2bc0969e51973f5b0b9fa27b53adc69de334.glb`,Rn=`https://assets.spawnite.com/assets/bc426300607e8ff23fbfa01504958f0b6a67092097cbddb7b0f7912d711693a8.glb`,zn=`https://assets.spawnite.com/assets/4868ae2bf6ede613d94e36a70cc0d0ba501fe91d78d503da28562beb645d4336.glb`,Bn=`https://assets.spawnite.com/assets/004eb3c3eea08e1c468dcbe3abe8511d6223632a9c36b21bf4e5cb6448eef6f9.glb`,Vn=`https://assets.spawnite.com/assets/71db9cf959dcb158654c7b33fc67b82a6edc25901ef2f2a0fb35b75a2cbd69b2.glb`,Hn=`https://assets.spawnite.com/assets/97213c3cc609d892b4dd6f69cbe8bf0f370c55f036e3cb69254f3c8bf067e277.webp`,Un=`https://assets.spawnite.com/assets/6b29b7610261b22590517569e3a1e8b1d852757aa06ab8c4e3077702e55ca881.webp`,Wn={[E.TreeRound]:Bn,[E.TreeTall]:Vn,[E.BushRound]:In,[E.RockBoulder]:Rn,[E.RockFlat]:zn,[E.GrassTuft]:Ln},Gn={grass:Hn,path:Un},Kn=C()(()=>({loading:!0,mountedScene:null,covered:!1,settled:!1,shadersCompiled:!1,ready:!1})),qn=C()(()=>({runsFrames:!0})),Jn=/* @__PURE__ */ new Map,Yn=/* @__PURE__ */ new Set,Xn=/* @__PURE__ */ new Map,{itemStart:Zn,itemEnd:Qn}=on;on.itemStart=e=>{Jn.set(e,{name:e,since:performance.now()}),Xn.set(e,(Xn.get(e)??0)+1),Zn(e)},on.itemEnd=e=>{Jn.delete(e);let n=(Xn.get(e)??1)-1;n>0?Xn.set(e,n):(Xn.delete(e),r(t.Load,e)),Qn(e)};function $n(e){let t={name:e,since:performance.now()};return Yn.add(t),()=>{Yn.delete(t)}}function er(){return Yn.size}function tr(){let e=performance.now();return[...Jn.values(),...Yn].map(({name:t,since:n})=>({name:t,milliseconds:e-n}))}function nr(){return xn.getState().active||er()>0}var rr=/* @__PURE__ */ new WeakMap;function ir(e){let t={},n=rr.get(e)??/* @__PURE__ */ new Set;return rr.set(e,n.add(t)),()=>{n.delete(t)}}function ar(e){return(rr.get(e)?.size??0)>0}var or=/*#__PURE__*/ fn(u,v);function sr(e){let t=[];bt(e,or,([e,{position:n}],r)=>{e.current<=0||r.has(Ce)||t.push([n.x,n.y,n.z])});let n=ie(e)?.get(v)?.position;return{character:n?[n.x,n.y,n.z]:null,targets:t}}var cr=`page`,lr=/* @__PURE__ */ new Map;function ur(e,t,n){let r=lr.get(e);return r||(r=/* @__PURE__ */ new Map,lr.set(e,r)),r.set(t,n),()=>{let r=lr.get(e);r?.get(t)===n&&(r.delete(t),r.size===0&&lr.delete(e))}}function dr(e){let t={};for(let[n,r]of lr){if(n!==null&&!n.isAlive())continue;let i=n===null?cr:_(e,n),a={};for(let[e,t]of r)try{a[e]=t()}catch(t){a[e]={error:t instanceof Error?t.message:String(t)}}t[i]={...t[i],...a}}return t}function fr(e){return e.isMesh===!0}function pr(e,t){let n=t.toLowerCase(),r=[],i=e=>{if(e.name.toLowerCase().includes(n)){r.push(e);return}for(let t of e.children)i(t)};return i(e),r}function mr(e,t=12){let n=/* @__PURE__ */ new Set;e.traverse(t=>{if(fr(t))for(let r of[t.parent,t])r&&r!==e&&r.name!==``&&n.add(r.name)});let r=[...n];return r.length>t?`${r.slice(0,t).join(`, `)} and ${r.length-t} more`:r.join(`, `)||`none named`}function hr(e,{measure:t,part:n,every:r=!1}){let i=e.map(({key:e,object:t})=>{if(n===void 0)return{key:e,objects:[t]};let i=pr(t,n);if(i.length===0&&!r)throw x(/* @__PURE__ */ Error(`Nothing inside ${e}'s drawn object has a name holding "${n}". Its objects are named: ${mr(t)}.`),`SP0367`,void 0);return{key:e,objects:i,parts:[...new Set(i.map(({name:e})=>e))]}}),a=t(i.map(({objects:e})=>e)),o=i.map(({key:e,parts:t},n)=>{let{visible:r,inView:i,box:o,point:s,coveredBy:c,pixels:l}=a[n];return{key:e,...t&&{parts:t},visible:r,inView:i,share:i===0?0:r/i,screenShare:l===0?0:r/l,...o&&{box:o},...s&&{point:s},...c&&{coveredBy:c}}});return r?o.filter(({inView:e})=>e>0).sort((e,t)=>t.visible-e.visible):o}var gr=Sn()((e,t)=>({stack:[],open:n=>{let{stack:r}=t();e({stack:r.some(e=>e.id===n.id)?r.map(e=>e.id===n.id?n:e):[...r,n]})},close:n=>e({stack:t().stack.filter(e=>e.id!==n)})}));function _r(){return gr.getState().stack.filter(e=>e.pause).at(-1)?.title}function vr(e){return e.stack.some(e=>e.pause)}var yr=/* @__PURE__ */ function(e){return e.Scene=`scene`,e.World=`world`,e.Group=`group`,e.Entity=`entity`,e.Behaviour=`behaviour`,e.Scatter=`scatter`,e.Hud=`hud`,e}({});function D(e){let t=/* @__PURE__ */ new Map;for(let n of e){let e=t.get(n.parentId);e?e.push(n):t.set(n.parentId,[n])}return br(t,null)}function br(e,t){let n=e.get(t)??[],r=/* @__PURE__ */ new Map;for(let{group:e}of n)e&&r.set(e,(r.get(e)??0)+1);let i=[],a=/* @__PURE__ */ new Map;for(let{parentId:t,group:o,owner:s,entity:c,traits:l,object:u,placements:d,...f}of n){let t={...f,...l?.includes(p)&&{stats:!0},children:br(e,f.id)};if(!o){i.push(t);continue}if(r.get(o)===1){i.push({...t,name:o.name});continue}let n=a.get(o);n||(n={...o,kind:`group`,children:[]},a.set(o,n),i.push(n)),n.children.push(t)}return i}function xr({name:e,entityId:t,index:n,count:r}){if(r!==void 0)return`${e} ×${r}`;let i=t??n;return i===void 0?e:`${e} #${i}`}function Sr(e,t){return`${e}:${t}`}function Cr(e){return`scene:${e}`}function wr(e){return`${e}:scatter`}function Tr(e,t){return`${wr(e)}:${t}`}function Er(e){return e.split(`:`)[2]}var Dr=/^(.+):(\d+)$/;function Or(e,t){let n=kr(e,t);if(n)return n;let[,r,i]=Dr.exec(t)??[],a=r===void 0?void 0:kr(e,r),o=a?.at(-1),s=Number(i);if(!a||o?.count===void 0||s>=o.count)return;let{name:c,kind:l,readOnlyReason:u}=o;return[...a,{id:t,name:c,kind:l,index:s,readOnlyReason:u,children:[]}]}function kr(e,t){for(let n of e){if(n.id===t)return[n];let e=kr(n.children,t);if(e)return[n,...e]}}function O(e,t){return Or(e,t)?.at(-1)}function k(e,t){for(let n of e){if(n.entityId===t)return n;let e=k(n.children,t);if(e)return e}}function Ar(e){return e.flatMap(e=>e.entityId===void 0?Ar(e.children):[e])}function jr(e,t){return e.flatMap(e=>[...e.name===t&&e.entityId!==void 0?[e]:[],...jr(e.children,t)])}var Mr=C()(()=>({seconds:0,steps:0,running:!1})),Nr=/* @__PURE__ */ function(e){return e.Info=`info`,e.Warning=`warning`,e.Error=`error`,e}({}),Pr=0,A=[];function Fr(e){let t;try{t=e()}catch{return}Pr+=1,A.length===0&&queueMicrotask(Lr),A.push({id:String(Pr),seconds:Mr.getState().seconds,...t})}function Ir(){A=[]}function Lr(){if(A.length===0)return;let{log:e}=X.getState();X.setState({log:[...e,...A].slice(-200)}),A=[]}var Rr,zr,j=/* @__PURE__ */ new Map,M=/* @__PURE__ */ new Set,N=/* @__PURE__ */ new Map,Br=[],P,F=/* @__PURE__ */ new Map,Vr=/* @__PURE__ */ new Map,Hr=/* @__PURE__ */ new Set;function I(){return Rr??Ke}function Ur(e){Vr=/* @__PURE__ */ new Map,Hr=/* @__PURE__ */ new Set;for(let{name:t,handle:n}of e.bindings)n&&`edge`in n&&n.edge&&Hr.add(t);for(let t of e.bindings)for(let e of t.keys){let n=Vr.get(e)??[];n.push(t),Vr.set(e,n)}}function Wr(e,t){return ii(),Rr=e?c(e):Ke,P=e,zr=t,Ur(Rr),()=>{ii(),N.clear(),M.clear(),Br.length=0,Rr=void 0,P=void 0,ei=$r,zr=void 0,Ur(I())}}function Gr(){return I()}function Kr(e){return I().byName.get(e.name)?.keys??e.keys}function qr(e){let t=I().byKey.get(e);return t!==void 0&&t.kind!==f.Engine}function Jr(e){return Vr.get(e)??Yr}var Yr=[];function Xr(e,t,n){if(ti(e,t,Qr()))return;let r=j.get(e.name),i=!r||r.size===0;if(r||j.set(e.name,r=/* @__PURE__ */ new Set),r.add(t),n||!i){for(let t of F.get(e.name)??[])t.repeat&&t.onPress?.({repeat:!0});return}e.kind===f.Button&&(M.add(e.name),N.get(e.name)!==!0&&L(e.name,!0)),e.kind===f.Press&&i&&e.handle&&zr?.(e.handle);for(let t of F.get(e.name)??[])t.onPress?.({repeat:!1})}function Zr(e,t){let n=j.get(e.name);if(!(!n?.delete(t)||n.size>0)){e.kind===f.Button&&N.get(e.name)!==!0&&L(e.name,!1);for(let t of F.get(e.name)??[])t.onRelease?.()}}function Qr(){return P?yt(P):$r}var $r=[],ei=$r;function ti(e,t,n){if(n.length===0||!t.startsWith(`key:`)||!e.handle||!(`kind`in e.handle))return!1;let r=t.slice(fi.length),i=n.find(t=>t.inputs.includes(e.name)),a=i?.priority??-1/0,{byName:o}=I();for(let t of n){if(t.priority<=a)break;if(t.exclusive)return!0;if(i){for(let n of t.inputs)if(n!==e.name&&o.get(n)?.keys.includes(r))return!0}}return!1}function ni(){let e=Qr();if(e===ei)return;ei=e,ri(e);let{byName:t}=I();for(let[n,r]of j){let i=t.get(n);if(i)for(let t of[...r])ti(i,t,e)&&Zr(i,t)}}function ri(e){let{byName:t}=I(),n=e=>new Set(e.inputs.flatMap(e=>t.get(e)?.keys??[]));for(let t=0;t<e.length;t++)for(let r=t+1;r<e.length;r++){let i=e[t],a=e[r];if(i.priority!==a.priority)continue;let o=n(i),s=[...n(a)].find(e=>o.has(e));if(s===void 0)continue;let c=`The input contexts ${i.name} and ${a.name} are live at one priority, ${i.priority}, and both take ${s}: give one a higher priority, so the key fills its input alone.`;if(P?.has(mt))throw x(Error(c),`SP0568`,void 0);console.error(c)}}function ii(){for(let[e,t]of j)if(t.size!==0){t.clear(),I().byName.get(e)?.kind===f.Button&&N.get(e)!==!0&&L(e,!1);for(let t of F.get(e)??[])t.onRelease?.()}}function ai(e,t){return j.get(e)?.has(t)??!1}function oi(e){return(j.get(e)?.size??0)>0}function si(e,t){let n=F.get(e.name);return n||F.set(e.name,n=/* @__PURE__ */ new Set),n.add(t),()=>{n.delete(t),oi(e.name)&&t.onRelease?.()}}function ci(e){return oi(e.name)}function li(e,t){if(Ot(e.name,t),e.kind===b.Button){if(e.edge){t===!0&&(M.add(e.name),oi(e.name)||(L(e.name,!0),L(e.name,!1)));return}!oi(e.name)&&N.get(e.name)===!0!=(t===!0)&&L(e.name,t===!0)}N.set(e.name,typeof t==`object`?{x:t.x,y:t.y}:t)}function ui(e){let t=j.get(e.name);if(!t||t.size===0)return 0;let n=!1,r=!1;for(let i of t){let t=i.slice(fi.length);e.negativeKeys?.includes(t)?n=!0:r=!0}return Number(r)-Number(n)}function di(e,t){let n=j.get(e.name),r=e.directions?.[t];if(!n||!r)return 0;for(let e of n)if(r.includes(e.slice(4)))return 1;return 0}var fi=`key:`;function pi(e,t,n){ni(),t.buttons=0;let r=t.axes??=[];r.length=e.axes,r.fill(0);let i=t.vectors??=[];i.length=e.vectors*2,i.fill(0);let a=t.angles??=[];a.length=e.angles;for(let t of e.entries){if(t.kind!==b.Angle)continue;let n=N.get(t.name);a[e.places.get(t.name)??0]=typeof n==`number`?ft(n):0}if(n||e.entries.length===0)return;let{byName:o}=I();for(let n of e.entries){if(n.kind===b.Angle)continue;let a=N.get(n.name);if(n.kind===b.Vector){let t=o.get(n.name),r=typeof a==`object`?a:void 0,s=r?.x??0,c=r?.y??0;if(t){let e=di(t,`right`)-di(t,`left`),n=di(t,`up`)-di(t,`down`),r=Math.hypot(e,n);r>0&&(s+=e/r,c+=n/r)}Dt(i,(e.places.get(n.name)??0)*2,s,c);continue}if(n.kind===b.Button){(n.edge?M.has(n.name):oi(n.name)||M.has(n.name)||a===!0)&&(t.buttons=((t.buttons??0)|1<<(e.places.get(n.name)??0))>>>0);continue}let s=o.get(n.name),c=s?.handle;if(!s||!c)continue;let l=e.axisSides[e.places.get(n.name)??0],u=ui(s),d=u>0?l.positive:u<0?-l.negative:0,f=typeof a==`number`&&c.kind===b.Axis?vt(c,a):0,p=e.places.get(n.name)??0;r[p]=Math.max(-l.negative,Math.min(l.positive,d+f))}}function mi(e=!1){if(!e){M.clear();return}for(let e of M)Hr.has(e)||M.delete(e)}function L(e,t){P&&Br.push({name:e,isDown:t,ticks:pt(P)})}function hi(e,t,n){let r=t.changes??=[];r.length=0;let i=0;for(;i<Br.length&&r.length<8;){let{name:t,isDown:a,ticks:o}=Br[i++],s=e.places.get(t);s!==void 0&&r.push(gt(s,a,Math.round(ht(o,n)*1e3)))}Br.splice(0,i)}function R(e,t,n={}){return{kind:e,name:t,links:[],usedBy:[],...n}}function z(e){return e?{engine:e}:{}}function B(e){let t=e&&JSON.parse(JSON.stringify(e,(e,t)=>typeof t==`function`?`function`:t));return t&&Object.keys(t).length>0?{properties:t}:{}}function gi(e){let{schema:t}=e;return typeof t==`object`&&Object.keys(t).length>0?t:void 0}function _i(e,t){return t.map(t=>_(e,t))}function vi(e,t){return _i(e,e.query(t))}function yi(e,t,n){let r=new Set(e);return nt(!0).filter(([,e])=>r.has(e)).map(([e])=>({kind:t,name:e,relation:n}))}function bi(e,t){return _i(e,e.entities.filter(e=>e.get(le)?.item===t||[...e.get(ce)??[],...Object.values(e.get(it)??{})].some(e=>e?.item===t)))}function xi({use:e,equip:t}){let n=new Set(nt(!0).flatMap(([,e])=>Object.values(ge(e)))),r=/* @__PURE__ */ new Map;for(let t of e?.effects??[]){let[e,i]=t.type===ye.Modify?[`stat`,n.has(t.stat)?t.stat:void 0]:[`trait`,be(Ye[t.type])];i!==void 0&&r.set(`${e}:${i}`,{kind:e,name:i,relation:`changes`})}let i=t?[`inventory`,`equipment`]:[`inventory`];return[...r.values(),...i.map(e=>({kind:`behaviour`,name:e,relation:`held by`}))]}function Si({scatter:e,regions:t}){let n=[e,...Object.values(t).map(e=>e.scatter)];return new Set(Object.values(E).filter(e=>n.some(t=>t[e]>0)).map(e=>e.replace(/[A-Z]/g,e=>`-${e.toLowerCase()}`)))}function Ci(e){let t=Si(e);return Qe().filter(e=>t.has(ot(He(e)))).map(e=>({kind:`model`,name:e,relation:`scatters`}))}function wi(e){return e.query(Ue).flatMap(e=>{let t=Kt(e),n=Yt().find(e=>Gt(e)===t);return n===void 0?[]:[{kind:`map`,name:n,relation:`lays out`}]})}function Ti(e){let t=/* @__PURE__ */ new Map,n=/* @__PURE__ */ new Map;for(let[e,r]of nt(!0))for(let[i,a]of Object.entries(ge(r)))t.set(a,(t.get(a)??/* @__PURE__ */ new Set).add(e)),n.has(a)||n.set(a,gi(r)?.[i]);let r=e.query(p),i=/* @__PURE__ */ new Set([$e,Ge]);return[...t].map(([t,a])=>{let[o,...s]=[...a].map(e=>({kind:`trait`,name:e}));return R(`stat`,t,{...z(i.has(t)),parent:o,...B({base:n.get(t)}),links:s,usedBy:_i(e,r.filter(e=>te(e,t)!==void 0))})})}function Ei(e){let t=e.get(Ve),n=new Map([{...dt,omitted:[]},...e.get(ke)??[]].map(({name:e,description:t,omitted:n})=>[e,{description:t,omitted:n}])),r=/* @__PURE__ */ new Map;(e.get(De)??[]).forEach((e,i)=>{let a=e.name||`systems[${i}]`,o=Re(e),s=o&&{kind:`system`,name:o.plugin};s&&!r.has(s.name)&&r.set(s.name,R(`system`,s.name,{description:n.get(s.name)?.description,...z(o.isEngine),...n.get(s.name)?.omitted?.length&&{omitted:[...n.get(s.name)?.omitted??[]]}})),r.has(a)||r.set(a,R(`system`,a,{description:o?.description,...z(o?.isEngine===!0),parent:s,...o&&{phase:o.phase,runsOn:o.runsOn},...o?.replaces&&{replaces:o.replaces},links:yi(t?.get(e),`trait`,`reads`)}))});for(let t of e.get(ke)??[])r.has(t.name)||r.set(t.name,R(`system`,t.name,{description:t.description,...z(t.isEngine),...t.omitted.length>0&&{omitted:[...t.omitted]}}));return[...r.values()]}function Di(e){return[...Le.values()].map(t=>{let n=e.has(t.trait)?t.read(e):void 0;return R(`machine`,t.name,{...t.description&&{description:t.description},...z(oe.has(t.trait)),...B({states:t.stateNames,world:n&&{state:lt(n.value).join(`, `)}}),links:[{kind:`trait`,name:t.name,relation:`stored in`}],usedBy:vi(e,t.trait)})})}function Oi(e){return e.query(Se).map(e=>{let{name:t,title:n,level:r,faction:i}=e.get(Se)??Se.schema,a=e.get(we)?.compiled,o=e.get(rt)?.compiled;return R(`npc`,t,{...n&&{description:n},...B({level:r,faction:i,routines:a?tt(a.built):[],lines:o?[...o.tree.nodes].map(([e,{line:t,choices:n}])=>({node:e,line:t,choices:n.map(({text:e})=>e)})):[]}),links:[a,o].flatMap(e=>e?[{kind:`machine`,name:e.machine.name,relation:`runs`}]:[])})})}function ki(){let e=/* @__PURE__ */ new Map;for(let{name:t,keys:n}of Gr().bindings)for(let r of n)e.set(r,[...e.get(r)??[],{kind:`input`,name:t}]);return[...e].map(([e,[t,...n]])=>R(`key`,e,{engine:!0,parent:t,links:n}))}var Ai=[{name:`behaviour`,description:`What an entity does: a trait and the props it takes.`,page:`/engine/entities/entity/#behaviours`,list:e=>[...fe].map(([t,n])=>{let{trait:r,description:i,wiki:a,source:o,ranges:s,handles:c}=n;return R(`behaviour`,t,{description:i,page:a,source:o,...z(me.has(n)),...B({props:gi(r),ranges:s}),links:(c??[]).map(({name:e})=>({kind:`event`,name:e,relation:`handles`})),usedBy:vi(e,r)})})},{name:`trait`,description:`The data an entity carries, by the name the dump writes it under.`,page:`/engine/testing/agent-state/#for-an-agent`,list:e=>nt(!0).map(([t,n])=>R(`trait`,t,{...z(oe.has(n)),...fe.get(t)?.trait===n&&{parent:{kind:`behaviour`,name:t}},...B(gi(n)),usedBy:vi(e,n)}))},{name:`stat`,description:`A number in an entity's stats that sets a trait's field.`,page:`/engine/behaviours/stats/`,list:Ti},{name:`system`,description:`A block of the fixed step, and each plugin that holds some.`,page:`/engine/structure/systems/`,list:Ei},{name:`machine`,description:`A state that changes over time: its states, and the one the world's is in.`,page:`/engine/structure/states/`,list:Di},{name:`npc`,description:`A character a routine drives: its name, level, faction and routines in words.`,page:`/engine/entities/npc/`,list:Oi},{name:`event`,description:`What happened, such as damage, emitted once and read once by each system and view, and the behaviours that handle it.`,page:`/engine/entities/entity/#events`,list:()=>[...pe()].sort((e,t)=>e.name<t.name?-1:1).map(e=>R(`event`,e.name,{...z(ee.has(e)),...B(je(e)),links:[...fe].filter(([,{handles:t}])=>t?.some(t=>t.name===e.name)).map(([e])=>({kind:`behaviour`,name:e,relation:`handled by`}))}))},{name:`input`,description:`An action the player takes on the keyboard, and its keys.`,page:`/engine/entities/player/`,list:()=>{let e=ki();return Gr().bindings.map(({name:t,description:n,kind:r})=>R(`input`,t,{description:n,engine:r===f.Engine||Pe(t.split(`.`)[0]??``),links:e.filter(({links:e})=>e.some(e=>e.name===t)).map(e=>({kind:`key`,name:e.name}))}))}},{name:`key`,description:`A key the engine binds, by its KeyboardEvent.code, under the first action that binds it.`,list:ki},{name:`scene`,description:`A scene the game can go to.`,page:`/engine/structure/scene/`,list:(e,t)=>{let n=t?.active;return Object.keys(t?.scenes??{}).map(t=>R(`scene`,t,{links:t===n?wi(e):[]}))}},{name:`item`,description:`What a bag holds and an entity wears.`,page:`/engine/behaviours/inventory/#items`,list:e=>l().map(t=>{let n=ae(t);return R(`item`,t,{...B(n),links:xi(n),usedBy:bi(e,t)})})},{name:`model`,description:`A 3D file an entity is drawn as.`,page:`/engine/entities/entity/#models`,list:e=>Qe().map(t=>R(`model`,t,{...B({url:He(t),size:Je(t),bounds:Oe(t)}),usedBy:_i(e,e.query(h).filter(e=>e.get(h)?.name===t))}))},{name:`avatar`,description:`A VRM body the character is drawn in.`,page:`/engine/entities/player/`,list:()=>Nn().map(e=>R(`avatar`,e,B(Pn(e))))},{name:`map`,description:`The ground a World lays out, and what stands on it.`,page:`/engine/structure/world/#maps`,list:()=>Yt().map(e=>{let t=Gt(e);return R(`map`,e,{...z(Jt.has(t)),...B(t),links:Ci(t)})})}],ji=/* @__PURE__ */ new Map;function Mi(e){let t={kind:e};return ji.set(e.name,t),()=>{ji.get(e.name)===t&&ji.delete(e.name)}}function Ni(e,t,n){try{return e.list(t,n).map(t=>({...t,kind:e.name}))}catch(t){return console.warn(`The wiki skipped the kind "${e.name}": its list() threw. Fix the list() so it returns the kind's entries:`,t),[]}}function Pi(e,t){let n=new Map(Ai.map(e=>[e.name,e]));for(let[e,{kind:t}]of ji)n.set(e,t);let r=[...n.values()],i=/* @__PURE__ */ new Map;for(let n of r)for(let r of Ni(n,e,t)){let e=`${r.kind}:${r.name}`;i.has(e)?console.warn(`The wiki kept the first entry named "${e}": two entries of the kind share that name. Rename one.`):i.set(e,r)}return{kinds:r.map(({name:e,description:t,page:n})=>({name:e,description:t,page:n})),entries:[...i.values()]}}var Fi=60,Ii=8,Li=500,Ri=/* @__PURE__ */ function(e){return e.Step=`step`,e.PoseAndAnimation=`pose and animation`,e.TransformsAndCamera=`transforms and camera`,e.Render=`render`,e.Other=`other`,e}({}),zi=Object.values(Ri),V;function Bi(){return{samples:new Float64Array(Fi),count:0}}function Vi(e){return Object.fromEntries(zi.map(t=>[t,e()]))}function Hi(e,t){e.samples[e.count%Fi]=t,e.count+=1}function Ui(e,t){return ut(e,t.samples.subarray(0,Math.min(t.count,Fi)))}function Wi(e){if(n()||Rt(e,Lt.FrameTimer))return;let t=e.getContext(),r=t.getExtension(`EXT_disjoint_timer_query_webgl2`);if(r&&`createQuery`in t)return{context:t,extension:r,active:null,pending:[],free:[],lost:!1}}function Gi(e){if(e.active||e.lost||e.pending.length>=Ii)return;let t=e.free.pop()??e.context.createQuery();e.context.beginQuery(e.extension.TIME_ELAPSED_EXT,t),e.active=t}function Ki(e){e.active&&=(e.context.endQuery(e.extension.TIME_ELAPSED_EXT),e.pending.push(e.active),null)}function qi(e,t){let{context:n,extension:r,pending:i}=e;if(n.isContextLost()){e.lost=!0,i.length=0,e.free.length=0;return}if(e.lost){if(!n.getExtension(`EXT_disjoint_timer_query_webgl2`))return;e.lost=!1}if(n.getParameter(r.GPU_DISJOINT_EXT)){for(let e of i)n.deleteQuery(e);i.length=0;return}for(;i.length>0;){let r=i[0];if(!n.getQueryParameter(r,n.QUERY_RESULT_AVAILABLE))return;i.shift(),Hi(t,n.getQueryParameter(r,n.QUERY_RESULT)/1e6),e.free.push(r)}}function Ji(e){return e.drawCalls??e.calls}function Yi(e){let t=e.render,n=performance.now(),r=Wi(e),i={gpu:r,parts:Vi(()=>0),partWindows:Vi(Bi),cpuWindow:Bi(),gpuWindow:Bi(),frameWindow:Bi(),frameStarted:NaN,lapStarted:n,lastFrameStarted:NaN,lastCpuMilliseconds:0,publishedAt:n,drawCalls:0,triangles:0,lastDrawCalls:0,lastTriangles:0};return V=i,e.render=(n,a)=>{if(Number.isNaN(i.frameStarted)){t.call(e,n,a);return}r&&Gi(r);let{info:o}=e,s=o?.autoReset===!0&&o.render.drawCalls===void 0,c=o&&!s?Ji(o.render):0,l=o&&!s?o.render.triangles:0,u=performance.now();t.call(e,n,a),i.parts.render+=performance.now()-u,o&&(i.drawCalls+=Ji(o.render)-c,i.triangles+=o.render.triangles-l)},()=>{if(e.render=t,r){Ki(r);for(let e of[...r.pending,...r.free])r.context.deleteQuery(e)}V===i&&(V=void 0),X.setState({frameSplit:null})}}function Xi(){if(!V)return;let{gpu:e}=V;Number.isNaN(V.frameStarted)||(e?.active&&(e.context.endQuery(e.extension.TIME_ELAPSED_EXT),e.context.deleteQuery(e.active),e.active=null),V.lastFrameStarted=NaN),e&&qi(e,V.gpuWindow);let t=performance.now();if(!Number.isNaN(V.lastFrameStarted)){let n=t-V.lastFrameStarted;Hi(V.frameWindow,n),e||Hi(V.gpuWindow,Math.max(0,n-V.lastCpuMilliseconds))}for(let e of zi)V.parts[e]=0;V.drawCalls=0,V.triangles=0,V.frameStarted=t,V.lapStarted=t}function Zi(e){if(!V||Number.isNaN(V.frameStarted))return;let t=performance.now();V.parts[e]+=t-V.lapStarted,V.lapStarted=t}function Qi(){if(!V||Number.isNaN(V.frameStarted))return;let e=performance.now(),{parts:t}=V;V.gpu&&Ki(V.gpu);let n=e-V.frameStarted;t.other=n-t.step-t[`pose and animation`]-t[`transforms and camera`]-t.render;for(let e of zi)Hi(V.partWindows[e],t[e]);Hi(V.cpuWindow,n),V.lastFrameStarted=V.frameStarted,V.lastCpuMilliseconds=n,V.lastDrawCalls=V.drawCalls,V.lastTriangles=V.triangles,V.frameStarted=NaN,!(e-V.publishedAt<Li)&&(V.publishedAt=e,X.setState({frameSplit:$i()}))}function $i(){let e=V;return e?{parts:zi.map(t=>Ui(t,e.partWindows[t])),cpu:Ui(`cpu`,e.cpuWindow),gpu:Ui(e.gpu?`gpu`:`inferred gpu`,e.gpuWindow),frame:Ui(`frame`,e.frameWindow)}:null}function ea(){let e=V;if(!e)return null;let{gpu:t,gpuWindow:n}=e,r=e=>Ui(``,e).meanMilliseconds;return{cpuMilliseconds:r(e.cpuWindow),gpuMilliseconds:t&&!t.lost&&n.count>0?r(n):null,drawCalls:e.lastDrawCalls,triangles:e.lastTriangles}}var ta=Symbol(`devtools panel entry`);function na(e){return{[ta]:`button`,onPress:e}}function ra(e){return{[ta]:`custom`,element:e}}var ia=/* @__PURE__ */ function(e){return e.Readout=`readout`,e.Number=`number`,e.Toggle=`toggle`,e.Text=`text`,e.Button=`button`,e.Custom=`custom`,e}({});function aa(e){return`onChange`in e&&typeof e.onChange==`function`}function oa(e){if(typeof e!=`object`||!e||Array.isArray(e))return{kind:`readout`,value:e};if(ta in e)return e[ta]===`button`?{kind:`button`,onPress:e.onPress}:{kind:`custom`,element:e.element};if(!aa(e))return{kind:`readout`,value:e};switch(typeof e.value){case`number`:return{kind:`number`,field:e};case`boolean`:return{kind:`toggle`,field:e};default:return{kind:`text`,field:e}}}function sa(e){let t={};for(let[n,r]of Object.entries(e)){let e=oa(r);e.kind===`readout`?t[n]=e.value:`field`in e&&(t[n]=e.field.value)}return t}function ca(e,t,n,r,i){let{edits:a,sendEdit:o}=It.getState(),s=be(n);a&&e&&t.has(kt)&&s!==void 0&&(typeof i==`number`||typeof i==`boolean`)&&o({type:nn.Edit,entity:_(e,t),trait:s,prop:r,value:i})}function la(e,t,n){if(!n&&e?.has(kt))return(t??[]).some(e=>be(e)!==void 0)?`The room keeps its settings`:void 0}var ua=/* @__PURE__ */ function(e){return e.Model=`model`,e.Avatar=`avatar`,e.Scatter=`scatter`,e.Shape=`shape`,e}({}),da=/* @__PURE__ */ function(e){return e.FocusCamera=`focusCamera`,e.Hide=`hide`,e.Delete=`deleteEntity`,e.AddBehaviour=`addBehaviour`,e}({}),fa=/* @__PURE__ */ function(e){return e.Sent=`sent`,e.Copied=`copied`,e.Failed=`failed`,e}({}),H=null,U,pa=null;function W(){return H?.world.has(_t)??!1}var G;function ma(e){return G=e,()=>{G===e&&(G=void 0)}}function ha(){if(!G)throw x(/* @__PURE__ */ Error(`This page presses no declared input: the devtools overlay installs it as it mounts, with installDeclaredInput from @spawnite/engine/devtools.`),`SP0319`,void 0);return G}function K(){if(!H)throw x(/* @__PURE__ */ Error(`No world is attached to the devtools: render a <World> inside a <Game> on a development page, and call this once it mounts.`),`SP0320`,void 0);return H}var ga=10,q=[];function _a(e){if(!X.getState().editing)return;q.push({...e,dump:ue(K().world)});let t=e.seconds-10;for(;q[0].seconds<t;)q.shift();X.setState({recordedFrames:q.length})}function va(e){if(e?.entityId===void 0)return;let{world:t}=K();return t.entities.find(n=>_(t,n)===e.entityId)}function ya(e){let{left:t,top:n,width:r,height:i}=e.getBoundingClientRect();return{left:Math.round(t),top:Math.round(n),width:Math.round(r),height:Math.round(i)}}function ba(){let{editing:e,hoveredId:t,selectedId:n,selectedIds:r,pinnedIds:i,screenRects:a,tree:o}=X.getState();if(!e)return;let s=Ca.getState(),c={};for(let e of[t,n,...r,...i]){if(e===null||c[e])continue;let t=s[e]?.element,n=t?ya(t):xa(e,o);n&&(c[e]=n)}JSON.stringify(c)!==JSON.stringify(a)&&X.setState({screenRects:c})}function xa(e,t){if(!U)return;let n=Sa(e),r=va(O(t,e));return n?U.projectInstance(n.batch,n.index):r&&U.project(r)}function Sa(e){let t=Or(X.getState().tree,e)??[],n=t.at(-1);if(n?.index===void 0)return;let r=J.find(e=>e.object&&e.id===t.at(-2)?.id);if(r?.object){let e=r.object.children.find(e=>e instanceof sn);return e&&{batch:e,index:n.index,model:r}}let i=va(t.filter(e=>e.entityId!==void 0).at(-1)),a=i?.get(Ie)?.object?.getObjectByName(Er(n.id));return Vt(a)?{batch:a,index:n.index,ground:i}:void 0}var J=[],Ca=C()(()=>({})),wa=C()(()=>({}));function Ta(e){let t=J.find(t=>t.id===e)?.owner;return t&&wa.getState()[t.id]}function Ea(e){return X(e=>e.tree),wa(()=>e===null?void 0:Ta(e))}function Da(e){if(H)return va(O(X.getState().tree,e))?.get(y)?.object??void 0}function Oa(e){if(J.some(t=>t.id===e))return;let{pinnedIds:t,unpin:n}=X.getState();t.includes(e)&&n(e)}function ka(e){return J.push(e),X.setState({tree:D(J)}),()=>{J.splice(J.indexOf(e),1),X.setState({tree:D(J)}),queueMicrotask(()=>Oa(e.id))}}function Aa(e,t){let n=O(X.getState().tree,t)?.entityId;return e.entities.find(t=>_(e,t)===n)}function Y(e){let t=Aa(K().world,e);if(!t)throw x(/* @__PURE__ */ Error(`No entity with id ${e} is in the devtools tree: give a row's id as outline() or spawnite play start lists it.`),`SP0321`,void 0);return t}var ja={focusCamera:`focus needs a mounted camera and an entity that draws a model or a mesh`,hide:`hide an entity that draws a model or a mesh, or change the game's code or map`,deleteEntity:`remove it from the game's code or map instead, since its component does not watch for it to go`,addBehaviour:`define another behaviour with defineBehaviour, or add it in the game's code`};function Ma(e,t){let n=X.getState().readDisabledActions(e)[t];if(n)throw x(/* @__PURE__ */ Error(`Cannot ${t} ${e}: ${n}. To fix it, ${ja[t]}.`),`SP0322`,void 0)}function Na(e){for(let t of X.getState().hiddenIds){let n=Aa(e,t)?.get(y)?.object;n&&(n.visible=!1)}}var Pa=new ln,Fa=new un;function Ia(e,t){return Ba(e,t)?.id??null}var La=new dn;function Ra(e,t,n,r){t.get(v)?.position.set(...n),t.get(Ct)?.set(0,0,0),t.has(Xe)&&t.set(Xe,{corners:[]});let i=t.get(v);i&&s(r,i.rotation),t.has(xt)&&t.set(xt,{target:s(r),turnSecondsLeft:0}),d(e,t),Ne(e,t)}function za(e,t){let n=H?.world,r=n&&(U?.readCamera?.()??jt(n)?.camera);return r?(Pa.setFromCamera(Fa.set(e,t),r),Pa):null}function Ba(e,t){let n=H?.world;if(!n||!za(e,t))return null;let r=Ht(n,Pa,J.flatMap(({object:e})=>e?[e]:[]));if(!r)return null;if(!r.entity){let e=J.find(({object:e})=>e===r.owner);return e&&r.instance?{id:Sr(e.id,r.instance.index),point:r.point}:null}let i=O(X.getState().tree,String(r.entity.id()));if(!i)return null;let{instance:a}=r,o=a&&O(i.children,Tr(i.id,a.batch.name));return{id:a&&o?.count!==void 0?Sr(o.id,a.index):i.id,point:r.point}}function Va(e,t){return t===`all`||t===`map`?!0:e?[e.props,e.regions,e.paths,e.views].some(e=>Object.hasOwn(e,t)):!1}function Ha(e){let t=e?.colliders?.[0]?.shape;if(!t)return;let{size:n,radius:r,height:i}=t;if(Array.isArray(n)&&n.length===3)return n.map(Number);if(typeof r!=`number`)return;let a=r*2;return[a,typeof i==`number`?i:a,a]}function Ua(e){let t=Tt(e.transform);if(!Array.isArray(t)||t.length!==3)return;let[n,r,i]=t.map(Number),a=e.characterCapsule;if(typeof a?.height==`number`&&typeof a.radius==`number`){let{height:e,radius:t}=a;return[[n-t,r,i-t],[n+t,r+e,i+t]]}let o=Ha(e.collider);if(o){let[e,t,a]=o.map(e=>e/2);return[[n-e,r-t,i-a],[n+e,r+t,i+a]]}return[[n,r,i]]}function Wa(e,{entities:t,tree:n,isLive:r}){if(Qt(e))return Zt(t,e);if(Object.hasOwn(t,e)||r(e))return[e];let i=/* @__PURE__ */ new Set,a=t=>{for(let n of t)n.name===e&&n.entityId!==void 0&&r(n.entityId)&&i.add(n.entityId),a(n.children)};return a(n),[...i]}function Ga({dump:e,tree:t}){return{entities:H?e().entities:{},tree:t,isLive:e=>H!==null&&g(H.world,e)!==void 0}}function Ka(e,t,n,r){if(!(`around`in e)||typeof e.around!=`string`)return e;let{around:i}=e;if(Va(t,i))return e;let a=Wa(i,n);if(a.length>1)throw x(/* @__PURE__ */ Error(`${Qt(i)?`${a.length} entities match ${i}`:`${a.length} rows of the tree are named "${i}"`}: frame one by its key, one of ${a.join(`, `)}`),`SP0323`,void 0);let[o]=a;if(o===void 0)return e;let s=r(o);if(s)return{...e,around:[s.min.toArray(),s.max.toArray()]};let c=n.entities[o],l=c&&Ua(c);return l?{...e,around:l}:e}function qa(){return(H&&ie(H.world))?.get(et)?.ground}function Ja(){let e=Xt(qa());return e?Me(e):U?.readBounds()??new w}function Ya(e,t){let n=J.find(t=>t.id===e);n&&!Xa(n,t)&&(Za(n,t.props),Qa(n,t.props),Object.assign(n,t),X.setState({tree:D(J)}))}function Xa(e,t){return Object.entries(t).every(([t,n])=>bn(n,e[t]))}function Za(e,t){if(!e.edits||!t)return;let n={...e.edits};for(let r of e.traits??[]){let i=Object.keys(r.schema);if(i.some(n=>n in t&&t[n]!==e.props?.[n]))for(let e of i)delete n[e]}e.edits=Object.keys(n).length>0?n:void 0}function Qa(e,t){let n=J.find(t=>t.id===e.parentId);if(!n?.statEdits||!t)return;let r=e.traits?.includes(p),i=r?Object.fromEntries(Object.keys(t).map(e=>[e,e])):X.getState().readStatFields(e.id),a={...n.statEdits};for(let[n,o]of Object.entries(i))(r?JSON.stringify(t)!==JSON.stringify(e.props):JSON.stringify(t[n])!==JSON.stringify(e.props?.[n]))&&delete a[o];n.statEdits=Object.keys(a).length>0?a:void 0}function $a(e,t){let n=J.find(t=>t.id===e);if(n?.entity===void 0||!n.traits)throw x(/* @__PURE__ */ Error(`No behaviour row has id ${e}: give the id of a behaviour row, as outline() or spawnite play start lists it.`),`SP0324`,void 0);let r=n.traits.find(e=>t in e.schema);if(!r||!(t in(n.props??{}))){let e=Object.keys(n.props??{});throw x(/* @__PURE__ */ Error(`${n.name} has no prop ${t}: ${e.length>0?`set one of ${e.join(`, `)}`:`it passes no prop to set`}.`),`SP0325`,void 0)}return{entry:n,entity:n.entity,trait:r}}var eo=`The room keeps its stats`,to=typeof window<`u`&&new URLSearchParams(window.location.search).has(`hold`);function no(e){return e.query(Ue).flatMap(e=>Object.entries(e.get(Ue).surface.map.props).flatMap(([t,n])=>`model`in n?[{ground:e,name:t,model:n.model}]:[]))}var X=C()((e,t)=>({tree:[],selectedId:null,selectedIds:[],hoveredId:null,screenRects:{},editing:!1,recordedFrames:0,paused:to,pendingFrames:0,speed:1,panels:[],log:[],hiddenIds:[],pinnedIds:[],worldPanels:!1,chatAttachments:[],sentMessages:[],freeCamera:!1,mapCamera:!1,mapFlight:!1,mapFlightZoom:We.flightZoom,previewPlayer:null,frameTiming:!1,frameSplit:null,select:t=>e({selectedId:t,selectedIds:t===null?[]:[t]}),toggleSelect:n=>{let{selectedIds:r}=t(),i=r.includes(n)?r.filter(e=>e!==n):[...r,n];e({selectedId:i.at(-1)??null,selectedIds:i})},hover:t=>e({hoveredId:t}),pin:n=>{let{pinnedIds:r}=t();r.includes(n)||e({pinnedIds:[...r,n]})},unpin:n=>e({pinnedIds:t().pinnedIds.filter(e=>e!==n)}),setWorldPanels:t=>e({worldPanels:t}),setEditing:t=>{t||(q=[],pa!==null&&H?.world.queryFirst(S)?.set(S,{follow:pa}),pa=null),e({editing:t,recordedFrames:q.length,screenRects:{},...!t&&{freeCamera:!1,mapCamera:!1,mapFlight:!1}})},setFreeCamera:t=>e({freeCamera:t,...t&&{mapCamera:!1,mapFlight:!1}}),setMapCamera:(t,n=We.flightZoom)=>e({mapCamera:t,mapFlight:t,mapFlightZoom:n,...t&&{freeCamera:!1}}),endMapFlight:()=>e({mapFlight:!1}),readMapFlight:(e,n)=>{let r=Ja();if(r instanceof w&&r.isEmpty())return;let i=r instanceof w?r.getCenter(new dn):new dn,a=T.radToDeg(Math.atan2(e.x-i.x,e.z-i.z));return zt(r,{angle:{azimuth:a,elevation:We.flightElevation},around:r instanceof w?`all`:`map`,zoom:t().mapFlightZoom},n)},readPalette:()=>{let e=H?.world,t=/* @__PURE__ */ new Map;if(e)for(let n of[...e.query(h).map(e=>e.get(h).name),...no(e).map(({model:e})=>e)])t.set(n,(t.get(n)??0)+1);let n=new Map(Nn().map(e=>[e,0]));for(let t of e?.query(Ae)??[]){let{name:e}=t.get(Ae);e&&n.set(e,(n.get(e)??0)+1)}let r=e?.query(ze).flatMap(e=>e.get(ze)?.placements??[])??[];return{models:Qe().map(e=>({kind:`model`,name:e,url:He(e),height:Je(e)?.height,count:t.get(e)??0})),avatars:[...n].map(([e,t])=>({kind:`avatar`,name:e,count:t})),scatter:Object.values(E).map(e=>({kind:`scatter`,name:e,url:Wn[e],count:r.filter(t=>t.kind===e).length})),shapes:Object.values(mn).map(e=>({kind:`shape`,name:e,count:0}))}},selectPlaceable:(n,r)=>{let i=H?.world;if(!i||n.count===0)return;let{tree:a,selectedIds:o}=t(),s=e=>k(a,_(i,e))?.id,c=[];if(n.kind===`model`&&(c=[...i.query(h).filter(e=>e.get(h).name===n.name).map(s).filter(e=>e!==void 0),...no(i).filter(({model:e})=>e===n.name).flatMap(({ground:e,name:t})=>jr(k(a,_(i,e))?.children??[],t)).map(({id:e})=>e)]),n.kind===`avatar`&&(c=i.query(Ae).filter(e=>e.get(Ae).name===n.name).map(s).filter(e=>e!==void 0)),n.kind===`scatter`&&(c=i.query(ze).filter(e=>e.get(ze)?.placements.some(({kind:e})=>e===n.name)).map(s).filter(e=>e!==void 0).map(e=>Tr(e,n.name))),c.length===0)return;let l=r?[...o,...c.filter(e=>!o.includes(e))]:c;e({selectedId:l.at(-1)??null,selectedIds:l})},setFrameTiming:t=>e({frameTiming:t}),readFrameSplit:$i,seek:e=>q[e],pause:()=>{W()||e({paused:!0})},resume:()=>e({paused:!1,pendingFrames:0}),stepFrame:()=>{W()||e({paused:!0,pendingFrames:t().pendingFrames+1})},setSpeed:t=>{if(!(t>0)||!Number.isFinite(t))throw x(/* @__PURE__ */ Error(`Cannot run at ${t}: not a positive speed`),`SP0326`,`useDevtools`);W()||e({speed:t})},registerPanel:n=>(e({panels:[...t().panels,n]}),()=>e({panels:t().panels.filter(e=>e!==n)})),registerWikiKind:Mi,setProp:({id:n,name:r,value:i})=>{let{entry:a,entity:o,trait:s}=$a(n,r);if(a.readOnlyReason!==void 0)throw x(/* @__PURE__ */ Error(`Cannot set ${r} on ${a.name}: ${a.readOnlyReason}. Change it in the game's code or map, or, for a room's setting, start the room with ROOM_EDITS=1 so it takes devtools edits.`),`SP0327`,`useDevtools`);let c=t().readStatFields(n)[r];if(c!==void 0)throw x(/* @__PURE__ */ Error(`Cannot set ${r} on ${a.name}: the ${c} stat sets it each step, and setStatBase changes its base`),`SP0328`,`useDevtools`);let l=a.props?.[r],u=a.ranges?.[r],d=typeof i==`number`&&u?T.clamp(i,u.min,u.max):i;if(typeof d==`function`)throw x(/* @__PURE__ */ Error(`Cannot set ${r} to a function: pass a value of the type it holds${l===void 0?``:`, a ${typeof l}`}.`),`SP0329`,`useDevtools`);if(typeof d==`number`&&!Number.isFinite(d))throw x(/* @__PURE__ */ Error(`Cannot set ${r} to ${d}: pass a finite number.`),`SP0330`,`useDevtools`);if(l!==void 0&&typeof d!=typeof l)throw x(/* @__PURE__ */ Error(`Cannot set ${r} to a ${typeof d}: it holds a ${typeof l}`),`SP0331`,`useDevtools`);o.set(s,{[r]:d}),a.edits={...a.edits,[r]:d},e({tree:D(J)}),ca(H?.world,o,s,r,d)},resetProps:t=>{let n=J.find(e=>e.id===t);if(n?.edits){for(let e of Object.keys(n.edits)){let{entity:r,trait:i}=$a(t,e),a=n.props?.[e];r.set(i,{[e]:a}),ca(H?.world,r,i,e,a)}n.edits=void 0,e({tree:D(J)})}},setStatBase:({id:t,name:n,base:r})=>{let i=Y(t);if(i.has(kt))throw x(/* @__PURE__ */ Error(`Cannot set ${n} on ${t}: ${eo}. Change the stat in the game's code, which the room runs.`),`SP0332`,`useDevtools`);if(!Object.hasOwn(i.get(p)??{},n)){let e=Object.keys(i.get(p)??{});throw x(/* @__PURE__ */ Error(`${t} has no stat ${n}: ${e.length>0?`set one of ${e.join(`, `)}`:`it has no stats to set`}.`),`SP0333`,`useDevtools`)}if(!Number.isFinite(r))throw x(/* @__PURE__ */ Error(`Cannot set ${n} to ${r}: pass a finite number.`),`SP0330`,`useDevtools`);xe(i,n,r);let a=J.find(e=>e.id===t);a&&(a.statEdits={...a.statEdits,[n]:r},e({tree:D(J)}))},readStatFields:e=>{let t=J.find(t=>t.id===e),n=t?.entity?.isAlive()?t.entity.get(p):void 0,r={};if(!n)return r;for(let e of t?.traits??[])for(let[t,i]of Object.entries(ge(e)))Object.hasOwn(n,i)&&(r[t]=i);return r},clearLog:()=>{Ir(),e({log:[]})},attachToChat:n=>{let{chatAttachments:r}=t();r.includes(n)||e({chatAttachments:[...r,n]})},detachFromChat:n=>e({chatAttachments:t().chatAttachments.filter(e=>e!==n)}),clearChatAttachments:()=>e({chatAttachments:[]}),recordSent:n=>e({sentMessages:[...t().sentMessages,n]}),step:e=>se(K(),e),dump:()=>ue(K().world),readViews:()=>dr(K().world),readAiTree:e=>go(e),setProfiling:e=>{let{world:t}=K();e?t.add(at):t.remove(at)},readProfile:()=>Be(K().world),describe:(e,{screenshot:n=!0}={})=>{let{tree:r}=t(),i=O(r,e),a=k(r,e);if(i&&a&&i!==a)throw x(/* @__PURE__ */ Error(`Two rows answer to ${e}: row ${i.id}, ${i.name}, by its id, and row ${a.id}, ${a.name}, by its entity's dump key. Give ${a.id} for ${a.name}${i.entityId===void 0?``:`, or ${i.entityId} for ${i.name}`}.`),`SP0334`,`useDevtools`);let o=i??a;if(!o){let t=jr(r,e);if(t.length>1)throw x(/* @__PURE__ */ Error(`Several entities are named ${e}: ${t.map(e=>e.id).join(`, `)}. Give one's id.`),`SP0335`,`useDevtools`);o=t[0]}if(o?.index!==void 0)return ro(o,n);let s=o?o.entityId:e,{world:c}=K(),l=s===void 0?void 0:g(c,s);if(s===void 0||!o&&!l)throw x(/* @__PURE__ */ Error(`No entity with id ${e} is in the devtools tree: give a row's id as outline() or spawnite play start lists it, or a dump key from spawnite play dump.`),`SP0336`,`useDevtools`);let u=o?.children.filter(e=>e.kind===yr.Behaviour)??[],d=o&&Ta(o.id),f=ue(c);return{node:o,behaviours:u,systems:l===void 0?[]:uo({world:c,entity:l,behaviours:u}),relations:o?fo({world:c,tree:r,node:o,entity:l}):[],screenshot:n&&l!==void 0?U?.capture(l):void 0,screenRect:l===void 0?void 0:U?.project(l),traits:f.entities[s],plugins:f.plugins,ai:l&&go().find(({id:e})=>e===s),...d&&{panel:sa(d.schema)}}},wiki:()=>{let{world:e,scenes:t}=K();return Pi(e,t?.getState())},capture:(e,t)=>U?.captureView(e,t),captureScreen:e=>U?.captureScreen(e),readStats:async(e=60)=>U?.readStats?.(e),frameView:e=>Ut(qt(qa()),e),frameShot:(e,n)=>{let r=Ka(e,Xt(qa()),Ga(t()),e=>{let t=H&&g(H.world,e);return t?U?.readEntityBounds?.(t):void 0});try{return zt(Ja(),r,n)}catch(e){throw!(`around`in r)||typeof r.around!=`string`||!(e instanceof Error)?e:x(Error(Qt(r.around)?`No entity matches ${r.around}: check the selector against the entities spawnite play dump lists.`:`${e.message}; and no entity has it as its key or its row's name in the tree`,{cause:e}),[[`SP0337`,`No entity matches %s: check the selector against the entities spawnite play dump lists.`],[`SP0338`,`%s; and no entity has it as its key or its row's name in the tree`]],`useDevtools`)}},findEntities:e=>Wa(e,Ga(t())),readScope:e=>{let{world:n}=K(),r=t();return Ko({world:n,dump:r.dump,readViews:r.readViews,findKeys:r.findEntities,findEntity:e=>g(n,e),readThree:()=>U?.readThree?.(),see:r.see,readAim:r.readAim,startSample:r.startSample},e)},compileRead:qo,startSample:e=>{let n=typeof e==`string`?qo(e):e;return Jo(()=>n(t().readScope()))},see:(e,n)=>{let r=U?.measureSeen;if(!r)throw x(/* @__PURE__ */ Error(`Nothing draws a headless world, so see() has nothing to measure: call it on a page that draws the game, such as one spawnite play start opens.`),`SP0339`,`useDevtools`);let{world:i}=K(),a=e===void 0?Object.keys(t().dump().entities):t().findEntities(e);if(e!==void 0&&a.length===0)throw x(/* @__PURE__ */ Error(`No entity answers to "${e}": give its dump key, a selector such as [monster.kind=colossus], or its row's name in the tree.`),`SP0340`,`useDevtools`);let o=a.flatMap(e=>{let t=g(i,e)?.get(y)?.object;return t?[{key:e,object:t}]:[]}),s=hr(o,{measure:r,part:n?.part,every:e===void 0});if(e===void 0)return s;let c=new Set(o.map(({key:e})=>e));return[...s,...a.filter(e=>!c.has(e)).map(e=>({key:e,visible:0,inView:0,share:0,screenShare:0}))]},readAim:()=>{let e=U?.readCamera?.();if(!e)throw x(/* @__PURE__ */ Error(`No camera draws a headless world, so readAim() has no aim to read: call it on a page that draws the game, with a camera mounted.`),`SP0341`,`useDevtools`);return tn(K().world,e,Pt.getState().captured)},aimCamera:({yaw:e,pitch:t,turn:n})=>{let r=jt(K().world);if(!r)throw x(/* @__PURE__ */ Error(`No camera is mounted, so aimCamera() has nothing to turn: render the game's camera, such as <Camera>, first.`),`SP0342`,`useDevtools`);let i=(e===void 0?r.azimuthAngle:T.degToRad(e))+T.degToRad(n??0),a=t===void 0?r.polarAngle:T.degToRad(t+90);return r.rotateTo(i,a,!1),r.update(0),{yaw:T.radToDeg(r.azimuthAngle),pitch:T.radToDeg(r.polarAngle)-90}},pressDeclared:(e,t)=>ha().press(K().world,e,t),holdDeclared:(e,t)=>ha().hold(K().world,e,t),releaseDeclared:e=>e.length===0&&!G?{released:[],held:{}}:ha().release(K().world,e),setTraits:(e,n)=>{let r=Wa(e,Ga(t()));if(r.length===0)throw x(/* @__PURE__ */ Error(`No entity answers to "${e}": give its dump key, a selector such as [monster.kind=colossus], or its row's name in the tree.`),`SP0340`,`useDevtools`);return $t(K().world,r,n),r},readScene:()=>H?.scenes?.getState().active??null,goScene:e=>{let{scenes:t}=K();if(!t)throw x(/* @__PURE__ */ Error(`The attached world runs in no Game, so goScene() has no scenes to go to: render the <World> inside a <Game>.`),`SP0343`,`useDevtools`);t.getState().go(e)},isLoading:nr,readPendingLoads:tr,outline:()=>{let e=[],n=(t,r)=>{for(let i of t)e.push(`${` `.repeat(r)}${i.id} ${xr(i)}`),n(i.children,r+1)};return n(t().tree,0),e.join(`
2
+ `)},stepUntil:async({until:e,steps:n})=>{let r=qo(e),i=e=>{try{let n=r(t().readScope({steps:e}));return{held:!!n,last:n}}catch(e){return{held:!1,last:String(e)}}},a={held:!1,last:void 0},o=await po(e=>(a=i(e),a.held),n);return{...a,...o}},walkTo:async({destination:e,steps:t})=>{let{world:n}=K(),r=ie(n),{refusal:i}=re(n,new dn(...e),r),a=r?.get(v)?.position;if(i||!r||!a)throw x(/* @__PURE__ */ Error(`walkTo refused the walk to ${JSON.stringify(e)}: ${i}.`),`SP0344`,`useDevtools`);let o=()=>r.get(Xe)?.corners.length===0,s=await po(o,t);return{arrived:o(),...s,at:a.toArray()}},readDisabledActions:e=>{let n=O(t().tree,e);if(n?.index!==void 0){let e=n.readOnlyReason??`An instance, not an entity`;return{focusCamera:e,hide:e,deleteEntity:e,addBehaviour:e}}let r=Y(e),i=!!r.get(y)?.object,a={};return jt(K().world)?i||(a.focusCamera=`Nothing draws it`):a.focusCamera=`No camera is mounted`,i||(a.hide=`Nothing draws it`),O(t().tree,e)?.kind===yr.World?a.deleteEntity=`The world`:r.has(S)?a.deleteEntity=`The camera's rig`:r.has(Cn)&&(a.deleteEntity=`The post-processing stack`),t().behaviourOptions(e).length===0&&(a.addBehaviour=`Has every registered behaviour`),a},focusCamera:e=>{Ma(e,`focusCamera`);let t=At(K().world,Y(e));pa??=t},readPlayFromHereReason:()=>{if(W())return`The room places the player`;let e=H?.scenes?.getState().active===a;if(!H||!e&&!ie(H.world))return`No player in this scene`},playFromHere:n=>{let r=t().readPlayFromHereReason(),i=H?.world;if(r||!i)throw x(/* @__PURE__ */ Error(`Cannot play from here: ${r}. To fix it, play from here in the game's own scene, where its player stands, or in a map preview; in a room, spawnite play set '[controlled]' transform.position '[x,y,z]' has the room move her.`),`SP0500`,`useDevtools`);let a=jt(i),o=U?.readCamera?.()??a?.camera,s=0;if(o){let{x:e,z:t}=o.getWorldDirection(La);s=Math.atan2(-e,-t),a?.rotateAzimuthTo(s,!1)}let c=ie(i);c?Ra(i,c,n,s):e({previewPlayer:{position:n,facing:s}}),t().setEditing(!1),t().resume()},hide:n=>{Ma(n,`hide`);let r=Y(n).get(y)?.object;r&&(r.visible=!1);let{hiddenIds:i}=t();i.includes(n)||e({hiddenIds:[...i,n]})},show:n=>{let r=Y(n).get(y)?.object;r&&(r.visible=!0),e({hiddenIds:t().hiddenIds.filter(e=>e!==n)})},deleteEntity:n=>{Ma(n,`deleteEntity`);let r=Y(n);o(K().world,r),e({hiddenIds:t().hiddenIds.filter(e=>e!==n)})},addBehaviour:(e,t)=>{let n=Y(e),r=ne.get(t);if(!r)throw x(Error(Fe({kind:`behaviour`,name:t,names:ne.keys(),registrationInstructions:`define it with defineBehaviour({ name, trait })`})),[[`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.`]],`useDevtools`);let{trait:i,wiki:a,source:o,description:s,ranges:c}=r;if(n.has(i))throw x(/* @__PURE__ */ Error(`${e} already has ${t}: edit its props with setProp instead.`),`SP0346`,`useDevtools`);n.add(i);let l=ka({id:`${e}:${t}`,name:t,kind:yr.Behaviour,parentId:e,props:n.get(i),wiki:a,source:o,description:s,ranges:c}),u=K().world.onRemove(i,e=>{e===n&&(u(),l())})},behaviourOptions:e=>{let t=Y(e);return[...ne].filter(([,{trait:e}])=>!t.has(e)).map(([e,{description:t}])=>({name:e,summary:t??``}))}}));function ro(e,t){let{world:n}=K(),r=Sa(e.id);return{node:e,behaviours:[],systems:[],relations:fo({world:n,tree:X.getState().tree,node:e}),screenshot:t&&r?U?.captureInstance(r.batch,r.index):void 0,screenRect:r&&U?.projectInstance(r.batch,r.index),placement:r&&ao(e.id,r)}}var Z=e=>St(e,4),io=e=>Z(T.radToDeg(e));function ao(e,t){let{index:n,model:r,ground:i}=t;if(r){let{name:e,object:t,placements:i}=r,a=i?.[n];if(!a||!t)return;let[o,s,c]=a.position;return{kind:e,position:[Z(o),Z(s),Z(c)],height:Z(lo(t,n)),yaw:io(a.turn??0),tilt:0}}let a=Er(e),o=i?.get(ze)?.placements.filter(e=>e.kind===a)[n],s=Kt(i),c=s&&Wt(s);return o&&{kind:o.kind,position:[Z(o.position.x),Z(o.position.y),Z(o.position.z)],height:Z(o.height),yaw:io(o.rotationY),tilt:io(o.tilt),family:_n[o.kind].family,...c!==void 0&&{map:c},...o.prop!==void 0&&{prop:o.prop}}}var oo=new w,so=new w,co=new cn;function lo(e,t){oo.makeEmpty();for(let n of e.children){if(!(n instanceof sn))continue;let{geometry:e}=n;e.boundingBox||e.computeBoundingBox(),e.boundingBox&&(n.getMatrixAt(t,co),oo.union(so.copy(e.boundingBox).applyMatrix4(co)))}return oo.max.y-oo.min.y}function uo({world:e,entity:t,behaviours:n}){let r=t.has(v)&&t.has(Ct),i={input:t.has(Ce)&&`steers it on the player's intent`,motion:r&&`adds its velocity to its transform`,rules:n.map(({name:e})=>e).join(`, `),physics:t.has(ct(he))?`keeps its body in the physics world`:r&&`sweeps its capsule through the physics world`,render:t.has(y)&&`draws it where the step left it`,camera:t===Nt(e)&&`aims at it`};return Object.entries(i).flatMap(([e,t],n)=>t?[{order:n+1,name:e,note:t}]:[])}function fo({world:e,tree:t,node:n,entity:r}){let i=[],a=(e,t)=>{let n=t.flatMap(e=>e?[{id:e.id,name:e.name}]:[]);n.length>0&&i.push({label:e,entities:n})},o=n=>n===void 0?void 0:k(t,_(e,n)),s=Or(t,n.id)?.slice(0,-1).filter(e=>e.entityId!==void 0).at(-1);if(a(`parent`,[s]),a(`children`,Ar(n.children)),r===void 0)return i;let c=e.queryFirst(S),l=Nt(e);r===c&&a(`follows`,[o(l)]),r===l&&a(`followed by`,[o(c)]);let u=r.has(ve)?r.get(v)?.position:void 0;return u&&a(`chases`,[o(Te(e,u,{accepts:e.get(de)?.accepts,level:!0})?.entity)]),i}async function po(e,t){if(W())throw x(/* @__PURE__ */ Error(`Cannot step a room's world: the room keeps running. Step the game with no room, or read the room's world as it runs.`),`SP0347`,void 0);let{pause:n,stepFrame:r}=X.getState();n();let i=0;for(;!e(i)&&i<t;){r();let e=await ho(i);if(e!==void 0)return X.setState({pendingFrames:0}),{steps:i,modal:e};i+=1}return{steps:i}}var mo=1e3;function ho(e){return new Promise((t,n)=>{let r=()=>{let e=X.getState().pendingFrames===0,n=e?void 0:_r();(e||n!==void 0)&&(clearTimeout(i),s(),t(n))},i=setTimeout(()=>{s(),n(x(/* @__PURE__ */ Error(`The loop did not take the step after step ${e}: it is not running. Bring the game's tab to the front, since a hidden tab draws no frames, and check the console for an error that stopped the loop.`),`SP0348`,void 0))},mo),a=X.subscribe(r),o=gr.subscribe(r),s=()=>{a(),o()};r()})}function go(e){let{world:t}=K(),{tree:n}=X.getState();return Bt({world:t,subject:e===void 0?void 0:Aa(t,e)??g(t,e)??Y(e),readName:e=>k(n,_(t,e))?.name})}function _o({world:e,input:t}){return X.subscribe(({paused:n,pendingFrames:r})=>{n&&r!==0&&(vr(gr.getState())||(Ee(e,{deltaSeconds:qe,input:t}),X.setState({pendingFrames:r-1})))})}function vo(t,r){H=t,U=r,t.world.has(mt)&&t.world.add(Ve);let i=m(t.world),a=n(),o;return a&&(t.world.add(at),window.__GAME_STEP_PROFILE__=()=>Be(t.world),window.__GAME_BOT__=()=>sr(t.world),o=e(t.world)),()=>{i(),o?.(),a&&(delete window.__GAME_STEP_PROFILE__,delete window.__GAME_BOT__),H===t&&(H=null,U=void 0)}}function yo(e){let t=X(t=>e===null?void 0:O(t.tree,e)?.entityId),n=vn(()=>bo(t),[t]),r=yn(n.subscribe,n.read);return vn(()=>r&&{stats:r,readOnlyReason:n.readOnlyReason},[r,n])}function bo(e){let t=H?.world,n=e===void 0?void 0:t?.entities.find(n=>_(t,n)===e),r=()=>n?.get(p),i=r();return{readOnlyReason:n?.has(kt)?eo:void 0,read:()=>i,subscribe:e=>{if(!t||!n)return()=>void 0;i=r();let a=t=>r=>{r===n&&(i=t(),e())},o=[t.onAdd(p,a(r)),t.onChange(p,a(r)),t.onRemove(p,a(()=>void 0))];return()=>{for(let e of o)e()}}}}function xo(e){let t=X(t=>e===null?void 0:O(t.tree,e)?.entityId),n=vn(()=>wo(t),[t]);return yn(n.subscribe,n.read)}var So=[];function Co(e,t,n){let r=e.get(we)?.compiled;if(r?.machine.trait!==t)return{};let[i=``,a=``]=n.split(`.`).slice(-2),o=r.steps.get(`${i}.${a}`);return o?{routine:i,step:st(o)}:{}}function wo(e){let t=H?.world,n=e===void 0?void 0:t?.entities.find(n=>_(t,n)===e),r=e=>n?.isAlive()?[...Le.values()].filter(t=>t.trait!==e&&n.has(t.trait)).map(e=>{let{value:t,secondsLeft:r}=e.read(n),i=lt(t).join(`, `);return{name:e.name,state:i,...r!==void 0&&{secondsLeft:r},states:e.stateNames,...Co(n,e.trait,i)}}):So,i=r();return{read:()=>i,subscribe:e=>{if(!t||!n)return()=>void 0;i=r();let a=t=>a=>{a===n&&(i=r(t),e())},o=[...Le.values()].flatMap(({trait:e})=>[t.onAdd(e,a()),t.onChange(e,a()),t.onRemove(e,a(e))]);return()=>{for(let e of o)e()}}}}function To(e){let t=X(t=>e===null?void 0:O(t.tree,e)?.entityId),n=vn(()=>Eo(t),[t]);return yn(n.subscribe,n.read)}function Eo(e){let t=H?.world,n=e===void 0?void 0:t?.entities.find(n=>_(t,n)===e),r=()=>t&&n?.isAlive()?_e(t,n):void 0,i=r(),a=JSON.stringify(i);function o(){let e=r(),t=JSON.stringify(e);return t!==a&&(i=e,a=t,!0)}return{read:()=>i,subscribe:e=>{if(!t||!n)return()=>void 0;let r=0,i=()=>{o()&&e(),r=requestAnimationFrame(i)};return i(),()=>cancelAnimationFrame(r)}}}function Do(e){let t=new URLSearchParams(e);try{return gn({latency:t.get(`latency`)??void 0,jitter:t.get(`jitter`)??void 0,stall:t.get(`stall`)??void 0})}catch(e){return console.error(`The page's address sets a link that does not read, so the page plays its room directly: ${e instanceof Error?e.message:String(e)}`),hn}}var Oo=/*#__PURE__*/ C()(e=>({conditions:Do(globalThis.location?.search??``),setConditions:t=>e({conditions:t})}));function ko(){let e=()=>Oo.getState().conditions,t=en({readConditions:e}),n=en({readConditions:e});return{uplink:t,downlink:n,close:()=>{t.close(),n.close()}}}var Q,Ao=0,jo=0,Mo;function No(e){let[,,,,,,,,t,n,r]=e.matrixWorld.elements,i=Math.hypot(t,n,r)||1;return{yaw:T.radToDeg(Math.atan2(t,r)),pitch:T.radToDeg(Math.asin(-n/i))}}function Po(){if(!Q)return;Ao+=1;let{yaw:e}=No(Q.readThree().camera);Mo!==void 0&&(jo+=Math.abs(T.euclideanModulo(e-Mo+180,360)-180)),Mo=e}function Fo(){return Q?.readThree()}function Io(){if(!Q)return;let{world:e,readThree:t}=Q,{camera:n,frameloop:r,clock:i,gl:a}=t(),o=e.queryFirst(S)?.get(S),[,,,,,,,,,,,,s,c,l]=n.matrixWorld.elements,u=a.domElement,{paused:d,speed:f}=X.getState(),{steps:p,seconds:ee,running:te}=Mr.getState(),m=It.getState();return{camera:{position:[s,c,l],...No(n),fov:n.isPerspectiveCamera===!0?n.fov:null,turned:jo,locked:o?.locked??!1,firstPerson:o?.firstPersonView??!1,shake:e.queryFirst(Mt)?.get(Mt)?.trauma??0},loop:{frameloop:r,held:d,pausedBy:_r()??null,speed:f,running:te,steps:p,seconds:ee,frames:Ao,clock:i.elapsedTime},cursor:{captured:Ft(u),pointerLock:u.ownerDocument.pointerLockElement===u},room:{status:m.status,notice:m.notice,characterId:m.characterId,build:rn()??null,refusal:m.refusal,full:m.full,buildMismatch:m.buildMismatch,players:m.players,roundTripMilliseconds:m.roundTripMilliseconds,bytesPerSecond:m.bytesPerSecond,sentBytesPerSecond:m.sentBytesPerSecond,leadTicks:m.leadTicks,sendRate:m.sendRate,interpolationMilliseconds:m.interpolationMilliseconds,stepMilliseconds:m.stepMilliseconds,corrections:m.corrections,correctionsTotal:m.correctionsTotal,correctionMetres:m.correctionMetres,correctionFields:m.correctionFields,correctionWarning:m.correctionWarning,replayedSteps:m.replayedSteps,takenSweeps:m.takenSweeps,tiedSweeps:m.tiedSweeps,correctionMilliseconds:m.correctionMilliseconds,rerunMilliseconds:m.rerunMilliseconds,predictionChecks:m.predictionChecks,...typeof __GAME_ENGINE_DEV__==`boolean`&&__GAME_ENGINE_DEV__&&{link:Oo.getState().conditions}},plugins:e.get(ke)??[],systems:Ze(e)}}function Lo(e){Q=e,Ao=0,jo=0,Mo=void 0;let t=i||n(),r=t?an(Po):void 0;return t&&(window.__GAME_ENGINE_STATE__=Io),()=>{r?.(),t&&delete window.__GAME_ENGINE_STATE__,Q===e&&(Q=void 0)}}var Ro;function zo(e){Ro=e}function Bo(){return i?window.__GAME_REPLAY__?.readStatus():void 0}async function Vo(e){let t=window.__GAME_PLAY_BRIDGE__;if(!t)throw x(/* @__PURE__ */ Error("Input and time come from the director: run this through `spawnite play eval` on a session `spawnite play start` opened."),`SP0353`,void 0);return await t(e)}function Ho(e){return e===void 0?[]:Array.isArray(e)?e:[e]}var $=e=>Vo({kind:`input`,actions:[e]});function Uo(){return new Promise(e=>requestAnimationFrame(e))}function Wo(e){let t={step:e=>Vo({kind:`step`,step:e}),frames:async(e=1)=>{for(let t=0;t<e;t++)await Uo()},sample:async(n,r)=>{let i=e(n),a;try{await t.step({...r,free:!0})}finally{a=i()}return a}};return t}function Go(e){return{press:async(t,{hold:n,at:r}={})=>{let i=Ho(t);if(n===void 0)return $({verb:`press`,controls:i,...r&&{at:r}});await $({verb:`hold`,controls:i,...r&&{at:r}});let a;try{await e.step({seconds:n})}finally{a=await $({verb:`release`,controls:i})}return a},hold:(e,{at:t}={})=>$({verb:`hold`,controls:Ho(e),...t&&{at:t}}),release:e=>$({verb:`release`,controls:Ho(e)}),move:(e,{by:t,to:n})=>$({verb:`move`,control:e,...t&&{by:t},...n&&{to:n}})}}function Ko(e,{steps:t}={}){let n,r=()=>n??=e.dump().entities,i=null,a=()=>i??=Io(),o=Wo(e.startSample);return{get entities(){return r()},count:e=>Object.values(r()).filter(t=>t[e]!==void 0).length,has:(e,t)=>r()[e]?.[t]!==void 0,player:()=>Object.values(r()).find(e=>!!e.controlled),get views(){return e.readViews()},get camera(){return a()?.camera},get loop(){return a()?.loop},get cursor(){return a()?.cursor},get room(){return a()?.room},steps:t,get at(){let e=Bo();return e===void 0?void 0:e.at/1e3},world:e.world,find:t=>e.findKeys(t).flatMap(t=>e.findEntity(t)??[]),get three(){return e.readThree()},engine:()=>{if(!Ro)throw x(/* @__PURE__ */ Error(`engine() found no engine module: import "@spawnite/engine" before reading it.`),`SP0354`,void 0);return Ro},load:e=>e.startsWith(`/`)?import(e):import(`/${e.replace(/^\.\//,``)}`),see:e.see,aim:e.readAim,input:Go(o),time:o}}function qo(e){try{return Function(`scope`,`with (scope) { return (${e}\n); }`)}catch(t){throw x(SyntaxError(`The read does not parse: ${e}: ${String(t)}. Pass one JavaScript expression, such as count("health").`,{cause:t}),`SP0389`,void 0)}}function Jo(e){let t=[],n=0,r,i=an(()=>{n+=1;let i=Io()?.loop,a=Bo(),o={frame:i?.frames??n,steps:i?.steps??0,clock:i?.clock??0,...a&&{at:a.at/1e3}};try{o.value=e()}catch(e){o.error=String(e)}let{frame:s,...c}=o,l=JSON.stringify(c);l!==r&&(r=l,t.push(o))});return()=>(i(),t)}export{pi as $,ca as A,Fn as At,ea as B,X as C,ir as Ct,yo as D,Gn as Dt,xo as E,Kn as Et,Ri as F,An as Ft,ai as G,mi as H,Xi as I,Jr as J,qr as K,Qi as L,na as M,kn as Mt,ra as N,On as Nt,ba as O,Wn as Ot,oa as P,Cn as Pt,Kr as Q,Zi as R,wa as S,$n as St,To as T,qn as Tt,Wr as U,Yi as V,ci as W,Xr as X,si as Y,Gr as Z,_a as _,vr as _t,Oo as a,Fr as at,Ya as b,nr as bt,fa as c,k as ct,_o as d,Or as dt,Zr as et,Da as f,Sr as ft,ma as g,Cr as gt,Ba as h,wr as ht,ko as i,Nr as it,ia as j,Mn as jt,la as k,Pn as kt,za as l,jr as lt,Ia as m,Tr as mt,Lo as n,li as nt,da as o,Mr as ot,Na as p,xr as pt,fi as q,Fo as r,hi as rt,ua as s,yr as st,zo as t,ii as tt,vo as u,O as ut,ga as v,gr as vt,Ca as w,tr as wt,Ea as x,ar as xt,ka as y,ur as yt,Ji as z};
@@ -0,0 +1 @@
1
+ var e=/* @__PURE__ */ function(e){return e.Connecting=`connecting`,e.Reconnecting=`reconnecting`,e.Rejoining=`rejoining`,e.Failed=`failed`,e.Ended=`ended`,e}({}),t={connecting:`Joining the game…`,reconnecting:`Connection lost. Reconnecting…`,rejoining:`Rejoining the game…`,failed:`Couldn't reconnect. Play again.`,ended:`Your game has ended.`};function n(e,n={},r){return e===null?null:{kind:e,text:r||(n[e]??t[e])}}export{t as n,n as r,e as t};
@@ -0,0 +1 @@
1
+ import{s as e}from"./BrfUaL46.js";import{S as t}from"./CVgRrBP4.js";import{s as n}from"./DZIhHLUn.js";import{i as r}from"./hQBGE7c4.js";import{createContext as i,use as a,useCallback as o,useEffect as s,useId as c,useRef as l}from"react";import{jsx as u,jsxs as d}from"react/jsx-runtime";import{DragDropProvider as f,DragOverlay as p,PointerSensor as m,useDragDropMonitor as h,useDraggable as g,useDroppable as _}from"@dnd-kit/react";import{Accessibility as v,Feedback as y,PointerActivationConstraints as b,defaultPreset as x}from"@dnd-kit/dom";var S=8,C=250,w=5,T=[m.configure({activationConstraints:e=>e.pointerType===`touch`?[new b.Delay({value:C,tolerance:w})]:[new b.Distance({value:S})]})],E=x.plugins.filter(e=>e!==v).map(e=>e===y?y.configure({feedback:`clone`,dropAnimation:null}):e),D=i(null);function O(e,t){let n=a(D);s(()=>{if(n&&t!==void 0)return n.set(e,t),()=>{n.delete(e)}},[e,t,n])}function k({children:n}){try{let e=l(/* @__PURE__ */ new Map).current,i=l(null);return/* @__PURE__ */ u(f,{sensors:T,plugins:E,onDragStart:(e,n)=>{r.setState({dragging:!0}),i.current=t(()=>n.actions.stop({canceled:!0}))},onDragEnd:()=>{i.current?.(),i.current=null,r.setState({dragging:!1})},children:/* @__PURE__ */ d(D,{value:e,children:[n,/* @__PURE__ */ u(p,{disabled:t=>t===null||!e.has(String(t.id)),className:`pointer-events-none`,children:t=>e.get(String(t.id))})]})})}catch(t){throw e(`DragDropDom`,t)}}function A({data:t,onDragEnd:r,preview:i,disabled:a=!1,className:s,style:l,children:d}){try{let e=c(),{ref:f,handleRef:p}=g({id:e,data:{value:t},disabled:a});O(e,i),h({onDragEnd(t){t.operation.source?.id===e&&r?.({dropped:!t.canceled&&t.operation.target!=null,canceled:t.canceled})}});let{ref:m}=n(`Draggable`,{}),_=o(e=>{f(e),p(e),m(e)},[f,p,m]);return/* @__PURE__ */ u(`div`,{ref:_,className:s,style:l,children:d})}catch(t){throw e(`DraggableDom`,t)}}function j({accepts:t,onDrop:r,disabled:i=!1,className:a,style:s,children:l}){try{let e=c(),{ref:d,isDropTarget:f}=_({id:e,disabled:i,accept:t&&(e=>t(e.data.value))});h({onDragEnd(n){let{source:i,target:a}=n.operation;if(n.canceled||a?.id!==e||!i)return;let o=i.data.value;(!t||t(o))&&r(o)}});let{ref:p}=n(`DropTarget`,{}),m=o(e=>{d(e),p(e)},[d,p]);return/* @__PURE__ */ u(`div`,{ref:m,className:a,style:s,"data-over":f||void 0,children:l})}catch(t){throw e(`DropTargetDom`,t)}}k.displayName=`DragDropDom`,A.displayName=`DraggableDom`,j.displayName=`DropTargetDom`;export{k as DragDropDom,A as DraggableDom,j as DropTargetDom};
@@ -0,0 +1 @@
1
+ import{i as e,r as t}from"./BrfUaL46.js";import{maxSaveBodyBytes as n,maxSaveBodyCeilingBytes as r,maxSaveUnpackedBytes as i,maxSaveUnpackedCeilingBytes as a,saveLimitWarningShare as o}from"@spawnite/schema";var s=/* @__PURE__ */ function(e){return e.Unpacked=`unpacked`,e.Compressed=`compressed`,e}({}),c=1048576;function l(e){return e>=c?`${(e/c).toFixed(2)} MiB`:`${(e/1024).toFixed(1)} KiB`}var u=class extends Error{constructor(){t(super(e(`The save's body unpacks past ${a/c} MiB as JSON, over the platform's ceiling every save fits, so it was not read.`,`SP0570`))),this.name=`SaveBodyTooLargeError`}};async function d(e,t,n=1/0){let r=new ReadableStream({start(t){t.enqueue(new Uint8Array(e)),t.close()}}).pipeThrough(t).getReader(),i=[],a=0;for(;;){let{done:e,value:t}=await r.read();if(e)break;if(i.push(t),a+=t.byteLength,a>n)throw await r.cancel(),new u}let o=new Uint8Array(a),s=0;for(let e of i)o.set(e,s),s+=e.byteLength;return o}async function f(e){let t=new TextEncoder().encode(e),n=await d(t,new CompressionStream(`gzip`));return{text:e,body:n,unpackedBytes:t.byteLength,compressedBytes:n.byteLength}}var p=65536;function m(e){return e>n-p}async function h(e){let t=await d(e,new DecompressionStream(`gzip`),a);return JSON.parse(new TextDecoder(`utf-8`,{fatal:!0}).decode(t))}var g=[{limit:`unpacked`,maxBytes:i,ceilingBytes:a,read:e=>e.unpackedBytes,as:`as JSON`},{limit:`compressed`,maxBytes:n,ceilingBytes:r,read:e=>e.compressedBytes,as:`gzipped`}],_=`Keep less in the save: drop what the game can rebuild, and store ids rather than whole objects.`;function v(e){for(let{limit:t,ceilingBytes:n,read:r,as:i}of g){let a=r(e);if(a<=n)continue;let o=`it is ${l(a)} ${i}, over the platform's ceiling of ${n/c} MiB ${i}`;return{limit:t,bytes:a,maxBytes:n,ceiling:!0,reason:o,message:`The save was not stored: ${o}. The last save that fit stays, and play goes on. ${_}`}}for(let{limit:t,maxBytes:n,read:r,as:i}of g){let a=r(e);if(a<=n)continue;let o=`it is ${l(a)} ${i}, over the limit of ${n/c} MiB ${i}`;return{limit:t,bytes:a,maxBytes:n,ceiling:!1,reason:o,message:`The save is past its limit: ${o}. It is stored this once, then the game stops, and the player cannot play until a version of the game trims the save with a step. ${_}`}}return null}function y(e){let t=g.find(({maxBytes:t,read:n})=>n(e)>t*o);return t?`The save is ${l(e.unpackedBytes)} as JSON and ${l(e.compressedBytes)} gzipped, past three quarters of its limit of ${t.maxBytes/c} MiB ${t.as}. A save over 16 MiB as JSON or 4 MiB gzipped stops the game.`:null}export{h as a,f as i,m as n,y as o,v as r,s as t};
@@ -0,0 +1 @@
1
+ import{Gt as e,Ht as t,bl as n,dl as r,fl as i,ic as a,il as o,oc as s}from"./-MLBVTaO.js";import{tr as c}from"./V70ADx0g.js";import{i as l,o as u,r as d,s as f}from"./BrfUaL46.js";import{h as p}from"./BobsCMiL.js";import{T as m}from"./CVgRrBP4.js";import{o as h}from"./Bh-CVkQx.js";import{C as g,ft as _,l as v,mt as y,s as b}from"./Cq6VqPHb.js";import{C as x,S,T as C,_ as w,a as T,b as ee,c as E,d as D,f as O,g as k,h as A,m as j,o as te,p as ne,s as M,x as re}from"./BH6Ftfg9.js";import{n as ie,r as ae,t as oe}from"./BJIJuxaE.js";import{t as se}from"./DJSpRhXB.js";import{l as ce}from"./DZIhHLUn.js";import{n as le,t as ue}from"./Chcm92bZ.js";import{a as N,d as de,i as fe,l as pe,n as me,o as P,r as he,s as ge}from"./CEuuijY1.js";import{n as _e}from"./BWlq9jqw.js";import{t as ve}from"./Dwcms3jX.js";import{useFrame as ye,useLoader as be}from"@react-three/fiber";import{AnimationMixer as xe,Box3 as Se,Color as Ce,DirectionalLight as we,HemisphereLight as Te,MathUtils as F,Mesh as Ee,PerspectiveCamera as De,SRGBColorSpace as Oe,Scene as ke,Sphere as Ae,Texture as je,Vector3 as I,WebGLRenderer as Me}from"three";import{ScatterFamily as Ne,findTerrainCell as Pe,mapBaseSchema as Fe,mapPath as L,mapPropsSchema as Ie,materialName as Le,readPaintGrid as R,readTerrainGrid as Re,scatterKinds as ze,terrainBrush as Be,writePaintGrid as Ve,writeTerrainGrid as He,z}from"@spawnite/schema";import{useRef as Ue}from"react";import{createJSONStorage as We,persist as Ge}from"zustand/middleware";import{GLTFLoader as Ke}from"three/addons/loaders/GLTFLoader.js";import{jsx as qe}from"react/jsx-runtime";import{VRM as Je}from"@pixiv/three-vrm";import{VRMAnimation as Ye,createVRMAnimationClip as Xe}from"@pixiv/three-vrm-animation";function Ze(e){let t=M().flatMap(({ground:e,map:t})=>{let n=e.get(c)?.object,r=e.get(o)?.surface,i=E(t);return n instanceof Ee&&r&&i?[{mesh:n,surface:r,map:i}]:[]}),[n]=e.intersectObjects(t.map(({mesh:e})=>e),!1),r=n&&t.find(({mesh:e})=>e===n.object);return r?{x:n.point.x,z:n.point.z,distance:n.distance,...r}:null}var Qe=`spawnite-terrain-editor`,B={radius:{min:.1,max:30},strength:{min:.1,max:1}},$e={radius:8,strength:.5,shape:`circle`},et={more:2,thin:.5},tt={paint:null,overlay:null,blend:null},nt=class extends Error{},rt=class extends Error{},it=class extends Error{constructor(){d(super(l(`This dev server has no map endpoint at ${L}, so the editor cannot read or save the map. Install @spawnite/dev-server, add import { devServer } from "@spawnite/dev-server/vite" to the game's vite.config, put devServer() in its plugins, and restart the dev server.`,`SP0368`)))}};async function at(e,t){let n=await fetch(e,t);if(!n.headers.get(`content-type`)?.includes(`application/json`))throw new it;return n}var V=(e,t)=>e instanceof it?e.message:`${t}: ${e instanceof Error?e.message:String(e)}.`,ot=(e,t)=>Number.isNaN(e[t])?null:e[t];function H(e,t=w(e)){let{size:n,cell:r}=D(e);return{height:{size:n,cell:r,base:[],offsets:Re(t?.height,Math.round(n/r)+1)},paint:R(t??{size:n,cell:r})}}function U(e,{height:t,paint:n},r=w(e)){let i=D(e),a=He(t.offsets,Math.round(i.size/i.cell)+1);C(e,{size:i.size,cell:i.cell,base:r?.base??Fe.parse(i),...a&&{height:a},...Ve(n)})}function W(e,t){let n=ge(e.paint,t);return{...de(e.height,t),cells:n.cells,paintBefore:n.paintBefore,paintAfter:n.paintAfter}}function G(e,t,n){return{points:t,height:t.map(t=>ot(e.height.offsets,t)),cells:n,paint:n.map(t=>P(e.paint,t))}}function st(e,t,r){let i=t=>n({...D(e),...t,terrain:void 0}).baseHeights,a=i(r);return i(t).map((e,t)=>e-a[t])}async function K(e){let t=await at(`${L}?map=${encodeURIComponent(e)}`),n=await t.json();if(!t.ok)throw Error(n.error??`the dev server answered ${t.status}`);return n}var ct=e=>`The ${e} map's terrain changed outside the editor: it is reloaded, and the undo list starts again.`;async function q(e){let t=await at(L,{method:`POST`,headers:{"content-type":`application/json`},body:JSON.stringify({...e,revision:A(e.map)})});if(t.status===409){let{error:e,conflict:n}=await t.json().catch(()=>({}));throw n===`base`?new rt(e):new nt}if(!t.ok){let{error:e}=await t.json().catch(()=>({}));throw Error(e??`the dev server answered ${t.status}`)}let n=await t.json();return S(e.map,n.revision),n}var J=e=>O(e)??D(e).materials,Y=e=>j(e)??D(e).props,lt=/* @__PURE__ */ new WeakMap;function ut(e){if(e.sea!==void 0)return e.sea;let t=lt.get(e);return t===void 0&&(t=n({...e,terrain:void 0}).sea,lt.set(e,t)),t}var X=e=>k(e)??ut(D(e)),dt=100;function ft({kind:e,name:t},n){let r=n.map(e=>Math.round(e*dt)/dt),i=e===b.Model?{model:t}:e===b.Shape||e===b.Scatter?{kind:t}:null;return i&&Ie.parse({card:{...i,position:r}}).card}function pt(e,t,n){let r=J(e);return{...r,[t]:{...r[t],...n}}}var mt=z.object({families:z.array(z.enum(Ne)).check(z.minLength(1)),action:z.enum([`more`,`thin`,`erase`])});function ht(r=()=>localStorage){let i=null,o=null,s=/* @__PURE__ */ new Map,c=/* @__PURE__ */ new Map,l=e=>{let t=c.get(e);return t||(t={points:/* @__PURE__ */ new Map,cells:/* @__PURE__ */ new Map,materials:/* @__PURE__ */ new Map,props:/* @__PURE__ */ new Map},c.set(e,t)),t},u=({points:e,cells:t,materials:n,props:r,sea:i})=>e.size+t.size+n.size+r.size>0||i!==void 0,d=()=>[...c.values()].some(u);function f({map:e,change:t,materials:n=[],props:r=[],sea:i},a){let o=l(e),s=a===`before`?t?.paintBefore:t?.paintAfter;t?.points.forEach((e,n)=>{o.points.has(e)||o.points.set(e,t[a][n])}),t?.cells?.forEach((e,t)=>{o.cells.has(e)||o.cells.set(e,s[t])});for(let e of n)o.materials.has(e.name)||o.materials.set(e.name,e[a]);for(let e of r)o.props.has(e.name)||o.props.set(e.name,e[a]);i&&o.sea===void 0&&(o.sea=i[a])}function p({map:e,change:t,materials:n=[],props:r=[],sea:i},a){if(i&&x(e,i[a]),t){let n=H(e);W(n,{points:t.points,height:t[a],cells:t.cells??[],paint:(a===`before`?t.paintBefore:t.paintAfter)??[]}),U(e,n)}if(n.length>0){let t={...J(e)};for(let{name:e,[a]:r}of n)r===null?delete t[e]:t[e]=r;ee(e,t)}if(r.length>0){let t={...Y(e)};for(let{name:e,[a]:n}of r)n===null?delete t[e]:t[e]=n;re(e,t)}}function h(e,t,n=l(e),r){let i=H(e);if(r)for(let e of n.points.keys())i.height.offsets[e]+=r[e];let a=H(e,t),o=W(a,G(i,[...n.points.keys()],[...n.cells.keys()]));o.points.forEach((e,t)=>n.points.set(e,o.before[t])),o.cells?.forEach((e,t)=>n.cells.set(e,o.paintBefore[t])),U(e,a,t)}let _=Promise.resolve(),v=e=>{let t=_.then(e);return _=t.catch(()=>void 0),t};function y({grid:e,paint:t,stroke:n,level:r},i){return n.tool===`scatter`?{points:[],grid:e}:t?{points:[],grid:e,cells:i,paint:i.map(e=>P(t,e))}:{points:i,grid:e,level:r}}let O=(e,t)=>e?{clear:e}:{material:t,clear:e};function k(e,t,n){let{paint:r}=e,i={...r,palette:[...r.palette],paint:r.paint.slice(),overlay:r.overlay.slice(),blend:r.blend.slice()},{cells:a=[]}=N({paint:i,height:e.grid},{rect:[e.corner,e.at],...O(t,n)},()=>0);for(let t of a)e.touched.add(t);let o=[...e.touched];return{points:[],grid:e.grid,cells:o,paint:o.map(e=>P(i,e))}}let A=m()(Ge((r,m)=>{async function _(e,t){t instanceof nt?await m().followOutsideWrite(e):t instanceof rt?r({baseMoved:e,notice:t.message}):r({notice:V(t,`The map was not written`)})}function x(e){return f(e,`before`),p(e,`after`),r({undoSteps:[...m().undoSteps,e],redoSteps:[],unsaved:!0}),!0}function T(e,t){return Promise.resolve(x({map:e,change:t(H(e))}))}function A(e,t,n){return x({map:e,props:[{name:t,before:Y(e)[t]??null,after:n}]}),Promise.resolve()}function j(e,t,n){let i=m()[e].at(-1);if(!i)return Promise.resolve();f(i,n===`before`?`after`:`before`),p(i,n),r({[e]:m()[e].slice(0,-1),[t]:[...m()[t],i],unsaved:!0,notice:null});for(let{name:e,[n]:t,after:a}of i.materials??[])t===null&&a?.from!==void 0&&m().material===e&&r({material:a.from});return Promise.resolve()}async function re(e,t){let n=l(e);c.delete(e);try{if(t){let t=await K(e);h(e,t.terrain,n),S(e,t.revision)}let r=[...n.points.keys()],i=[...n.cells.keys()];if(r.length+i.length>0){let{terrain:t}=await q({map:e,restore:G(H(e),r,i)});C(e,{...w(e),base:t.base}),n.points.clear(),n.cells.clear()}for(let t of[...n.materials.keys()])await q({map:e,restoreMaterial:{name:t,look:J(e)[t]??null}}),n.materials.delete(t);if(n.props.size>0){let t=Y(e);await q({map:e,props:Object.fromEntries([...n.props.keys()].map(e=>[e,t[e]??null]))}),n.props.clear()}return n.sea!==void 0&&(await q({map:e,sea:X(e)}),n.sea=void 0),!0}catch(t){let r=l(e);for(let[e,t]of n.points)r.points.set(e,t);for(let[e,t]of n.cells)r.cells.set(e,t);for(let[e,t]of n.materials)r.materials.set(e,t);for(let[e,t]of n.props)r.props.set(e,t);return n.sea!==void 0&&(r.sea=n.sea),await _(e,t),!1}}return{map:null,tool:null,card:null,holdCard:e=>{if(e===null){r({card:e});return}m().preloadCard(e),r({card:e,tool:null,adjusting:null,mode:`select`});let{freeCamera:t,mapCamera:n,setMapCamera:i}=g.getState();!t&&!n&&i(!0)},preloadCard:({kind:e,name:t})=>{if(e!==b.Model)return;let n;try{n=a(t)}catch{return}be.preload(Ke,n,se)},placeCard:(e,t)=>{let{card:n}=m(),r=n&&ft(n,t);if(!n||!r)return null;let i=Y(e),a=n.name;for(let e=2;Object.hasOwn(i,a);e++)a=`${n.name}-${e}`;return x({map:e,props:[{name:a,before:null,after:r}]}),a},mode:`select`,setMode:e=>r(e===`terrain`?{mode:e,card:null}:{mode:e,tool:null,adjusting:null,...e===`look`&&{card:null}}),brush:$e,lower:!1,setLower:e=>r({lower:e}),material:`grass`,setMaterial:e=>{r({material:e}),m().tool!==`fill`&&m().holdTool(`paint`)},scatter:{families:[Ne.Tree],action:`erase`},setScatter:e=>{r({scatter:{...m().scatter,...e}}),m().holdTool(`scatter`)},makeEditable:({map:e,kind:n,family:r,position:[i,,a],yaw:o,height:s})=>{let c=Y(e),l=1;for(;Object.hasOwn(c,`${r}${l}`);)l++;let u=`${r}${l}`,d={kind:n,position:[i,a],yaw:o,scale:Math.round(s/t(n,1)*1e3)/1e3};return x({map:e,change:fe(H(e).paint,r,yt(e,n,i,a)),props:[{name:u,before:null,after:d}]}),Promise.resolve(u)},removeScattered:async({map:e,kind:t,family:n,position:[r,,i]})=>{await T(e,({paint:a})=>fe(a,n,yt(e,t,r,i)))},moveProp:(e,t,n)=>{let r=Y(e)[t];return r?A(e,t,{...r,position:n}):Promise.resolve()},removeProp:(e,t)=>A(e,t,null),readSea:X,seaPreview:null,previewSea:(e,t)=>{Number.isFinite(t)&&r({seaPreview:{map:e,level:t}})},setSea:(e,t)=>{if(!Number.isFinite(t))return;r({seaPreview:null});let n=X(e);t!==n&&x({map:e,sea:{before:n,after:t}})},clear:!1,setClear:e=>r({clear:e}),level:null,setLevel:e=>{(e===null||Number.isFinite(e))&&r({level:e})},pickLevel:(e,[t,n])=>r({level:e.getHeightAt({x:t,z:n})}),pickMaterial:(e,t)=>r({material:gt(e,t)}),adjusting:null,undoSteps:[],redoSteps:[],unsaved:!1,changedOnDisk:!1,save:async({anyway:e=!1}={})=>{let t=await v(async()=>{let t=!0;for(let n of[...c.keys()])t=await re(n,e)&&t;return t});return r({unsaved:d(),...t&&{changedOnDisk:!1,notice:null}}),t},revert:()=>v(async()=>{let e=/* @__PURE__ */ new Map;try{for(let t of c.keys())e.set(t,await K(t))}catch(e){return r({notice:V(e,`The map was not read`)}),!1}for(let[t,n]of[...c]){let i=e.get(t),a=H(t,i.terrain),o=J(t),s=Y(t),l={map:t,change:W(H(t),G(a,[...n.points.keys()],[...n.cells.keys()])),materials:[...n.materials].map(([e,t])=>({name:e,before:o[e]??null,after:t})),props:[...n.props].map(([e,t])=>({name:e,before:s[e]??null,after:t})),...n.sea!==void 0&&{sea:{before:X(t),after:n.sea}}};c.delete(t),p(l,`after`),i.terrain&&C(t,i.terrain),S(t,i.revision),r({undoSteps:[...m().undoSteps,l],redoSteps:[]})}return r({unsaved:d(),changedOnDisk:!1,notice:null}),!0}),resetToBase:e=>v(async()=>{let t=H(e),n=l(e),{offsets:i}=t.height,a=[...i.keys()].filter(e=>!Number.isNaN(i[e])||n.points.has(e)),o=[...t.paint.paint.keys()].filter(e=>{let{paint:r,overlay:i,scatter:a,erased:o}=P(t.paint,e);return r!==null||i!==null||a!==void 0||o!==void 0||n.cells.has(e)}),s={points:a,height:a.map(()=>null),cells:o,paint:o.map(()=>tt)},c;try{({terrain:c}=await q({map:e,restore:s}))}catch(t){return await _(e,t),!1}let u=W(t,s);return U(e,t,c),n.points.clear(),n.cells.clear(),r({undoSteps:[...m().undoSteps,{map:e,change:u}],redoSteps:[],unsaved:d(),notice:null}),!0}),followOutsideWrite:async e=>{let t=c.get(e);t&&u(t)?r({changedOnDisk:!0}):await m().reloadTerrain(e,ct(e))},notice:null,baseMoved:null,readPaintMaterials:e=>{let t=ne(D(e),e),n=[.../* @__PURE__ */ new Set([...Object.keys(ae),...Object.keys(t.materials)])];return oe(n,t).map(e=>({name:e.name,family:e.family,swatch:e.swatch,texture:t.set===`flat`?null:e.colour,tint:`#${new Ce(...ie(e)).getHexString()}`}))},readMapRegions:e=>Object.keys(D(e).regions),readMaterialLook:(e,t)=>{let[n]=oe([t],ne(D(e),e));return{tint:`#${new Ce(...n.tint).getHexString()}`,tintAmount:n.tintAmount,tile:n.tile,bumps:n.bumps,wet:n.wet}},previewMaterial:(e,t,n)=>{s.has(e)||s.set(e,J(e)),ee(e,pt(e,t,n))},refineMaterial:async(e,t,n)=>{let r=(s.get(e)??J(e))[t]??null;s.delete(e),x({map:e,materials:[{name:t,before:r,after:pt(e,t,n)[t]}]})},duplicateMaterial:async(e,t)=>{let n=new Set(m().readPaintMaterials(e).map(e=>e.name)),i=2;for(;n.has(`${t}-${i}`);)i++;let a=`${t}-${i}`;x({map:e,materials:[{name:a,before:null,after:{from:t}}]}),r({material:a})},readMapChoices:()=>{let e=new Set(M().map(({map:e})=>E(e)));return te().map(t=>({name:t,mounted:e.has(t)}))},openMap:e=>{let t=new URL(window.location.href);t.searchParams.set(`map`,e),window.history.replaceState(null,``,t),r({map:e,undoSteps:[],redoSteps:[],notice:null})},holdTool:e=>{let{mode:t,card:n}=m();r({tool:e,card:e===null?n:null,adjusting:null,mode:e===null?t===`terrain`?`select`:t:`terrain`});let{freeCamera:i,mapCamera:a,setMapCamera:o}=g.getState();e!==null&&!i&&!a&&o(!0)},setBrush:e=>{let{radius:t,strength:n,shape:i}={...m().brush,...e};r({brush:{radius:F.clamp(t,B.radius.min,B.radius.max),strength:F.clamp(n,B.strength.min,B.strength.max),shape:i}})},setAdjusting:e=>r({adjusting:e}),beginStroke:(t,n,r,{lower:a=!1,smooth:s=!1}={})=>{let{size:c,cell:l,baseHeights:u,offsets:d}=n,{tool:f,brush:p,material:h,clear:g,level:_,scatter:v}=m(),b=(f===`paint`||f===`scatter`)&&!s,x={size:c,cell:l,base:u,offsets:d.slice()};if(f===`fill`&&!s)return o={grid:x,map:t,corner:r,at:r,paint:R(n.terrain??{size:c,cell:l}),touched:/* @__PURE__ */ new Set},k(o,g,h);let S={tool:s?`smooth`:f===`fill`?`sculpt`:f??`sculpt`,points:[r],...p,lower:f===`sculpt`&&!s&&m().lower!==a,...f===`paint`&&!g&&{material:h},...f===`scatter`&&{families:v.families,...v.action!==`erase`&&{multiplier:et[v.action]}},erase:f===`scatter`&&!s&&v.action===`erase`,clear:f===`paint`&&!s&&g,...f===`flatten`&&!s&&_!==null&&{level:_}};if(b&&S.erase){let r=R(n.terrain??{size:c,cell:l}),a=e(n);return i={grid:x,map:t,stroke:S,run:{extend:()=>[],change:()=>he(r,S,a)},paint:r},y(i,[])}if(b){let{names:e,ruled:r}=le(n),a=R(n.terrain??{size:c,cell:l}),o=me(a,S,t=>e[r[t]]);return i={grid:x,map:t,stroke:S,run:o,paint:a},y(i,o.change().cells??[])}let C=pe(x,S);return i={grid:x,map:t,stroke:S,run:C,level:C.level},y(i,C.change().points)},extendStroke:e=>{if(o){o.at=e;let{clear:t,material:n}=m();return k(o,t,n)}if(i)return i.stroke.points.push(e),y(i,i.run.extend(e))},cancelStroke:()=>{i=null,o=null,r({seaPreview:null})},endStroke:()=>{let e=i,t=o;if(i=null,o=null,t){let{clear:e,material:n}=m();return T(t.map,({paint:r})=>N({paint:r,height:t.grid},{rect:[t.corner,t.at],...O(e,n)},()=>0))}return e?T(e.map,()=>e.run.change()):Promise.resolve(!1)},fillRegion:(e,t)=>{let{clear:i,material:a}=m(),o=D(e),s=Object.keys(o.regions).indexOf(t);if(s<0)return r({notice:`The ${e} map has no region ${t}.`}),Promise.resolve(!1);let c=n(o,w(e));return T(e,({height:e,paint:n})=>N({paint:n,height:{...e,base:c.baseHeights}},{region:t,...O(i,a)},([e,t])=>c.getRegionWeightsAt({x:e,z:t})[s]))},resetHere:(e,{size:t,cell:n},[r,i])=>{let{radius:a,shape:o}=m().brush,s=(e,s)=>{let c=[];for(let l=0;l<e;l++)for(let u=0;u<e;u++){let d=(u+s)*n-t/2-r,f=(l+s)*n-t/2-i;(o===`circle`?Math.hypot(d,f)<=a:Math.max(Math.abs(d),Math.abs(f))<=a)&&c.push(l*e+u)}return c},c=Math.round(t/n),l=s(c+1,0),u=s(c,.5);return T(e,e=>W(e,{points:l,height:l.map(()=>null),cells:u,paint:u.map(()=>tt)}))},settleBase:async e=>{await v(async()=>{let t=m().baseMoved;if(!t)return!1;let n=w(t)?.base;try{let{terrain:r}=await q({map:t,settle:e});h(t,r,l(t),e===`keep-heights`&&n?st(t,n,r.base):void 0)}catch(e){return r({baseMoved:null}),await _(t,e),!1}return r({baseMoved:null,notice:null,...e===`keep-heights`&&{undoSteps:[],redoSteps:[]}}),!0})&&await m().save()},undo:()=>j(`undoSteps`,`redoSteps`,`before`),redo:()=>j(`redoSteps`,`undoSteps`,`after`),reloadTerrain:async(e,t)=>{let n;try{n=await K(e)}catch(e){r({notice:V(e,`The map was not read`)});return}let{terrain:i,revision:a}=n;i&&C(e,i),S(e,a),t!==void 0&&r({undoSteps:[],redoSteps:[],notice:t})}}},{name:Qe,storage:We(r),partialize:({brush:e,lower:t,material:n,scatter:r})=>({brush:e,lower:t,material:n,scatter:r}),merge:(e,t)=>{let n=Be.safeParse(e?.brush),r=Le.safeParse(e?.material),i=mt.safeParse(e?.scatter),a=e?.lower;return{...t,...typeof a==`boolean`&&{lower:a},...n.success&&{brush:n.data},...r.success&&{material:r.data},...i.success&&{scatter:i.data}}}}));return T((e,t)=>{let n=c.get(e);if(!n||!u(n))return!1;for(let e of n.materials.keys())n.materials.set(e,t.materials[e]??null);for(let e of n.props.keys())n.props.set(e,t.props[e]??null);return n.sea===void 0?x(e,ut(t)):n.sea=ut(t),A.setState({changedOnDisk:!0}),!0}),g.subscribe(({freeCamera:e,mapCamera:t})=>{if(e||t)return;let{tool:n,card:r,holdTool:i,holdCard:a}=A.getState();n!==null&&i(null),r!==null&&a(null)}),A}function gt(e,t){let{names:n,base:r}=le(e);return n[r[Pe(e,t)]]}function _t(e,t){let[n,r]=t;return{x:n,z:r,height:e.getHeightAt({x:n,z:r}),slope:F.radToDeg(Math.atan(e.getSlopeAt({x:n,z:r}))),material:ue(le(e),Pe(e,t))}}function vt(e,t){let n=v(e,t),r=n&&Ze(n);if(!r)return null;let{map:i,surface:a}=r,o=[r.x,r.z],s=bt(n,r.distance);return{..._t(a,o),map:i,surface:a,cellMaterial:gt(a,o),...s&&{scattered:s}}}function yt(e,t,n,r){for(let{ground:a,map:o}of M()){if(E(o)!==e)continue;let s=(a.get(i)?.placements??[]).find(({kind:e,prop:i,position:a})=>e===t&&i===void 0&&Math.abs(a.x-n)<=.01&&Math.abs(a.z-r)<=.01);if(s)return[s.position.x,s.position.z]}return[n,r]}function bt(e,t){let n;for(let{ground:i,map:a}of M()){let o=i.get(r)?.object,s=E(a);if(o&&s)for(let r of e.intersectObject(o,!0)){if(r.distance>=(n?.hit.distance??t))break;if(!h(r.object)||r.instanceId===void 0)continue;let e=r.object;for(;e?.visible;)e=e.parent;if(!e){n={hit:r,ground:i,map:s};break}}}if(!n)return;let{hit:a,ground:o,map:s}=n,c=a.object.name,l=(o.get(i)?.placements??[]).filter(e=>e.kind===c)[a.instanceId];if(!l||l.prop!==void 0)return;let{position:u,rotationY:d,tilt:f,height:p}=l;return{map:s,kind:c,family:ze[c].family,position:[u.x,u.y,u.z],yaw:F.radToDeg(d),tilt:F.radToDeg(f),height:p}}function xt(e,t,n){for(let{ground:r,map:a}of M()){if(E(a)!==e)continue;let o=r.get(i)?.placements??[],s=o.find(({prop:e,position:r})=>e===t&&(!n||r.x===n[0]&&r.z===n[1]));if(!s)continue;let c=o.filter(({kind:e})=>e===s.kind).indexOf(s);return _(y(String(r.id()),s.kind),c)}}var St=ht();function Ct(e=St){function t(t){let{map:n,revision:r}=t.detail;A(n)!==r&&e.getState().followOutsideWrite(n)}return window.addEventListener(`spawnite:terrain`,t),()=>window.removeEventListener(`spawnite:terrain`,t)}var wt=ce();function Tt({children:e}){try{return/* @__PURE__ */ qe(wt.In,{children:e})}catch(e){throw f(`InCanvas`,e)}}var Et=wt.Out;Tt.displayName=`InCanvas`;function Dt({children:e,ref:t}){try{let n=Ue(null),r=t??n;return ye(u(`EditorDrawing`,()=>{r.current&&(r.current.visible=!ve())})),/* @__PURE__ */ qe(`group`,{ref:r,children:e})}catch(e){throw f(`EditorDrawing`,e)}}Dt.displayName=`EditorDrawing`;var Z=96,Ot=2,kt=F.degToRad(30),At=F.degToRad(25),jt=.18,Mt=.84,Nt=/* @__PURE__ */ function(e){return e.Whole=`whole`,e.Face=`face`,e}({}),Pt=/* @__PURE__ */ new Map,Ft=[],Q=!1;function It(){return new Promise(e=>{if(Ft.push(e),Q)return;Q=!0;let t=()=>{Ft.splice(0,Ot).forEach(e=>e()),Ft.length>0?requestAnimationFrame(t):Q=!1};requestAnimationFrame(t)})}var $;function Lt(){if($)return $;let e=new Me({alpha:!0,antialias:!0});e.setSize(Z,Z,!1),e.setClearColor(0,0),e.outputColorSpace=Oe;let t=new ke;t.add(new Te(16777215,8952234,1.6));let n=new we(16777215,2.2);n.position.set(2,4,3),t.add(n);let r=new Ke;return _e(r),$={renderer:e,scene:t,camera:new De(35,1,.01,1e3),loader:r},$}function Rt(e){e.parser.json.extensions?.VRM&&(e.scene.rotation.y=Math.PI)}function zt(e,t){let n=e.userData.vrm,r=n instanceof Je&&t?Xe(t,n):e.animations.find(({name:e})=>/idle/i.test(e))??e.animations[0];if(!r)return;let i=new xe(e.scene);i.clipAction(r).play(),i.update(0),n instanceof Je&&n.humanoid.update()}function Bt(e,t,n=jt){if(t===`whole`)return e.getBoundingSphere(new Ae);let r=e.max.y-e.min.y,i=e.getCenter(new I);return i.y=e.min.y+r*Mt,new Ae(i,r*n)}function Vt(e){let t=e.userData.vrmAnimations?.[0];return t instanceof Ye?t:void 0}async function Ht(e,{size:t,framing:n,yaw:r,clip:i,faceReach:a}){let{loader:o}=Lt(),[s,c]=await Promise.all([o.loadAsync(e),i?o.loadAsync(i):void 0]);Rt(s);let{scene:l}=s;l.rotation.y+=r,zt(s,c&&Vt(c)),l.updateWorldMatrix(!0,!0),await It();let{renderer:u,scene:d,camera:f}=Lt();u.setSize(t,t,!1);let m=Bt(new Se().setFromObject(l),n,a),h=n===`face`,g=h?p(f,1)*m.radius:p(f,m.radius);f.position.set(h?0:Math.sin(kt)*Math.cos(At),h?0:Math.sin(At),h?1:Math.cos(kt)*Math.cos(At)).multiplyScalar(g).add(m.center),f.lookAt(m.center),d.add(l);try{return u.render(d,f),u.domElement.toDataURL(`image/png`)}finally{d.remove(l),Ut(l)}}function Ut(e){e.traverse(e=>{if(!(e instanceof Ee))return;e.geometry.dispose();let t=Array.isArray(e.material)?e.material:[e.material];for(let e of t){for(let t of Object.values(e))t instanceof je&&t.dispose();e.dispose()}})}function Wt(e,{size:t=Z,framing:n=`whole`,yaw:r=0,clip:i=``,faceReach:a=jt}={}){let o=`${n}:${t}:${r}:${i}:${a}:${e}`,s=Pt.get(o);return s||(s=Ht(e,{size:t,framing:n,yaw:r,clip:i,faceReach:a}).catch(e=>{throw Pt.delete(o),e}),Pt.set(o,s)),s}function Gt(e){let t=s(e);if(!t||t.length<9)return;let n=[];for(let e=0;e<t.length;e+=3)n.push([t[e],t[e+1]]);let r=Kt(n),i=new Se().setFromPoints(r.map(([e,t])=>new I(e,t,0))),a=i.getSize(new I),o=Math.max(a.x,a.y)||1,c=i.min.x-(o-a.x)/2;return r.map(([e,t])=>[(e-c)/o,1-(t-i.min.y)/o])}function Kt(e){let t=[...e].sort(([e,t],[n,r])=>e-n||t-r),n=([e,t],[n,r],[i,a])=>(n-e)*(a-t)-(r-t)*(i-e),r=e=>{let t=[];for(let r of e){for(;t.length>=2&&n(t[t.length-2],t[t.length-1],r)<=0;)t.pop();t.push(r)}return t.pop(),t};return[...r(t),...r(t.reverse())]}export{Et as a,vt as c,St as d,Ct as f,Dt as i,_t as l,Gt as n,Tt as o,Ze as p,Wt as r,xt as s,Nt as t,B as u};
@@ -0,0 +1 @@
1
+ import{ti as e}from"./V70ADx0g.js";import{n as t}from"./BrfUaL46.js";import{persist as n}from"zustand/middleware";var r=/* @__PURE__ */ new Map,i=null,a=/* @__PURE__ */ new Map,o=0,s=/* @__PURE__ */ new Map;function c(e,t){let n=`stores.${e}`,r=`the store "${e}"`;return{ok:!1,key:n,owner:r,reason:t,message:`The save did not load: ${r}'s key ${n} failed, ${t}. Nothing was restored, and the save must not be written over.`}}function l(e){if(typeof e!=`object`||!e)return!1;let{version:t}=e;return Number.isInteger(t)&&t>=0}function u(e,t){if(!l(t))return c(e.name,`its entry is no { version, state } with a whole version from 0`);let{version:n=0,migrate:r}=e.api.persist.getOptions();if(t.version>n)return c(e.name,`version ${t.version} wrote it, and this game reads up to version ${n}`);if(t.version===n)return{state:t.state};if(!r)return c(e.name,`it is at version ${t.version}, and the store gives no migrate to version ${n}`);let i=t=>c(e.name,`its migrate threw: ${t instanceof Error?t.message:String(t)}`);try{let e=r(t.state,t.version);return e instanceof Promise?e.then(e=>({state:e}),i):{state:e}}catch(e){return i(e)}}function d(e){let t=/* @__PURE__ */ new Map,n=()=>[...r.values()].find(({name:n})=>e!==void 0&&Object.hasOwn(e,n)&&!t.has(n)),i=()=>{for(let r=n();r;r=n()){let n=r,a=u(n,e?.[n.name]),o=e=>{if(`ok`in e)return e;t.set(n.name,e.state)};if(a instanceof Promise)return a.then(e=>o(e)??i());let s=o(a);if(s)return s}return t};return i()}function f(e){return{getItem:()=>{if(!i||!a.has(e))return null;let t=r.get(e);return{state:a.get(e),version:t?.api.persist.getOptions().version??0}},setItem:()=>void 0,removeItem:()=>void 0}}function p(e){if(e.loaded=!1,s.delete(e.name),e.api.persist.rehydrate(),e.loaded=e.api.persist.hasHydrated(),e.loaded)return null;let t=s.get(e.name);return c(e.name,s.has(e.name)?`its merge threw: ${t instanceof Error?t.message:String(t)}`:`zustand did not load it`)}async function m(e){let t=i,n=o;if(!t)return;if(t.entries&&Object.hasOwn(t.entries,e.name)){let r=await u(e,t.entries[e.name]);if(o!==n||!i)return;if(`ok`in r){t.refuse(r);return}a.set(e.name,r.state)}let r=p(e);r&&t.refuse(r)}function h(e){return Object.fromEntries(Object.entries(e).filter(([,e])=>typeof e!=`function`))}function g(n,a){let o=r.get(n);if(o&&!e((/* @__PURE__ */ Error()).stack))throw t(/* @__PURE__ */ Error(`Two persisted stores are named "${n}": each name is one entry in the player's save. Give one of them another name.`),`SP0351`,void 0);let s={name:n,api:a,loaded:o?.loaded??!1};return r.set(n,s),!o&&i&&queueMicrotask(()=>void m(s)),o&&h(o.api.getState())}var _=((e,t)=>(r,i,a)=>{let o=t.merge??((e,t)=>({...t,...e})),c=n(e,{...t,merge:(e,n)=>{if(e===void 0)return n;try{return o(e,n)}catch(e){throw s.set(t.name,e),e}},storage:f(t.name),skipHydration:!0})(r,i,a),l=g(t.name,a);return l?{...c,...l}:c});function v(e){for(let t of r.values()){if(!e.has(t.name))continue;let{merge:n}=t.api.persist.getOptions();try{n?.(e.get(t.name),t.api.getState())}catch(e){return s.delete(t.name),c(t.name,`its merge threw: ${e instanceof Error?e.message:String(e)}`)}}return null}function y(e){if(i)return null;i=e,a=new Map(e.states);let t=++o,n=null;for(let t of r.values()){if(!e.states.has(t.name)&&e.entries!==void 0&&Object.hasOwn(e.entries,t.name)){t.loaded=!1,m(t);continue}let r=p(t);n??=r}return{refused:n,unbind:({keep:e=!0}={})=>{if(o===t&&i!==null){i=null;for(let t of r.values())t.loaded=!1,e||t.api.setState(t.api.getInitialState(),!0)}}}}function b(){let e=/* @__PURE__ */ new Map;if(!i)return{};for(let t of r.values()){if(!t.loaded)continue;let{version:n=0,partialize:r=e=>e}=t.api.persist.getOptions();e.set(t.name,{version:n,state:r(t.api.getState())})}return Object.fromEntries(e)}function x(e){return r.get(e)?.api.persist.getOptions().version??0}function S(){return[...r.keys()]}function C(e){if(e!==`always`&&e!==`optional`)return;let t=S();if(t.length!==0)return`${t.map(e=>`"${e}"`).join(`, `)} ${t.length===1?`is a persisted store`:`are persisted stores`}, but this game plays in rooms, and a room is the only writer of a room game's save. Save the value from the server half, with a plugin's save, and make the store without persist.`}function w(e){let n=C(e);if(n)throw t(Error(n),`SP0352`,void 0)}function T(){i=null;for(let e of r.values())e.api.setState(e.api.getInitialState(),!0),e.loaded=!1}export{S as a,x as c,C as i,b as l,v as n,_ as o,w as r,d as s,y as t,T as u};
@@ -0,0 +1 @@
1
+ import{c as e,d as t}from"./CVgRrBP4.js";import{useThree as n}from"@react-three/fiber";import{useEffect as r}from"react";function i(i){let a=n(e=>e.gl),o=e(a);return r(()=>{o&&t(i)},[o,i]),!o}export{i as t};
@@ -0,0 +1 @@
1
+ import{DRACOLoader as e,DRACO_GLTF_CONFIG as t}from"three/addons/loaders/DRACOLoader.js";import{MeshoptDecoder as n}from"three/addons/libs/meshopt_decoder.module.js";var r=new e().setDecoderPath(t),i=e=>{e.setDRACOLoader(r).setMeshoptDecoder(n)};export{i as t};
@@ -0,0 +1 @@
1
+ import{Gi as e,ar as t,as as n,cu as r,hf as i,hr as a,if as o,l as s,os as c,pr as l,rr as u,rs as d,sf as f,sr as p,ss as m,tu as h,ur as g,uu as _}from"./-MLBVTaO.js";import{Vt as v,or as ee,pr as y}from"./V70ADx0g.js";import{n as b}from"./BrfUaL46.js";import{Plane as x,Quaternion as S,Ray as C,Vector3 as w}from"three";import{trait as T}from"koota";var E={origin:new w,direction:new w,end:new w,target:null,zone:null},D={test:{ray:new C,range:0,feet:new w,body:i},shooter:null},{test:O}=D,k={ray:O.ray,range:0,target:null},A={ray:new C,range:0,target:null},j=new w,M=new x(new w(0,1,0)),N=new w,P=new w,F=new w,te=new w,I={ray:new C,range:0,target:null};function ne(e,t,n,r){return A.ray.origin.copy(t),A.ray.direction.subVectors(n,t),A.range=A.ray.direction.length(),A.range!==0&&(A.ray.direction.divideScalar(A.range),A.target=r,d(e,A)!==null)}var L=1;function re(e,t,n){let r=t.distanceTo(n);return r===0||(I.ray.origin.copy(t),I.ray.direction.subVectors(n,t).divideScalar(r),I.range=r,d(e,I)===null)}function ie(e,{character:t,pointer:r,weapon:o,throughCrosshair:s=!1,muzzle:c}){let l=t.get(ee)?.position;if(!l)return null;let u=a(o,t,g.Range),p=t.get(f)?.height||i.height;N.copy(l).setY(l.y+p/2),D.shooter=t,D.friendlyFire=o.friendlyFire,F.copy(r.direction),r.at(Math.max(0,P.subVectors(N,r.origin).dot(F)),P),O.ray.origin.copy(s?P:r.origin),O.ray.direction.copy(F),O.range=1/0;let m=n(e,D),h=m.target!==null&&!ne(e,N,O.ray.at(m.distance,j),m.target);k.range=h?m.distance:1/0,k.target=h?m.target:null;let _=d(e,k)?.distance??1/0,v=h?Math.min(m.distance,_):_;M.constant=-N.y;let y=h&&m.distance<=_;!s&&!y&&O.ray.intersectPlane(M,j)&&(v=Math.min(v,j.distanceTo(O.ray.origin))),O.ray.at(v===1/0?u:v,j);let b=!!c&&re(e,N,c),x=c?te.subVectors(j,c).dot(F):1/0;if(c&&s&&(!b||x<L)&&re(e,N,P))E.origin.copy(P),E.direction.copy(F);else{let e=b&&!(s&&x<L);if(E.origin.copy(c&&e?c:N),E.direction.subVectors(j,E.origin),E.direction.lengthSq()===0)return null;E.direction.normalize()}O.ray.set(E.origin,E.direction),O.range=u;let{target:S,distance:C,zone:w}=n(e,D);k.range=u,k.target=S;let T=d(e,k)?.distance??1/0;return E.target=S&&C<=T?S:null,E.zone=E.target?w:null,E.end.copy(E.origin).addScaledVector(E.direction,Math.min(S?C:u,T)),E}function ae({direction:e,pellet:t,pellets:n,spread:r},i){return i.copy(e).applyAxisAngle(h,(t-(n-1)/2)*r)}var R={hits:[],distances:[],zones:[]};function oe(e,{shooter:t,origin:n,direction:r,weapon:i}){let o=a(i,t,g.Pellets),s=a(i,t,g.Range),l=a(i,t,g.Spread),u=a(i,t,g.Pierce);D.shooter=t,D.friendlyFire=i.friendlyFire;let f=[];for(let t=0;t<o;t++){O.ray.origin.copy(n),ae({direction:r,pellet:t,pellets:o,spread:l},O.ray.direction),O.range=s;let i=Math.min(c(e,D,R),u+1);k.range=s,k.target=i>0?R.hits[0]:null,k.through=R.hits.slice(1,i);let a=d(e,k)?.distance??1/0;k.through=void 0;let p=[];for(let t=0;t<i;t++)R.distances[t]<=a&&p.push(v(e,R.hits[t]));f.push(p)}return f}var se=1,z=1/s;function B(e){e.has(p)||e.add(p);let t=e.get(p);if(!t)throw b(/* @__PURE__ */ Error(`The world holds no rewind history.`),`SP0234`,void 0);return t}function ce(e,t){B(e).step=t}function le(e,{snapshot:t,step:n,sendTicks:r}){let i=B(e),a=Math.ceil(z/r)+1;i.kept!==a&&(i.kept=a,i.sends=[],i.count=0),i.sends[i.count%a]={step:n,entities:t.entities},i.count++}var V={before:{step:0,entities:{}},after:{step:0,entities:{}},fraction:0};function H(e,t){let n=e.get(p);if(!n||n.count===0)return;let{sends:r,count:i,kept:a}=n,o=r[(i-1)%a];if(t>o.step||t>=n.step)return;V.before=o,V.after=o,V.fraction=0;let s=Math.min(i,a),c=o.step-z,l=o;for(let e=1;e<s;e++){let n=r[(i-1-e)%a];if(n.step<c)break;if(t>=n.step)return V.before=n,V.after=l,V.fraction=(t-n.step)/(l.step-n.step),V;l=n}return V.before=l,V.after=l,V}function U({before:t,after:n,fraction:r},i,a){let o=y(t.entities[i]?.transform);if(!e(o))return;let s=y(n.entities[i]?.transform),c=e(s)?s:o;return a.set(o[0]+(c[0]-o[0])*r,o[1]+(c[1]-o[1])*r,o[2]+(c[2]-o[2])*r)}function ue({before:e,after:t,fraction:n},r,i){let a=K(e.entities[r]?.transform);if(!a)return;i.fromArray(a);let o=K(t.entities[r]?.transform);return o&&i.slerp(de.fromArray(o),n),i}var de=new S;function W(t){if(e(t)&&t.length===3)return{x:t[0],y:t[1],z:t[2]};if(typeof t!=`object`||!t)return;let{x:n,y:r,z:i}=t;return typeof n==`number`&&typeof r==`number`&&typeof i==`number`?{x:n,y:r,z:i}:void 0}function fe(e){if(typeof e!=`object`||!e)return;let{name:t,multiplier:n,radius:r,at:i,to:a}=e,o=W(i),s=a===void 0?void 0:W(a);if(typeof t==`string`&&typeof n==`number`&&typeof r==`number`&&o&&(a===void 0||s))return{name:t,multiplier:n,radius:r,at:o,...s&&{to:s}}}var G=/* @__PURE__ */ new WeakMap;function pe({after:e},t){let n=G.get(e.entities);n||G.set(e.entities,n=/* @__PURE__ */ new Map);let r=n.get(t);if(!r){let i=e.entities[t]?.hitZones;r=Array.isArray(i)?i.flatMap(e=>fe(e)??[]):[],n.set(t,r)}return r}function K(t){if(typeof t!=`object`||!t)return;let n=t.rotation;return e(n)&&n.length===4?n:void 0}function me(e,t,n,r){let i=H(e,n);if(i)return U(i,v(e,t),r);let a=t.get(ee)?.position;return a&&r.copy(a)}function he(e,t,n){let r=e.get(p);if(!r||r.count===0)return;let i=(H(e,n)?.after??r.sends[(r.count-1)%r.kept]).entities[v(e,t)];return i&&structuredClone(i)}var q=[];function ge(e,n,r){let i=e.get(p);if(!i)return;n.has(t)||n.add(t);let a=n.get(t);if(!a)return;let{lags:o}=a;o.push((i.step-r)*s),o.length>8&&o.shift(),q.length=0,q.push(...o),q.sort((e,t)=>e-t);let c=q.length/2;a.seconds=q.length%2==1?q[Math.floor(c)]:(q[c-1]+q[c])/2;let l=0;for(let e of o)l+=Math.abs(e-a.seconds);a.jitterSeconds=l/o.length}var J={maximumSeconds:1,toleranceSeconds:.2};function Y(e,n,r,{maximumSeconds:i=J.maximumSeconds,toleranceSeconds:a=J.toleranceSeconds}={}){let o=e.get(p);if(!o)return r;let c=i/s,l=0,u=c,d=n.get(t);if(d&&d.lags.length>0){let e=d.seconds/s,t=a/s;l=Math.min(Math.max(0,e-t),c),u=Math.max(l,Math.min(c,e+t))}let f=Math.min(Math.max(o.step-r,l),u);return o.step-f}var _e=/* @__PURE__ */ function(e){return e.Room=`room`,e.Page=`page`,e}({}),X=/*#__PURE__*/ T(()=>({}));function ve(e,t){return o(e,`weapons`),e.has(X)||e.add(X),e.set(X,t),()=>{e.get(X)===t&&e.set(X,{})}}function ye(e){e.has(u)||e.add(u);let t=e.get(u);if(!t)throw b(/* @__PURE__ */ Error(`The character holds no record of her shots.`),`SP0235`,void 0);return t}function be(e,t){let{recent:n}=ye(e);n.push(t),n.length>16&&n.shift()}var xe=({shooter:e})=>{if(e.has(_))return`The shooter is downed.`;if(e.has(r))return`The shooter is disarmed.`},Se=({shooter:e,claim:t})=>l(e,t.weapon)?void 0:`The shooter does not hold the weapon "${t.weapon}".`,Ce=.65;function we({stallSeconds:e=Ce}={}){return({shooter:t,claim:n,weapon:r,now:i})=>{let o=a(r,t,g.ShotsPerSecond),s=Math.max(2,o*e+1),{credits:c}=ye(t);Object.hasOwn(c,n.weapon)||Object.defineProperty(c,n.weapon,{value:{shots:s,read:i},enumerable:!0,writable:!0,configurable:!0});let l=c[n.weapon];if(l.shots=Math.min(s,l.shots+(i-l.read)/1e3*o),l.read=i,l.shots<1)return`Fired faster than ${o} shots a second, past a burst of ${Math.floor(s)}.`;l.shots--}}var Z=new w,Te=new w,Q={ray:new C,range:0},Ee=2.5;function De({metres:e=Ee}={}){return({shooter:t,claim:n})=>{if(!m(t,Z))return`The shooter has no place in the world.`;let r=Z.distanceTo(Te.fromArray(n.origin));if(!(r<=e))return`Fired from ${r.toFixed(2)} m from the middle of the shooter's body, past the ${e} m allowed.`}}var Oe=({world:e,shooter:t,claim:n})=>{if(!m(t,Z))return`The shooter has no place in the world.`;let{ray:r}=Q;r.direction.fromArray(n.origin).sub(Z);let i=r.direction.length();if(i!==0)return r.origin.copy(Z),r.direction.divideScalar(i),Q.range=i,d(e,Q)===null?void 0:`Fired from past cover between the shooter's body and the shot's origin.`};function ke(e={}){return t=>{t.step=Y(t.world,t.shooter,t.step,e)}}var Ae={armed:xe,held:Se,rate:we(),origin:De(),cover:Oe,rewind:ke()};function $(e,t){if(t)for(let[n,r]of Object.entries(t))e.set(n,r)}function je(e,t){let n=new Map(Object.entries(Ae));$(n,e.get(X)?.rules),$(n,t.rules);let r=[];for(let[e,t]of n)t&&r.push([e,t]);return r}function Me(e,t){return t.judge??e.get(X)?.judge??`room`}export{oe as C,ie as S,pe as _,we as a,Y as b,Me as c,H as d,ge as f,U as g,ue as h,De as i,je as l,he as m,X as n,be as o,me as p,Se as r,ve as s,_e as t,ke as u,le as v,ae as w,ce as x,se as y};
@@ -0,0 +1 @@
1
+ import{Bu as e,Hc as t,Xf as n,tf as r,tl as i}from"./-MLBVTaO.js";import{Jn as a}from"./V70ADx0g.js";import{T as o,a as s,r as c}from"./CVgRrBP4.js";import{Et as l}from"./Cq6VqPHb.js";import{A as u}from"./CRfoqBKG.js";import{n as d,u as f}from"./Dwfie-ev.js";import{n as p}from"./DlkDsMQd.js";import{AppMessageType as m,ChannelHandshake as ee,PageConnectionStatus as h,PageMessageType as g,appChannelVersion as _,appInsetEdges as v,appMessage as y,appMessageVersions as b,channelConnect as x,pageMessageVersions as S,seatCredential as C}from"@spawnite/schema";import{useEffect as w,useReducer as T}from"react";import{useQuery as E,useTrait as D,useWorld as te}from"koota/react";var O=o()(()=>({player:{},appVersion:null,framed:typeof window<`u`&&window.parent!==window,initialized:!1,seat:null,save:null,unanswered:!1}));function k({framed:e,appVersion:t,initialized:n}){return e&&t!==null&&!n}var A=null;function j({appVersion:e}){return e!==null&&e>=S[g.Fullscreen]}function M({appVersion:e}){return e!==null&&e>=b[m.Fullscreen]}var N=null;function P(){let e=O.getState();if(!A||!j(e))return null;if(!M(e))return A({type:g.Fullscreen}),Promise.resolve(void 0);N?.(!1);let t=new Promise(e=>{N=t=>{N=null,e(t)}});return A({type:g.Fullscreen}),t}var F=null;function I(e){return F=e,()=>{F===e&&(F=null)}}function L(e){return A?(A(e),!0):!1}var R=null;function z(){let{appVersion:e}=O.getState();!A||e===null||e<S[g.Menu]||A({type:g.Menu,open:R??!0})}function B(e){e!==R&&(R=e,z())}function V(e,t){let{style:n}=e.document.documentElement;for(let e of v){let r=t[e];r===void 0?n.removeProperty(`--game-inset-${e}`):n.setProperty(`--game-inset-${e}`,`${r}px`)}}function H({mountedScene:e,loading:t}){return e!==null&&!t}function U(e,t){let n=e=>t({type:g.Settings,...e}),r=d(f,{settings:e,send:n}),i=p({muted:e.muted,send:n});return()=>{r(),i()}}function W({code:e,reason:t}){if(e!==4009&&e!==4010)return;let{key:n=``,retry:r=!1}=u(t)??{};if(!r)return{key:n,owner:n===``?`the record`:n,reason:e===4010?`a newer version of the game wrote it`:`the room could not load it`}}var G={[c.Connecting]:h.Connecting,[c.Joined]:h.Joined,[c.Reconnecting]:h.Reconnecting,[c.Rejoining]:h.Rejoining,[c.Closed]:h.Closed};function K(e){return s.subscribe(({status:t},n)=>{let{appVersion:r}=O.getState();t===n.status||r===null||r<S[g.Connection]||e({type:g.Connection,status:G[t]})})}var q=null;function J(){let{appVersion:e}=O.getState();return!A||e===null||e<b[m.Seat]?Promise.resolve(null):(q?.(null),new Promise(e=>{q=t=>{q=null,e(t)}}))}function Y(e){return s.subscribe(({refusal:t},n)=>{let{appVersion:r}=O.getState();if(!t||t===n.refusal||r===null||r<S[g.SaveLoadFailed])return;let i=W(t);i&&e({type:g.SaveLoadFailed,...i})})}function X(e,t){let n=e=>t.postMessage(e);A=n;let r;t.addEventListener(`message`,t=>{let i=y.safeParse(t.data);if(!i.success){console.warn(`Refused a message from the app that is not on the channel's list.`,t.data,i.error.issues);return}switch(i.data.type){case m.Init:{let t=C.safeParse(i.data.credential);O.setState({player:i.data.player,initialized:!0,seat:t.success?t.data:null,save:i.data.save??null}),V(e,i.data.insets);break}case m.Insets:V(e,i.data.insets);break;case m.Settings:r?.(),r=U(i.data.settings,n);break;case m.Leave:if(i.data.moved){s.getState().move(),n({type:g.Left,released:!1});break}s.getState().leave().then(e=>n({type:g.Left,released:e}));break;case m.Saved:F?.stored(i.data.number);break;case m.SaveFailed:F?.failed(i.data.number);break;case m.SaveNow:F?F.saveNow():n({type:g.Save,record:null,cloud:!0});break;case m.Seat:{let e=C.safeParse(i.data.credential);q?.(e.success?{url:e.data.room,seat:e.data.ticket}:null);break}case m.Fullscreen:N?.(i.data.shown)}}),t.start();let i=Y(n),a=K(n);R!==null&&z();let o,c=()=>{o?.(),n({type:g.Ready})};return H(l.getState())?c():o=l.subscribe(e=>{H(e)&&c()}),()=>{o?.(),i(),a(),q?.(null),N?.(!1),r?.(),A===n&&(A=null),t.close()}}function Z(e){if(e.parent===e)return()=>void 0;let t,n=i=>{if(i.source!==e.parent)return;let a=x.safeParse(i.data),[o]=i.ports;a.success&&o&&(e.removeEventListener(`message`,n),clearTimeout(r),O.setState({appVersion:a.data.version}),t=X(e,o))};e.addEventListener(`message`,n);let r=setTimeout(()=>O.setState({unanswered:!0}),2e3),i={type:ee.Hello,version:_,...typeof __GAME_ENGINE_RELEASE__==`string`&&{release:__GAME_ENGINE_RELEASE__}};return e.parent.postMessage(i,`*`),()=>{clearTimeout(r),e.removeEventListener(`message`,n),t?.()}}var ne;function re(){typeof window<`u`&&(ne??=Z(window))}function Q(){let e=te(),[,o]=T(e=>e+1,0);return E(n),E(r(i)),w(()=>{let t=[e.onChange(n,o),e.onChange(a,o),e.onAdd(a,o)];return()=>{for(let e of t)e()}},[e]),t(e)}function $(t){return D(t,e)}function ie(){let t=Q()??null,n=$(t)??e.schema,{id:r,name:i}=O(e=>e.player);return{entity:t,health:n.current,maximumHealth:n.maximum,id:r,name:i}}export{k as a,M as c,L as d,J as f,re as i,B as l,$ as n,I as o,O as p,Q as r,j as s,ie as t,P as u};
@@ -0,0 +1 @@
1
+ import{Uf as e,Vf as t,Xf as n,pl as r,vo as i}from"./-MLBVTaO.js";import{Ot as a,Ur as o,Vr as s,Wr as c,qr as l,xr as u,zr as d}from"./V70ADx0g.js";import{n as f}from"./BrfUaL46.js";import{$internal as p}from"koota";import{isOlderReader as m,versionsOf as h}from"@spawnite/schema";var g=/*#__PURE__*/ o(`pendingGrants`,()=>({names:[]}),{serverOnly:!0});function _(e){let t=e.get(g);if(!t||t.names.length===0)return;let n=t.names.slice();return t.names.length=0,n}function v(e,r,o,u){let p=d(o),m=l(p);if(m===void 0)throw f(/* @__PURE__ */ Error(`grantPredicted wrote a trait ${c(p)}, which is not a PredictedTrait: grant a trait defined with { predicted: true } and no anyEntity, and write any other with koota's own set.`),`SP0183`,`grantPredicted`);if(!a(e))throw f(/* @__PURE__ */ Error(`grantPredicted(step, character, ${m}) ran outside the step it names: grant in the system the step runs, and keep no step for later.`),`SP0184`,`grantPredicted`);if(t(e,r,`grantPredicted(step, character, ${m})`),!r.has(n))throw f(/* @__PURE__ */ Error(`grantPredicted(step, character, ${m}) granted to entity ${r.id()}, which no player controls: a predicted trait is held by a controlled entity alone.`),`SP0185`,`grantPredicted`);i(r,()=>s(r,o,u)),r.has(g)||r.add(g);let h=r.get(g);h&&!h.names.includes(m)&&h.names.push(m)}var y=/* @__PURE__ */ new WeakMap;function b(e){y.has(e)&&y.set(e,!0)}function x(e){let t=y.get(e)===!0;return y.set(e,!1),t}var S=/* @__PURE__ */ function(e){return e.Counter=`counter`,e.Gauge=`gauge`,e}({});function C(e){let t={};for(let n in e.measures)t[n]=e.measures[n].kind;return{measures:t,parts:e.parts??[],over:e.over!==void 0}}function w(e,t){let n={};for(let r in t.measures){let i=t.measures[r],a;try{a=i.read(e)}catch(e){throw f(Error(`The timeline's measure "${r}" threw: ${e instanceof Error?e.message:String(e)}. Make its read return a value for every world it measures.`,{cause:e}),`SP0231`,`readTimeline`)}if(i.kind===`counter`&&!(typeof a==`number`&&Number.isFinite(a)))throw f(/* @__PURE__ */ Error(`The timeline's measure "${r}" is a counter and read ${String(a)}: a counter reads a finite number.`),`SP0232`,`readTimeline`);n[r]=a}return t.over===void 0?{values:n}:{values:n,over:t.over(e)}}function T(t){let n=e(t,`reloadScene`),i=n.get(r);return i?(n.set(r,{count:i.count+1}),!0):!1}function E(e){return u(e[p].worldEntity,r,`count`)??0}export{w as a,b as c,_ as d,C as i,x as l,T as n,m as o,S as r,h as s,E as t,v as u};
@@ -0,0 +1 @@
1
+ var e=`spawnite-build`,t=`spawnite-engine`,n=`/__spawnite/engine`;function r(){if(typeof document<`u`)return document.querySelector(`meta[name="spawnite-build"]`)?.getAttribute(`content`)??void 0}export{r as i,n,e as r,t};