@cimplify/sdk 0.109.0 → 0.111.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (377) hide show
  1. package/CHANGELOG.md +54 -0
  2. package/README.md +18 -0
  3. package/dist/advanced.d.mts +4 -4
  4. package/dist/advanced.d.ts +4 -4
  5. package/dist/advanced.js +22 -22
  6. package/dist/advanced.mjs +3 -3
  7. package/dist/{audio-XU2sFNyO.d.mts → audio-DhvyjqdA.d.mts} +2 -2
  8. package/dist/{audio-8Igdy2WK.d.ts → audio-m0w8cnxq.d.ts} +2 -2
  9. package/dist/avatars.js +21 -21
  10. package/dist/avatars.mjs +3 -3
  11. package/dist/{backend-L4d_Ha0J.d.mts → backend-gUCzs5Kg.d.mts} +16 -2
  12. package/dist/{backend-L4d_Ha0J.d.ts → backend-gUCzs5Kg.d.ts} +16 -2
  13. package/dist/{catalogue-DLLsfuNg.d.ts → catalogue-1QcoGDO6.d.ts} +2 -2
  14. package/dist/{catalogue-BeBFWlHF.d.mts → catalogue-FdFQiWrU.d.mts} +2 -2
  15. package/dist/{chunk-HF2MZKP2.mjs → chunk-22BD3RHN.mjs} +6 -3
  16. package/dist/{chunk-B54P6RL2.js → chunk-2AQ237Y4.js} +30 -30
  17. package/dist/{chunk-W3VVG4NL.js → chunk-2O2CG465.js} +14 -2
  18. package/dist/{chunk-UPHTPBNQ.mjs → chunk-2QTQ6BUH.mjs} +1 -1
  19. package/dist/{chunk-BS65NRDW.js → chunk-3S6WPBZL.js} +16 -16
  20. package/dist/{chunk-PEZYNYJE.js → chunk-3TUOUP5T.js} +3 -3
  21. package/dist/{chunk-EB6EAOM5.mjs → chunk-3VEH23I5.mjs} +7 -10
  22. package/dist/{chunk-SYEO2WV4.mjs → chunk-42JTCWIE.mjs} +3 -3
  23. package/dist/{chunk-FB6YH2WW.js → chunk-4C7I3ELN.js} +4 -4
  24. package/dist/{chunk-UQYO3OM7.js → chunk-4ZDR72SG.js} +1 -2
  25. package/dist/{chunk-HPKKCUHU.js → chunk-52YS45RR.js} +13 -13
  26. package/dist/{chunk-6YVELDFK.mjs → chunk-5BYDGGWO.mjs} +1 -1
  27. package/dist/{chunk-YN24DET4.js → chunk-5HFMY3D7.js} +10 -10
  28. package/dist/{chunk-4CVB2ZTC.js → chunk-5LH2QN3T.js} +32 -29
  29. package/dist/{chunk-4A24F4ZV.mjs → chunk-5YFBGGCK.mjs} +4 -1
  30. package/dist/{chunk-NLAT3DB2.mjs → chunk-6DAEZKIG.mjs} +1 -1
  31. package/dist/{chunk-F6CHJXXK.mjs → chunk-6DATW7TB.mjs} +3 -3
  32. package/dist/{chunk-4RYATNVK.mjs → chunk-6H254EVP.mjs} +6 -11
  33. package/dist/{chunk-32U4BVJA.mjs → chunk-6PJWXIFX.mjs} +1 -1
  34. package/dist/{chunk-OMTVH334.js → chunk-6QANXRUM.js} +203 -186
  35. package/dist/{chunk-BHAGIIBI.js → chunk-6WUBSMTX.js} +82 -85
  36. package/dist/{chunk-EPYFN2A3.js → chunk-7AAIAVAA.js} +24 -20
  37. package/dist/{chunk-HZC27ICH.mjs → chunk-7BHW5GTC.mjs} +3 -3
  38. package/dist/{chunk-MB425DVA.mjs → chunk-7IQQQENP.mjs} +2 -2
  39. package/dist/{chunk-DJUUL67Z.js → chunk-7KFTYENS.js} +296 -296
  40. package/dist/{chunk-XLQSNQMP.js → chunk-7SM6XSPZ.js} +339 -339
  41. package/dist/{chunk-NBH64BDP.mjs → chunk-A33OORT7.mjs} +13 -1
  42. package/dist/{chunk-G2SXLGFY.js → chunk-A7BU3BK4.js} +7 -7
  43. package/dist/{chunk-ZNWS7NOW.mjs → chunk-A7V4L2IT.mjs} +2 -2
  44. package/dist/{chunk-O3SITS4R.mjs → chunk-AGV33FWC.mjs} +4 -4
  45. package/dist/{chunk-Z2DE3EHS.js → chunk-AHNR3BXI.js} +7 -7
  46. package/dist/{chunk-UQ4BHMLS.mjs → chunk-AQ5RLBU2.mjs} +5 -5
  47. package/dist/{chunk-J4HU2YQB.js → chunk-AQOE6WCG.js} +2 -2
  48. package/dist/{chunk-X57B7VQC.js → chunk-AYJPHKYV.js} +22 -22
  49. package/dist/{chunk-6XTWY6MH.js → chunk-AZAXD44P.js} +126 -42
  50. package/dist/{chunk-6ETDAU62.mjs → chunk-B45X3HPO.mjs} +98 -39
  51. package/dist/{chunk-QDW4EPWS.mjs → chunk-BBGKQIJJ.mjs} +1 -1
  52. package/dist/{chunk-NHYTO4VU.js → chunk-BP4JLSUA.js} +111 -120
  53. package/dist/{chunk-7INQVOHY.mjs → chunk-BU6OK542.mjs} +25 -8
  54. package/dist/{chunk-MKIJQL5Q.js → chunk-CJVEJPIG.js} +69 -69
  55. package/dist/{chunk-W23VX5MY.js → chunk-CVSRWM6W.js} +5 -5
  56. package/dist/{chunk-A7DK7QAG.mjs → chunk-CYBMFMJD.mjs} +1 -1
  57. package/dist/{chunk-BOTUAHP2.mjs → chunk-DS2VU4WW.mjs} +5 -20
  58. package/dist/{chunk-HMMFNLXZ.js → chunk-DSAG7T5P.js} +2 -2
  59. package/dist/{chunk-7GG4KNTL.mjs → chunk-E65WCTIG.mjs} +8 -4
  60. package/dist/{chunk-WXDVEXTW.mjs → chunk-ECDK6QBF.mjs} +1 -1
  61. package/dist/{chunk-5IRV36MS.mjs → chunk-EIB4OWVQ.mjs} +1 -1
  62. package/dist/{chunk-JLJ4FD5H.js → chunk-EQUZYCGO.js} +18 -18
  63. package/dist/{chunk-Q2Y3VMKH.js → chunk-ETZDIISN.js} +151 -151
  64. package/dist/{chunk-AKTWH3KJ.mjs → chunk-F3UJ6ZRM.mjs} +2 -2
  65. package/dist/{chunk-J6HRY5EQ.js → chunk-F63N2ZTQ.js} +232 -232
  66. package/dist/{chunk-MUEFTPNN.js → chunk-FE6VCE4K.js} +34 -34
  67. package/dist/{chunk-GCKWKLZF.mjs → chunk-FT6GFYJL.mjs} +17 -3
  68. package/dist/{chunk-2UYTS7SL.mjs → chunk-GCX7TY4D.mjs} +16 -16
  69. package/dist/{chunk-QDLMIHUH.js → chunk-GDB6TCSD.js} +7 -7
  70. package/dist/{chunk-7S7LDFGH.js → chunk-GDZT5LZ5.js} +12 -12
  71. package/dist/{chunk-TB2LS4CE.mjs → chunk-GHS6MIL6.mjs} +7 -11
  72. package/dist/{chunk-7OHZ56N7.mjs → chunk-GXKI64OT.mjs} +4 -4
  73. package/dist/{chunk-HRSIIDOZ.js → chunk-H3OQKK6X.js} +41 -41
  74. package/dist/{chunk-56BM75QX.js → chunk-H5DFSCJ6.js} +2 -2
  75. package/dist/{chunk-LMK775I4.mjs → chunk-HAGEIC2L.mjs} +1 -1
  76. package/dist/{chunk-6FZDMICK.js → chunk-HAJ4JRFO.js} +15 -15
  77. package/dist/{chunk-AWR2G5QN.js → chunk-HDR72GB6.js} +6 -11
  78. package/dist/{chunk-PTT6KIM6.js → chunk-HSEO6TPU.js} +9 -9
  79. package/dist/{chunk-CQSA2D2O.js → chunk-I5FOHCLH.js} +4 -31
  80. package/dist/{chunk-TMFB55IR.js → chunk-J2U6PJSO.js} +3 -30
  81. package/dist/{chunk-W77VO6LP.js → chunk-J5AJNY2N.js} +13 -13
  82. package/dist/{chunk-UKA7LHIT.js → chunk-JR3TNEQC.js} +98 -98
  83. package/dist/{chunk-P2O34BIO.mjs → chunk-JURRXY2J.mjs} +1 -1
  84. package/dist/{chunk-PKMVOVUA.mjs → chunk-K3HW5I2A.mjs} +1 -1
  85. package/dist/{chunk-BXUGKBMK.mjs → chunk-KDQOR4QQ.mjs} +1 -14
  86. package/dist/{chunk-KVZSYGTX.mjs → chunk-KGHJH5KJ.mjs} +1 -1
  87. package/dist/{chunk-3AKWZF3X.mjs → chunk-KK6HYVBI.mjs} +1 -1
  88. package/dist/{chunk-K6GK5B5J.js → chunk-KMKWGXMK.js} +6 -6
  89. package/dist/{chunk-EH4UG7IL.mjs → chunk-KU7O4IXU.mjs} +4 -4
  90. package/dist/{chunk-IHRMR3WV.mjs → chunk-KVFNRJOR.mjs} +9 -9
  91. package/dist/{chunk-A36JRXXH.mjs → chunk-KWZHIPRN.mjs} +26 -9
  92. package/dist/{chunk-HBZQ5HSV.mjs → chunk-LIV3KXJG.mjs} +1 -1
  93. package/dist/{chunk-S75PBSSL.mjs → chunk-ME6HGG4I.mjs} +92 -8
  94. package/dist/{chunk-SNNEOS5Z.js → chunk-MHDUUSG6.js} +75 -75
  95. package/dist/{chunk-FKYZCXFM.js → chunk-MIPO6F72.js} +3 -3
  96. package/dist/{chunk-MFWIHTEN.js → chunk-MTIHEW2M.js} +5 -5
  97. package/dist/{chunk-UCR5HRYM.js → chunk-NFXCKTE2.js} +17 -3
  98. package/dist/{chunk-M53GR3ZV.mjs → chunk-NHJUGZUR.mjs} +43 -5
  99. package/dist/{chunk-FAYK2MN6.js → chunk-NZTKLY2W.js} +14 -18
  100. package/dist/{chunk-EQW6PFC2.js → chunk-O2ICABUD.js} +2 -2
  101. package/dist/{chunk-5PW6DVHF.js → chunk-OIVVQQ22.js} +55 -37
  102. package/dist/{chunk-GBJ5CW3A.js → chunk-PKOZXD2Q.js} +30 -30
  103. package/dist/{chunk-NGN3JE5A.js → chunk-PQTQKNKD.js} +16 -7
  104. package/dist/{chunk-DFZWHNRG.js → chunk-QOCHWR4V.js} +105 -42
  105. package/dist/{chunk-PCVVQNBD.js → chunk-QS6TRHMR.js} +5 -5
  106. package/dist/{chunk-DXZZ27CV.js → chunk-RKBLPGPV.js} +245 -207
  107. package/dist/{chunk-765P2G7G.mjs → chunk-RUVGVNOF.mjs} +1 -1
  108. package/dist/{chunk-NJ7ZWH4U.mjs → chunk-SAFJIGYB.mjs} +1 -1
  109. package/dist/{chunk-AOPH2IZV.js → chunk-SKQFLBDD.js} +60 -22
  110. package/dist/{chunk-BUUA5XJV.js → chunk-TWM6DLYF.js} +2 -2
  111. package/dist/{chunk-YPL5TKI4.mjs → chunk-U6UVWEAK.mjs} +1 -1
  112. package/dist/{chunk-6YQDHXPL.mjs → chunk-UCEPNO6N.mjs} +46 -9
  113. package/dist/{chunk-U7RULAEP.mjs → chunk-UG5BTOTF.mjs} +2 -2
  114. package/dist/{chunk-MITGBWV7.mjs → chunk-UGH37BQW.mjs} +1 -1
  115. package/dist/{chunk-IZDWAL53.mjs → chunk-UJDQQTBS.mjs} +8 -8
  116. package/dist/{chunk-URRZ2SMI.mjs → chunk-V7ZRH3PY.mjs} +2 -2
  117. package/dist/{chunk-3H76N7G5.mjs → chunk-VBGHBL3E.mjs} +8 -17
  118. package/dist/{chunk-AZC2LTUI.js → chunk-VVE3Y76O.js} +2 -2
  119. package/dist/{chunk-BRAA7U3I.mjs → chunk-W65JIRI4.mjs} +1 -1
  120. package/dist/{chunk-KU4EDEKA.js → chunk-WKWTDZS7.js} +9 -9
  121. package/dist/{chunk-BTUSVHIE.mjs → chunk-WLSU5QJT.mjs} +2 -2
  122. package/dist/{chunk-NTTHAXHI.js → chunk-X5A5FOWW.js} +11 -8
  123. package/dist/{chunk-ODL55PYL.mjs → chunk-XD2PMH46.mjs} +16 -7
  124. package/dist/{chunk-OADW5BSV.js → chunk-XK6UDWJS.js} +2 -2
  125. package/dist/{chunk-7ZTEVNXO.mjs → chunk-Y65LXQGA.mjs} +8 -8
  126. package/dist/{chunk-Z3PGQRTX.mjs → chunk-Y66WVMO5.mjs} +3 -30
  127. package/dist/{chunk-VZAJDN5C.mjs → chunk-Y7JWLB25.mjs} +1 -1
  128. package/dist/{chunk-ZJGPD42I.js → chunk-YCDXAJKU.js} +3 -3
  129. package/dist/{chunk-NCTLCSLE.mjs → chunk-Z3A3AFVU.mjs} +1 -1
  130. package/dist/{chunk-AEEF3T2E.mjs → chunk-ZCY6YKKP.mjs} +3 -3
  131. package/dist/{chunk-M5FWHML6.js → chunk-ZMIL4ZOA.js} +5 -18
  132. package/dist/{chunk-D3JMTFOX.mjs → chunk-ZR5ULMN2.mjs} +1 -1
  133. package/dist/{client-C9hsiaki.d.ts → client-CChON4-x.d.ts} +2 -2
  134. package/dist/{client-CO8lw80Q.d.mts → client-EeuGm5gj.d.mts} +2 -2
  135. package/dist/{courier-CJasuxTU.d.ts → courier-Cnn-edJ4.d.ts} +5 -5
  136. package/dist/{courier-C2Vo2VlH.d.mts → courier-FmGfkvIN.d.mts} +5 -5
  137. package/dist/{crowd-D1ljcic8.d.ts → crowd-DdHFbqKK.d.ts} +1 -1
  138. package/dist/{crowd-B37S1apB.d.mts → crowd-hOVSAmA3.d.mts} +1 -1
  139. package/dist/{danfo-BsaPzhGi.d.mts → danfo-BEBapFlX.d.mts} +3 -3
  140. package/dist/{danfo-CCv23CPy.d.ts → danfo-UQ_PTIIx.d.ts} +3 -3
  141. package/dist/{elements-Bsfk7CPw.d.ts → elements-ss9xZgRg.d.mts} +47 -1
  142. package/dist/{elements-Bsfk7CPw.d.mts → elements-ss9xZgRg.d.ts} +47 -1
  143. package/dist/engines/godot.d.mts +1 -1
  144. package/dist/engines/godot.d.ts +1 -1
  145. package/dist/engines/wasm.d.mts +1 -1
  146. package/dist/engines/wasm.d.ts +1 -1
  147. package/dist/fallback-KDB4Y2CE.mjs +6 -0
  148. package/dist/fallback-Y26TQENE.js +19 -0
  149. package/dist/{five-a-side-DP84gMuh.d.mts → five-a-side-Bv1AOUy3.d.mts} +4 -4
  150. package/dist/{five-a-side-DO8SDqMb.d.ts → five-a-side-EC51SJY1.d.ts} +4 -4
  151. package/dist/{fluid-BkxNBD2t.d.ts → fluid-ARr0qUIL.d.ts} +168 -4
  152. package/dist/{fluid-BZ42EMds.d.mts → fluid-DLlEj2cs.d.mts} +168 -4
  153. package/dist/game/conformance.d.mts +7 -7
  154. package/dist/game/conformance.d.ts +7 -7
  155. package/dist/game/conformance.js +39 -41
  156. package/dist/game/conformance.mjs +17 -19
  157. package/dist/game/heap.d.mts +3 -3
  158. package/dist/game/heap.d.ts +3 -3
  159. package/dist/game/heap.js +13 -15
  160. package/dist/game/heap.mjs +4 -6
  161. package/dist/game/kit/canvas.d.mts +33 -34
  162. package/dist/game/kit/canvas.d.ts +33 -34
  163. package/dist/game/kit/canvas.js +569 -570
  164. package/dist/game/kit/canvas.mjs +52 -53
  165. package/dist/game/kit/courier.d.mts +9 -9
  166. package/dist/game/kit/courier.d.ts +9 -9
  167. package/dist/game/kit/courier.js +20 -20
  168. package/dist/game/kit/courier.mjs +17 -17
  169. package/dist/game/kit/danfo.d.mts +7 -7
  170. package/dist/game/kit/danfo.d.ts +7 -7
  171. package/dist/game/kit/danfo.js +30 -30
  172. package/dist/game/kit/danfo.mjs +15 -15
  173. package/dist/game/kit/engine.d.mts +12 -12
  174. package/dist/game/kit/engine.d.ts +12 -12
  175. package/dist/game/kit/engine.js +40 -41
  176. package/dist/game/kit/engine.mjs +11 -12
  177. package/dist/game/kit/five-a-side.d.mts +7 -7
  178. package/dist/game/kit/five-a-side.d.ts +7 -7
  179. package/dist/game/kit/five-a-side.js +24 -24
  180. package/dist/game/kit/five-a-side.mjs +14 -14
  181. package/dist/game/kit/frontier.d.mts +7 -7
  182. package/dist/game/kit/frontier.d.ts +7 -7
  183. package/dist/game/kit/genesis.d.mts +7 -7
  184. package/dist/game/kit/genesis.d.ts +7 -7
  185. package/dist/game/kit/ludo.d.mts +8 -8
  186. package/dist/game/kit/ludo.d.ts +8 -8
  187. package/dist/game/kit/ludo.js +24 -24
  188. package/dist/game/kit/ludo.mjs +14 -14
  189. package/dist/game/kit/runner.d.mts +8 -8
  190. package/dist/game/kit/runner.d.ts +8 -8
  191. package/dist/game/kit/runner.js +22 -22
  192. package/dist/game/kit/runner.mjs +14 -14
  193. package/dist/game/kit/shootout.d.mts +9 -9
  194. package/dist/game/kit/shootout.d.ts +9 -9
  195. package/dist/game/kit/shootout.js +33 -34
  196. package/dist/game/kit/shootout.mjs +18 -19
  197. package/dist/game/kit/tycoon.d.mts +9 -9
  198. package/dist/game/kit/tycoon.d.ts +9 -9
  199. package/dist/game/kit/tycoon.js +38 -38
  200. package/dist/game/kit/tycoon.mjs +14 -14
  201. package/dist/game/kit/word.d.mts +7 -7
  202. package/dist/game/kit/word.d.ts +7 -7
  203. package/dist/game/kit/word.js +22 -22
  204. package/dist/game/kit/word.mjs +14 -14
  205. package/dist/game/kit/worlds.d.mts +10 -10
  206. package/dist/game/kit/worlds.d.ts +10 -10
  207. package/dist/game/kit/worlds.js +22 -22
  208. package/dist/game/kit/worlds.mjs +17 -17
  209. package/dist/game/kit.d.mts +31 -32
  210. package/dist/game/kit.d.ts +31 -32
  211. package/dist/game/kit.js +523 -524
  212. package/dist/game/kit.mjs +38 -39
  213. package/dist/game/prepared.d.mts +6 -7
  214. package/dist/game/prepared.d.ts +6 -7
  215. package/dist/game/prepared.js +23 -24
  216. package/dist/game/prepared.mjs +12 -13
  217. package/dist/{game-BZAfgKV6.d.mts → game-Bx8onkhX.d.mts} +5 -97
  218. package/dist/{game-UoJWopvD.d.ts → game-fgQy2YIm.d.ts} +5 -97
  219. package/dist/game.d.mts +56 -18
  220. package/dist/game.d.ts +56 -18
  221. package/dist/game.js +922 -927
  222. package/dist/game.mjs +16 -17
  223. package/dist/{graphics-DNIAV5Mi.d.ts → graphics-C6YjWYvP.d.ts} +1 -1
  224. package/dist/{graphics-CGJDdtdT.d.mts → graphics-Dk2yQnYN.d.mts} +1 -1
  225. package/dist/{guest-CMCZeyh5.d.mts → guest-DrsA00XD.d.mts} +2 -7
  226. package/dist/{guest-CB458Hgw.d.ts → guest-wIdfoT05.d.ts} +2 -7
  227. package/dist/{hit-stop-D2Ca-i9-.d.mts → hit-stop-BKkVwTq7.d.mts} +1 -1
  228. package/dist/{hit-stop-Ca1OYk15.d.ts → hit-stop-D-8pPYnM.d.ts} +1 -1
  229. package/dist/{hot-B9BTmDz6.d.ts → hot-Crn9XpHJ.d.ts} +1 -1
  230. package/dist/{hot-B_L-GEHZ.d.mts → hot-DH3nOhQD.d.mts} +1 -1
  231. package/dist/{index-DPeyo938.d.ts → index-B8ybCKJI.d.ts} +3 -3
  232. package/dist/index-BB2gjVvA.d.mts +153 -0
  233. package/dist/index-BEfmBDAH.d.ts +153 -0
  234. package/dist/{index-D8ZDzms9.d.mts → index-DHjNHb1c.d.mts} +3 -3
  235. package/dist/{index-DFDeJxFQ.d.ts → index-DQK8sTfu.d.ts} +2 -2
  236. package/dist/{index-C76o9Pj4.d.mts → index-DSVkhRmW.d.mts} +2 -2
  237. package/dist/index.d.mts +8 -8
  238. package/dist/index.d.ts +8 -8
  239. package/dist/index.js +189 -177
  240. package/dist/index.mjs +8 -8
  241. package/dist/interactives-authoring.js +12 -1
  242. package/dist/interactives-authoring.mjs +12 -1
  243. package/dist/interactives-canvas.global.js +14 -39
  244. package/dist/interactives-guest.d.mts +2 -2
  245. package/dist/interactives-guest.d.ts +2 -2
  246. package/dist/interactives-guest.js +10 -10
  247. package/dist/interactives-guest.mjs +6 -6
  248. package/dist/interactives-jsc.global.js +4 -23
  249. package/dist/interactives-meters.d.mts +11 -11
  250. package/dist/interactives-meters.d.ts +11 -11
  251. package/dist/interactives-meters.js +65 -66
  252. package/dist/interactives-meters.mjs +17 -18
  253. package/dist/interactives-production.d.mts +5 -5
  254. package/dist/interactives-production.d.ts +5 -5
  255. package/dist/interactives-production.js +15 -16
  256. package/dist/interactives-production.mjs +3 -4
  257. package/dist/interactives-record.d.mts +3 -9
  258. package/dist/interactives-record.d.ts +3 -9
  259. package/dist/interactives-record.js +45 -65
  260. package/dist/interactives-record.mjs +19 -39
  261. package/dist/interactives-runtime.d.mts +3 -3
  262. package/dist/interactives-runtime.d.ts +3 -3
  263. package/dist/interactives-runtime.js +101 -105
  264. package/dist/interactives-runtime.mjs +6 -6
  265. package/dist/interactives-studio-kernel.global.js +1 -1
  266. package/dist/interactives-studio.d.mts +7 -7
  267. package/dist/interactives-studio.d.ts +7 -7
  268. package/dist/interactives-studio.js +136 -82
  269. package/dist/interactives-studio.mjs +65 -11
  270. package/dist/interactives-web.d.mts +14 -14
  271. package/dist/interactives-web.d.ts +14 -14
  272. package/dist/interactives-web.js +201 -198
  273. package/dist/interactives-web.mjs +33 -34
  274. package/dist/interactives.d.mts +7 -28
  275. package/dist/interactives.d.ts +7 -28
  276. package/dist/interactives.js +267 -313
  277. package/dist/interactives.mjs +26 -24
  278. package/dist/{juice-Dfgc1B1q.d.ts → juice-CoHxlpKA.d.ts} +1 -1
  279. package/dist/{juice-CsnrmTOk.d.mts → juice-DQztFS43.d.mts} +1 -1
  280. package/dist/{launch-CCsmv8HC.d.mts → launch-T2f4_Di4.d.mts} +6 -6
  281. package/dist/{launch-8W_Tojpz.d.ts → launch-d6oreMzR.d.ts} +6 -6
  282. package/dist/{local-DA_HpPOj.d.mts → local-D8_I6UeL.d.mts} +0 -5
  283. package/dist/{local-_mD0x-p_.d.ts → local-VZkqsCzR.d.ts} +0 -5
  284. package/dist/{ludo-BVHycBP-.d.ts → ludo-B8ClkDqr.d.ts} +4 -4
  285. package/dist/{ludo-BRaTcI3E.d.mts → ludo-BOuohQ-M.d.mts} +4 -4
  286. package/dist/mock/cli.mjs +25 -10
  287. package/dist/mock/library.js +25 -10
  288. package/dist/mock/library.mjs +25 -10
  289. package/dist/mock/msw.js +25 -10
  290. package/dist/mock/msw.mjs +25 -10
  291. package/dist/{native-CcMUV7rL.d.mts → native-BodxSh03.d.mts} +2 -2
  292. package/dist/{native-3f4Ht82c.d.ts → native-DUHMT8gA.d.ts} +2 -2
  293. package/dist/{online-CCy8pwOn.d.ts → online-XeymeM9s.d.ts} +1 -1
  294. package/dist/{online-smW2BO3Y.d.mts → online-d7W_Al9a.d.mts} +1 -1
  295. package/dist/{play-BhHHX1jD.d.ts → play-BRRlfLhX.d.ts} +5 -5
  296. package/dist/{play-Bn7NfGNE.d.mts → play-ClrMd_e8.d.mts} +5 -5
  297. package/dist/{policy-Dvnzg8ki.d.mts → policy-CCw8tXLm.d.mts} +19 -19
  298. package/dist/{policy-b3MVXMQu.d.ts → policy-CMqOSQIu.d.ts} +19 -19
  299. package/dist/{ports-CNeZdgVm.d.mts → ports-B_0v_P3A.d.mts} +1 -1
  300. package/dist/{ports-Vno6MDaR.d.ts → ports-CGU_3e_0.d.ts} +1 -1
  301. package/dist/{prefetch-BFg6lJyD.d.ts → prefetch-BHnicOQj.d.ts} +3 -3
  302. package/dist/{prefetch-BOoKX3qx.d.mts → prefetch-CBXgYacv.d.mts} +3 -3
  303. package/dist/{price-BIKJla_G.d.mts → price-B-w4PwHm.d.mts} +1 -1
  304. package/dist/{price-D1gE7Ek6.d.ts → price-BEvQFNJv.d.ts} +1 -1
  305. package/dist/react.d.mts +35 -27
  306. package/dist/react.d.ts +35 -27
  307. package/dist/react.js +276 -248
  308. package/dist/react.mjs +147 -119
  309. package/dist/{runner-BAG8EglP.d.ts → runner-CQcLL7By.d.ts} +6 -6
  310. package/dist/{runner-CKtKtIzc.d.mts → runner-D46Yj-wE.d.mts} +6 -6
  311. package/dist/{runtime-DfZp1Kwg.d.mts → runtime-BRWfkf_q.d.mts} +1 -8
  312. package/dist/{runtime-yHPgIJV-.d.ts → runtime-DyuBMkKM.d.ts} +1 -8
  313. package/dist/{scheduling-CnRAhWQL.d.ts → scheduling-D9WwOxbo.d.ts} +1 -1
  314. package/dist/{scheduling-lHyYoCa7.d.mts → scheduling-DDmrYCr-.d.mts} +1 -1
  315. package/dist/{server-DxcxjER1.d.ts → server-BiKwxvnf.d.ts} +2 -2
  316. package/dist/{server-lU3Sznd4.d.mts → server-DPdtl2dd.d.mts} +2 -2
  317. package/dist/server.d.mts +4 -4
  318. package/dist/server.d.ts +4 -4
  319. package/dist/server.js +10 -10
  320. package/dist/server.mjs +4 -4
  321. package/dist/{shootout-rK-oblpb.d.ts → shootout-BJZeX6FG.d.ts} +6 -6
  322. package/dist/{shootout-D998OWa-.d.mts → shootout-tcZd1Rxt.d.mts} +6 -6
  323. package/dist/styles.css +1 -1
  324. package/dist/{template-Byaueo34.d.mts → template-AhCdB1kW.d.mts} +3 -3
  325. package/dist/{template-BXE2L654.d.ts → template-BkEGVTQj.d.ts} +3 -3
  326. package/dist/{terrain-vgYkJPNx.d.ts → terrain-BMxEc6Oc.d.ts} +3 -3
  327. package/dist/{terrain-CR0NQZPl.d.mts → terrain-C-XC1Oui.d.mts} +3 -3
  328. package/dist/testing/msw.d.mts +3 -3
  329. package/dist/testing/msw.d.ts +3 -3
  330. package/dist/testing/msw.js +3 -3
  331. package/dist/testing/msw.mjs +2 -2
  332. package/dist/testing/suite.d.mts +6 -6
  333. package/dist/testing/suite.d.ts +6 -6
  334. package/dist/testing/suite.js +25 -25
  335. package/dist/testing/suite.mjs +6 -6
  336. package/dist/testing.d.mts +5 -5
  337. package/dist/testing.d.ts +5 -5
  338. package/dist/testing.js +117 -117
  339. package/dist/testing.mjs +7 -7
  340. package/dist/{tick-transport-Q_8syS8J.d.mts → tick-transport-C8QEh8Uw.d.mts} +1 -1
  341. package/dist/{tick-transport-xpMcMTs2.d.ts → tick-transport-UjHY3xK1.d.ts} +1 -1
  342. package/dist/{tree-BsXFWKQ6.d.mts → tree-C-Io2Hbx.d.mts} +1 -1
  343. package/dist/{tree-DW9x29Vv.d.ts → tree-CP_qSW4H.d.ts} +1 -1
  344. package/dist/{tycoon-BMAE5Wea.d.mts → tycoon-B5KHk2Xx.d.mts} +5 -5
  345. package/dist/{tycoon-dWvWTbE4.d.ts → tycoon-hmHo-3HX.d.ts} +5 -5
  346. package/dist/{types-AkQEePZo.d.mts → types-BQkxPwZP.d.mts} +1 -1
  347. package/dist/{types-BWaZJDla.d.ts → types-D_f6UUxM.d.ts} +1 -1
  348. package/dist/utils.d.mts +3 -3
  349. package/dist/utils.d.ts +3 -3
  350. package/dist/utils.js +44 -32
  351. package/dist/utils.mjs +2 -2
  352. package/dist/{weave-delivery-3G03LdMM.d.mts → weave-delivery-CW-Kstut.d.mts} +10 -1
  353. package/dist/{weave-delivery-3G03LdMM.d.ts → weave-delivery-CW-Kstut.d.ts} +10 -1
  354. package/dist/{web-C8B9uVx_.d.ts → web-Dss74a7v.d.ts} +7 -7
  355. package/dist/{web-BqSEfX2o.d.mts → web-f9ZQPoyw.d.mts} +7 -7
  356. package/dist/{weight-BDABC8cN.d.ts → weight-CPGjsgjV.d.ts} +3 -3
  357. package/dist/{weight-Cee73u3d.d.mts → weight-tF1ODR1p.d.mts} +3 -3
  358. package/dist/{word-DB2CcI9q.d.mts → word-BcX9Jcmv.d.mts} +3 -3
  359. package/dist/{word-C1Q8oXuy.d.ts → word-C7sVPLHm.d.ts} +3 -3
  360. package/dist/{world-Bmh7K4tQ.d.ts → world-PvILHDR1.d.ts} +1 -1
  361. package/dist/{world-CPEjuctH.d.mts → world-qekkXjJv.d.mts} +1 -1
  362. package/dist/{worlds-ShY5h6Z_.d.ts → worlds-Br2Pb0Cs.d.ts} +6 -6
  363. package/dist/{worlds-CQgN3GnR.d.mts → worlds-D5ydYr7d.d.mts} +6 -6
  364. package/package.json +5 -3
  365. package/registry/cart-summary.json +1 -1
  366. package/registry/chat-widget.json +1 -1
  367. package/registry/price.json +1 -1
  368. package/registry/product-customizer.json +1 -1
  369. package/registry/search-input.json +1 -1
  370. package/dist/chunk-2LKAOU3L.mjs +0 -96
  371. package/dist/chunk-UWPQL2IQ.js +0 -104
  372. package/dist/fallback-Q5YYIMVJ.js +0 -20
  373. package/dist/fallback-XGBE3RXC.mjs +0 -7
  374. package/dist/index-C3KORE2U.d.mts +0 -86
  375. package/dist/index-Cv_rL5X0.d.ts +0 -86
  376. package/dist/split-Di9wBpNx.d.mts +0 -68
  377. package/dist/split-Di9wBpNx.d.ts +0 -68
@@ -1,9 +1,9 @@
1
- import { thirdPersonCharacter, TOUCH_CONTROLS } from './chunk-AEEF3T2E.mjs';
1
+ import { thirdPersonCharacter, TOUCH_CONTROLS } from './chunk-ZCY6YKKP.mjs';
2
2
  import { KitError } from './chunk-4DYKAYFO.mjs';
3
3
  import { BoxBatch } from './chunk-QDYFLATW.mjs';
4
- import { digestFloats, templateFrameStamp } from './chunk-KVZSYGTX.mjs';
5
- import { FOLLOW_YAW, CHAR_SPEED } from './chunk-WXDVEXTW.mjs';
6
- import { CENTERED_MAX_EXTENT, CENTERED_FIXED_UNITS, STAGE_X, STAGE_TIME } from './chunk-HF2MZKP2.mjs';
4
+ import { digestFloats, templateFrameStamp } from './chunk-KGHJH5KJ.mjs';
5
+ import { FOLLOW_YAW, CHAR_SPEED } from './chunk-ECDK6QBF.mjs';
6
+ import { CENTERED_MAX_EXTENT, CENTERED_FIXED_UNITS, STAGE_X, STAGE_TIME } from './chunk-22BD3RHN.mjs';
7
7
  import { __export } from './chunk-25T4JHEA.mjs';
8
8
 
9
9
  // src/game/kit/blocks/pickups.ts
@@ -1,9 +1,9 @@
1
1
  import { Animation } from './chunk-KDTVOLHI.mjs';
2
2
  import { GameNet } from './chunk-RM2V4IND.mjs';
3
- import { SeededRandom, setLoopEngine, loopEngineOf, crumpleDesc, StreamPredictor, drainSource, InputActions, SoftBodies, Cloths } from './chunk-HF2MZKP2.mjs';
4
- import { defineComponent, ComponentStore, Graphics, GameMeters } from './chunk-S75PBSSL.mjs';
5
- import { PrefetchLayer } from './chunk-6YVELDFK.mjs';
6
- import { PlainSpawns, NativeKernels, reportSpawns, BUILTIN_INPUTS, DEFAULT_EXTENTS, WATER_SAMPLE_WORDS, seaDesc, WaterSample, VEHICLE_DESC_WORDS, checkColliderClass, NO_CONTACT_RULE, encodeVehicleDesc, Vehicle, TableSpawns, MAX_CORNERS, mix, mixWith, sampleCurve, TAU, PI, wrapAngle, validateCurve, Water, STORY_MAX_INPUTS, STORY_INPUT_WORDS, STORY_VARIABLES, STORY_TEXT_VARIABLE, STORY_NONE, STORY_EVENT_COUNT, STORY_EVENT_RULE, STORY_EVENT_FINISHED, STORY_EVENT_KEY, STORY_EVENT_LOGIC, STORY_EVENT_REFUSED, STORY_EVENT_TAKEN, STORY_EVENT_OFFERED, STORY_EVENT_ENTERED, STORY_INPUT_CHOOSE, STORY_INPUT_INTERACT, STORY_INPUT_GIFT, STORY_TEXT_CHOICE, STORY_TEXT_BEAT, STORY_TEXT_SCENE, STORY_TEXT_ACTOR, STORY_TEXT_KEY, STORY_TEXT_RULE, STORY_TEXT_ACTION, STORY_ID_TRACK, STORY_SAMPLE_COUNT, STORY_BEAT, STORY_SCENE, STORY_BEAT_TICK, STORY_SCENE_TICK, STORY_SCENE_LENGTH, STORY_TICK_RATE, STORY_FLAGS, STORY_STARTED, STORY_FINISHED, STORY_DIGEST, sinCos, Basis, atan2, AIR_DENSITY, STORY_PERSIST_SHIFT, STORY_TYPE_MASK, STORY_EVENT_WORDS, STORY_SAMPLE_WORDS } from './chunk-765P2G7G.mjs';
3
+ import { SeededRandom, setLoopEngine, loopEngineOf, crumpleDesc, StreamPredictor, drainSource, InputActions, SoftBodies, Cloths } from './chunk-22BD3RHN.mjs';
4
+ import { defineComponent, ComponentStore, Graphics, GameMeters } from './chunk-ME6HGG4I.mjs';
5
+ import { PrefetchLayer } from './chunk-5BYDGGWO.mjs';
6
+ import { PlainSpawns, NativeKernels, reportSpawns, BUILTIN_INPUTS, DEFAULT_EXTENTS, WATER_SAMPLE_WORDS, seaDesc, WaterSample, VEHICLE_DESC_WORDS, checkColliderClass, NO_CONTACT_RULE, encodeVehicleDesc, Vehicle, TableSpawns, MAX_CORNERS, mix, mixWith, sampleCurve, TAU, PI, wrapAngle, validateCurve, Water, STORY_MAX_INPUTS, STORY_INPUT_WORDS, STORY_VARIABLES, STORY_TEXT_VARIABLE, STORY_NONE, STORY_EVENT_COUNT, STORY_EVENT_RULE, STORY_EVENT_FINISHED, STORY_EVENT_KEY, STORY_EVENT_LOGIC, STORY_EVENT_REFUSED, STORY_EVENT_TAKEN, STORY_EVENT_OFFERED, STORY_EVENT_ENTERED, STORY_INPUT_CHOOSE, STORY_INPUT_INTERACT, STORY_INPUT_GIFT, STORY_TEXT_CHOICE, STORY_TEXT_BEAT, STORY_TEXT_SCENE, STORY_TEXT_ACTOR, STORY_TEXT_KEY, STORY_TEXT_RULE, STORY_TEXT_ACTION, STORY_ID_TRACK, STORY_SAMPLE_COUNT, STORY_BEAT, STORY_SCENE, STORY_BEAT_TICK, STORY_SCENE_TICK, STORY_SCENE_LENGTH, STORY_TICK_RATE, STORY_FLAGS, STORY_STARTED, STORY_FINISHED, STORY_DIGEST, sinCos, Basis, atan2, AIR_DENSITY, STORY_PERSIST_SHIFT, STORY_TYPE_MASK, STORY_EVENT_WORDS, STORY_SAMPLE_WORDS } from './chunk-RUVGVNOF.mjs';
7
7
  import { RayQuery, RayHit, DEFAULT_SOLVER_ITERATIONS, DEFAULT_PGS_ITERATIONS, DEFAULT_CCD_SUBSTEPS, DEFAULT_SLEEP_LINEAR, DEFAULT_SLEEP_ANGULAR, DEFAULT_SLEEP_SECONDS, MAX_SOLVER_ITERATIONS, MAX_PGS_ITERATIONS, MAX_CCD_SUBSTEPS } from './chunk-HF5HPS4T.mjs';
8
8
  import { strideFor, columnBytes, ShapeCastQuery, bindSoaEngine, Vec3, Quat, kindBytes } from './chunk-XPG3N5CF.mjs';
9
9
  import { HEAP_MEMORY } from './chunk-7SXOHAIR.mjs';
@@ -11,17 +11,17 @@ import { EntityRegistry, entityIndex, NO_ENTITY } from './chunk-T3AFF3L7.mjs';
11
11
  import { createPickHit } from './chunk-TL2SVO4P.mjs';
12
12
  import { FRAME_STEP_SECONDS_SLOT, FRAME_TICK_SLOT, FRAME_SECONDS_SLOT, FixedStepLoop, FRAME_ALPHA_SLOT, FRAME_NOW_MS_SLOT } from './chunk-IDLW4NWA.mjs';
13
13
  import { inspectSceneSwitch, inspectSceneEntered, inspectScene } from './chunk-73SGZLAQ.mjs';
14
- import { NO_FIELDS, CPU_BACKENDS, emptyEstimate, GpuKernels, KernelRouter, fillSetEstimate, hostEngine, SET_ROW_BOUND, KERNEL_TABLE_PREFIX, KERNEL_ARRAY_PREFIX, kernelArrayNamed } from './chunk-5IRV36MS.mjs';
14
+ import { NO_FIELDS, CPU_BACKENDS, emptyEstimate, GpuKernels, KernelRouter, fillSetEstimate, hostEngine, SET_ROW_BOUND, KERNEL_TABLE_PREFIX, KERNEL_ARRAY_PREFIX, kernelArrayNamed } from './chunk-EIB4OWVQ.mjs';
15
15
  import { setLockstepKernelHost } from './chunk-PBL6YL5L.mjs';
16
- import { transformEngine, EngineBuffer, analyserSettings, emitRow, KERNEL_PRIORITIES, ComputeMonitor, priorityLevel, hasData, STREAM_EYE_FLOATS, STREAM_COLLIDER_FLOATS, STREAM_ACTOR_FLOATS, STREAM_PRIORITY_NOW, STREAM_PRIORITY_SOON, STREAM_START_PACK, STREAM_PACK_REQUESTS, STREAM_MAX_PACK_REQUESTS, STREAM_REQUEST_LIST, STREAM_PACK_MASK, STREAM_PRIORITY_SHIFT, STREAM_PACK_RELEASES, STREAM_MAX_PACK_RELEASES, STREAM_RELEASE_LIST, STREAM_PACK_CONTENDED, STREAM_OP_INSERT, TIER_INDEX, STREAM_LAZY_PACKS_FLAG, FLUID_DESC_FLOATS, FLUID_SURFACE_FLOATS, FLUID_EMITTER_FLOATS, FLUID_COLLIDER_FLOATS, FLUID_MAX_COLLIDERS, FLUID_FORCE_FLOATS, FLUID_MAX_EMITTERS, FLUID_CAP_SIMULATION, FLUID_COLLIDER_VOLUME, REACTIVE_GRID, REACTIVE_ORIGIN, REACTIVE_CELL, REACTIVE_LIQUID, REACTIVE_LIQUID_KELVIN, REACTIVE_PARCELS, REACTIVE_CONTACT, REACTIVE_COUPLING, REACTIVE_MAX_PAIRS, REACTIVE_SEED_LOW, REACTIVE_SEED_HIGH, REACTIVE_SMOKE_SPECIES, REACTIVE_SMOKE, REACTIVE_GLOW_FROM_K, REACTIVE_GLOW_FULL_K, REACTIVE_SMOKE_FULL, REACTIVE_FLAME_EXTINCTION, REACTIVE_PLUME_FROM_K, REACTIVE_CAPACITY, HOB_FIRST, HOB_LAST, HOB_LAYERS, HOB_METAL, HOB_START_K, HOB_PAN_K, HOB_PAN_JOULES, HOB_FLAME_K, HOB_FLAME_JOULES, HOB_FLAME_LAYERS, REACTIVE_MAX_STEP_SECONDS, REACTIVE_PARTICLES, REACTIVE_PLUME_COUNT, REACTIVE_MAX_PLUMES, PLUME_CELL, PLUME_KELVIN, PLUME_SMOKE, PLUME_WORLD, REACTIVE_TICK_LOW, REACTIVE_TICK_HIGH, REACTIVE_PAIRS, REACTIVE_DROPPED_PAIRS, REACTIVE_FIRED, REACTIVE_VENTED, REACTIVE_RETIRED, REACTIVE_PAN_K, REACTIVE_BURNING, REACTIVE_SMOKY, REACTIVE_HOTTEST_K, REACTIVE_LIT, DESTRUCT_KIND_INTACT_LOST, DESTRUCT_KIND_BREAK, DESTRUCT_KIND_REMOVE, DESTRUCT_KIND_RETIRE, DESTRUCT_KIND_BOND, DESTRUCT_DESC_FLOATS, FLUID_FORCE_WORDS, REACTIVE_DESC_WORDS, HOB_DESC_WORDS, REACTIVE_PLUMES, REACTIVE_PLUME_WORDS, dataTables, scalarArgs, dataColumn, writeWideArg, bindData, reportData, routeEvents, computeLogLine, STREAM_REGISTER, REACTIVE_MAX_EDGE, SMOKE_MAX_EMITTERS, SMOKE_TINTED_EMITTER_FLOATS, DESTRUCT_EVENT_WORDS, setEmitRow, SMOKE_DESC_FLOATS, SMOKE_TINT_AT, f64Bits, u64Words, REACTIVE_MAX_PREHEAT_TICKS } from './chunk-7GG4KNTL.mjs';
17
- import { DISTANCE_MODELS, DEFAULT_PANNER, SPATIAL_MODEL, SPATIAL_REF_DISTANCE, SPATIAL_MAX_DISTANCE, SPATIAL_ROLLOFF, SPATIAL_CONE_INNER, SPATIAL_CONE_OUTER, SPATIAL_CONE_OUTER_GAIN, SPATIAL_DOPPLER, OCCLUSION_WORDS, SPATIAL_WORDS, DEFAULT_PRIORITY, DEFAULT_OCCLUSION, UNLIMITED_VOICES, STEAL_POLICIES, FILTER_OFF, DEFAULT_LIMITER_CEILING_DB, DEFAULT_LIMITER_RELEASE_SECONDS, ANALYSER_FREQUENCY, ANALYSER_TIME, DEFAULT_EMITTER_CAPACITY, MAX_STEMS, MUSIC_POSITION_WORDS, MIN_PRIORITY, MAX_PRIORITY, FILTER_KINDS, EMITTER_COLUMNS, NO_EMITTER_COLUMN, EMITTER_GAIN, EMITTER_PITCH, QUANTIZE_NOW, QUANTIZE_BEAT, QUANTIZE_BAR, EMITTER_X, EMITTER_VX } from './chunk-4A24F4ZV.mjs';
16
+ import { transformEngine, EngineBuffer, analyserSettings, emitRow, KERNEL_PRIORITIES, ComputeMonitor, priorityLevel, hasData, STREAM_EYE_FLOATS, STREAM_COLLIDER_FLOATS, STREAM_ACTOR_FLOATS, STREAM_PRIORITY_NOW, STREAM_PRIORITY_SOON, STREAM_START_PACK, STREAM_PACK_REQUESTS, STREAM_MAX_PACK_REQUESTS, STREAM_REQUEST_LIST, STREAM_PACK_MASK, STREAM_PRIORITY_SHIFT, STREAM_PACK_RELEASES, STREAM_MAX_PACK_RELEASES, STREAM_RELEASE_LIST, STREAM_PACK_CONTENDED, STREAM_OP_INSERT, TIER_INDEX, STREAM_LAZY_PACKS_FLAG, FLUID_DESC_FLOATS, FLUID_SURFACE_FLOATS, FLUID_EMITTER_FLOATS, FLUID_COLLIDER_FLOATS, FLUID_MAX_COLLIDERS, FLUID_FORCE_FLOATS, FLUID_MAX_EMITTERS, FLUID_CAP_SIMULATION, FLUID_COLLIDER_VOLUME, REACTIVE_GRID, REACTIVE_ORIGIN, REACTIVE_CELL, REACTIVE_LIQUID, REACTIVE_LIQUID_KELVIN, REACTIVE_PARCELS, REACTIVE_CONTACT, REACTIVE_COUPLING, REACTIVE_MAX_PAIRS, REACTIVE_SEED_LOW, REACTIVE_SEED_HIGH, REACTIVE_SMOKE_SPECIES, REACTIVE_SMOKE, REACTIVE_GLOW_FROM_K, REACTIVE_GLOW_FULL_K, REACTIVE_SMOKE_FULL, REACTIVE_FLAME_EXTINCTION, REACTIVE_PLUME_FROM_K, REACTIVE_CAPACITY, HOB_FIRST, HOB_LAST, HOB_LAYERS, HOB_METAL, HOB_START_K, HOB_PAN_K, HOB_PAN_JOULES, HOB_FLAME_K, HOB_FLAME_JOULES, HOB_FLAME_LAYERS, REACTIVE_MAX_STEP_SECONDS, REACTIVE_PARTICLES, REACTIVE_PLUME_COUNT, REACTIVE_MAX_PLUMES, PLUME_CELL, PLUME_KELVIN, PLUME_SMOKE, PLUME_WORLD, REACTIVE_TICK_LOW, REACTIVE_TICK_HIGH, REACTIVE_PAIRS, REACTIVE_DROPPED_PAIRS, REACTIVE_FIRED, REACTIVE_VENTED, REACTIVE_RETIRED, REACTIVE_PAN_K, REACTIVE_BURNING, REACTIVE_SMOKY, REACTIVE_HOTTEST_K, REACTIVE_LIT, DESTRUCT_KIND_INTACT_LOST, DESTRUCT_KIND_BREAK, DESTRUCT_KIND_REMOVE, DESTRUCT_KIND_RETIRE, DESTRUCT_KIND_BOND, DESTRUCT_DESC_FLOATS, FLUID_FORCE_WORDS, REACTIVE_DESC_WORDS, HOB_DESC_WORDS, REACTIVE_PLUMES, REACTIVE_PLUME_WORDS, dataTables, scalarArgs, dataColumn, writeWideArg, bindData, reportData, routeEvents, computeLogLine, STREAM_REGISTER, REACTIVE_MAX_EDGE, SMOKE_MAX_EMITTERS, SMOKE_TINTED_EMITTER_FLOATS, DESTRUCT_EVENT_WORDS, setEmitRow, SMOKE_DESC_FLOATS, SMOKE_TINT_AT, f64Bits, u64Words, REACTIVE_MAX_PREHEAT_TICKS } from './chunk-E65WCTIG.mjs';
17
+ import { DISTANCE_MODELS, DEFAULT_PANNER, SPATIAL_MODEL, SPATIAL_REF_DISTANCE, SPATIAL_MAX_DISTANCE, SPATIAL_ROLLOFF, SPATIAL_CONE_INNER, SPATIAL_CONE_OUTER, SPATIAL_CONE_OUTER_GAIN, SPATIAL_DOPPLER, OCCLUSION_WORDS, SPATIAL_WORDS, DEFAULT_PRIORITY, DEFAULT_OCCLUSION, UNLIMITED_VOICES, STEAL_POLICIES, FILTER_OFF, DEFAULT_LIMITER_CEILING_DB, DEFAULT_LIMITER_RELEASE_SECONDS, ANALYSER_FREQUENCY, ANALYSER_TIME, DEFAULT_EMITTER_CAPACITY, MAX_STEMS, MUSIC_POSITION_WORDS, MIN_PRIORITY, MAX_PRIORITY, FILTER_KINDS, EMITTER_COLUMNS, NO_EMITTER_COLUMN, EMITTER_GAIN, EMITTER_PITCH, QUANTIZE_NOW, QUANTIZE_BEAT, QUANTIZE_BAR, EMITTER_X, EMITTER_VX } from './chunk-5YFBGGCK.mjs';
18
18
  import './chunk-K4UDGE3Z.mjs';
19
19
  import { curve, lut1, lut2, sample, parseProgram, KernelVm, STORAGE_U32, STORAGE_F32, STORAGE_I32, STORAGE_U8, CellGrid, QuerySearch } from './chunk-MOBSBXVE.mjs';
20
20
  import { cos, sin, f32Bits, SAMPLE_NEAREST, SAMPLE_BILINEAR, SAMPLE_NORMAL_Z, SAMPLE_NORMAL_Y, SAMPLE_NORMAL_X, SERVICE_SIGNATURES, curveWords, LUT_LINEAR, LUT_WRAP, ACCESS_INDEXED, crossRow, stageEndingOp, Op, QUERY_SPHERE, STATUS_FAILURE, STATUS_SUCCESS, STATUS_RUNNING, QFILTER_EQUAL, QFILTER_ANY, QFILTER_NONE, ACCESS_ARRAY, QUERY_CONE, QUERY_BOX, QUERY_SEGMENT, XOP, XOP_GATHER } from './chunk-SMK6JU2F.mjs';
21
21
  import { readinessFrame } from './chunk-LYEZZEEF.mjs';
22
- import { METER_REPORT_FRAMES, meterScriptHeap, reportMeters, watchMeters, onStudio, sendToStudio } from './chunk-LMK775I4.mjs';
22
+ import { METER_REPORT_FRAMES, meterScriptHeap, reportMeters, watchMeters, onStudio, sendToStudio } from './chunk-HAGEIC2L.mjs';
23
23
  import { prefetchDepth } from './chunk-K46SMZ66.mjs';
24
- import { ChunkPriority } from './chunk-URRZ2SMI.mjs';
24
+ import { ChunkPriority } from './chunk-V7ZRH3PY.mjs';
25
25
  import { EngineInspector } from './chunk-MOMOZEUM.mjs';
26
26
  import { GameError } from './chunk-XJIHN3BY.mjs';
27
27
  import { __export } from './chunk-25T4JHEA.mjs';
@@ -1,6 +1,6 @@
1
1
  import { CHECKOUT_STATUS, SAVE_DETAILS_CONSENT, CHECKOUT_NEXT_ACTION, CHECKOUT_ORDER_RESULT_STATUS, ORDER_TYPE, PAYMENT_METHOD, AUTHORIZATION_TYPE } from './chunk-E6QQKDNE.mjs';
2
- import { paymentAuthorizationUrl, purchaseIntentMobileMoneyNetwork } from './chunk-6ETDAU62.mjs';
3
- import { ErrorCode, PURCHASE_INTENT_RESOLVE_STATUS, CimplifyError, PAYMENT_OPTION_STATUS, CHECKOUT_TERMS_DELTA_KIND, isSupportedCurrency, PURCHASE_INTENT_CONFIRM_STATUS, PURCHASE_INTENT_ACTION_DECISION, PURCHASE_INTENT_RESOLUTION_KIND, PURCHASE_INTENT_ERROR_CODE, enrichError, LEGACY_CHECKOUT_PAYMENT_METHOD_ALIAS, PURCHASE_INTENT_PAYMENT_METHOD, PURCHASE_INTENT_SOURCE_KIND, LEGACY_CHECKOUT_PAYMENT_STATUS, getErrorHint, MOBILE_MONEY_TENDER_AUTHORITY_KIND } from './chunk-GCKWKLZF.mjs';
2
+ import { paymentAuthorizationUrl, purchaseIntentMobileMoneyNetwork } from './chunk-B45X3HPO.mjs';
3
+ import { ErrorCode, PURCHASE_INTENT_RESOLVE_STATUS, CimplifyError, PAYMENT_OPTION_STATUS, CHECKOUT_TERMS_DELTA_KIND, isSupportedCurrency, PURCHASE_INTENT_CONFIRM_STATUS, PURCHASE_INTENT_ACTION_DECISION, PURCHASE_INTENT_RESOLUTION_KIND, PURCHASE_INTENT_ERROR_CODE, enrichError, LEGACY_CHECKOUT_PAYMENT_METHOD_ALIAS, PURCHASE_INTENT_PAYMENT_METHOD, PURCHASE_INTENT_SOURCE_KIND, LEGACY_CHECKOUT_PAYMENT_STATUS, getErrorHint, MOBILE_MONEY_TENDER_AUTHORITY_KIND } from './chunk-FT6GFYJL.mjs';
4
4
 
5
5
  // src/types/result.ts
6
6
  function ok(value) {
@@ -131,6 +131,12 @@ function withQuery(path, params) {
131
131
  function isRecord(value) {
132
132
  return typeof value == "object" && value !== null;
133
133
  }
134
+ function isProductPayload(value) {
135
+ return isRecord(value) && typeof value.id == "string" && typeof value.name == "string";
136
+ }
137
+ function isCategoryPayload(value) {
138
+ return isRecord(value) && typeof value.id == "string" && typeof value.name == "string" && typeof value.slug == "string";
139
+ }
134
140
  function readFinalPrice(value) {
135
141
  if (!isRecord(value)) return;
136
142
  let finalPrice = value.final_price;
@@ -160,15 +166,17 @@ function normalizeAddOnPayload(addOn) {
160
166
  }), normalizedAddOn;
161
167
  }
162
168
  function normalizeCatalogueProductPayload(product) {
163
- let productRecord = product, defaultPrice = productRecord.default_price, addOns = productRecord.add_ons, needsPriceFix = needsDefaultPriceNormalization(defaultPrice), needsAddOnFix = Array.isArray(addOns) && addOns.some((addOn) => addOnNeedsNormalization(addOn));
169
+ if (!isRecord(product))
170
+ return product;
171
+ let defaultPrice = product.default_price, addOns = product.add_ons, needsPriceFix = needsDefaultPriceNormalization(defaultPrice), needsAddOnFix = Array.isArray(addOns) && addOns.some((addOn) => addOnNeedsNormalization(addOn));
164
172
  if (!needsPriceFix && !needsAddOnFix)
165
173
  return product;
166
- let normalized = { ...productRecord };
174
+ let normalized = {};
167
175
  if (needsPriceFix) {
168
- let derivedDefaultPrice = readFinalPrice(normalized.default_price_info) || readFinalPrice(normalized.price_info) || (typeof normalized.final_price == "string" || typeof normalized.final_price == "number" ? normalized.final_price : void 0);
169
- normalized.default_price = derivedDefaultPrice ?? "0";
176
+ let derivedDefaultPrice = readFinalPrice(product.default_price_info) || readFinalPrice(product.price_info) || (typeof product.final_price == "string" || typeof product.final_price == "number" ? product.final_price : void 0);
177
+ derivedDefaultPrice !== void 0 && (normalized.default_price = derivedDefaultPrice);
170
178
  }
171
- return needsAddOnFix && Array.isArray(addOns) && (normalized.add_ons = addOns.map((addOn) => normalizeAddOnPayload(addOn))), normalized;
179
+ return needsAddOnFix && Array.isArray(addOns) && (normalized.add_ons = addOns.map((addOn) => normalizeAddOnPayload(addOn))), Object.assign({}, product, normalized);
172
180
  }
173
181
  function toFiniteNumber(value) {
174
182
  if (typeof value == "number" && Number.isFinite(value))
@@ -267,8 +275,17 @@ var CatalogueQueries = class {
267
275
  this.client.get(`/api/v1/catalogue/products/${encodedId}`, opts)
268
276
  );
269
277
  if (!result.ok) return result;
270
- let payload = result.value, rawProduct = isRecord(payload.item) ? payload.item : payload, product = normalizeCatalogueProductPayload(rawProduct);
271
- isRecord(payload.category) && (product.category = payload.category);
278
+ let payload = result.value, rawProduct = isRecord(payload) && isRecord(payload.item) ? payload.item : payload;
279
+ if (!isProductPayload(rawProduct))
280
+ return err(
281
+ new CimplifyError(
282
+ ErrorCode.UNKNOWN_ERROR,
283
+ `Product ${id} came back without an id or name`,
284
+ false
285
+ )
286
+ );
287
+ let product = normalizeCatalogueProductPayload(rawProduct);
288
+ isRecord(payload) && isCategoryPayload(payload.category) && (product.category = payload.category);
272
289
  let addOnIds = rawProduct.add_on_ids;
273
290
  if (Array.isArray(addOnIds) && addOnIds.length > 0) {
274
291
  let addOnsResult = await this.getAddOns(product.id, opts);
@@ -3,7 +3,7 @@ import { softCurrency, faucet } from './chunk-3DAD2LDF.mjs';
3
3
  import { ScreenShake, HitStop, SHAKE_X, SHAKE_Y, SHAKE_Z } from './chunk-2UN4SFLR.mjs';
4
4
  import { Springs } from './chunk-A7MQSN2V.mjs';
5
5
  import { addSceneCamera, BoxBatch, BOX_X, BOX_Y, BOX_SX, BOX_SY, BOX_SZ, BOX_Z } from './chunk-QDYFLATW.mjs';
6
- import { templateFrameStamp, digestFloats } from './chunk-KVZSYGTX.mjs';
6
+ import { templateFrameStamp, digestFloats } from './chunk-KGHJH5KJ.mjs';
7
7
  import { boxGeometry } from './chunk-GHPUYD4I.mjs';
8
8
  import { FRAME_STEP_SECONDS_SLOT, FRAME_SECONDS_SLOT } from './chunk-IDLW4NWA.mjs';
9
9
  import { __export } from './chunk-25T4JHEA.mjs';
@@ -1,10 +1,10 @@
1
- import { TARGET_HZ, FLOW_WORDS, PrefetchLayer, FLOW_BACKLOG, FLOW_DELIVERED, SMOOTH_SHARE, STUTTER_SHARE, HOT_BUSY_SHARE, HOT_PRESSURE, WARM_BUSY_SHARE, WARM_PRESSURE, isCalibrated, passCauses, MEMORY_CEILING_BYTES, rankCauses, TIGHT_MEMORY_SHARE, calibrationFor } from './chunk-6YVELDFK.mjs';
1
+ import { TARGET_HZ, FLOW_WORDS, PrefetchLayer, FLOW_BACKLOG, FLOW_DELIVERED, SMOOTH_SHARE, STUTTER_SHARE, HOT_BUSY_SHARE, HOT_PRESSURE, WARM_BUSY_SHARE, WARM_PRESSURE, isCalibrated, passCauses, MEMORY_CEILING_BYTES, rankCauses, TIGHT_MEMORY_SHARE, calibrationFor } from './chunk-5BYDGGWO.mjs';
2
2
  import { HEAP_MEMORY } from './chunk-7SXOHAIR.mjs';
3
3
  import { MediumVolume } from './chunk-ATAWRACV.mjs';
4
4
  import { entityIndex, NO_ENTITY } from './chunk-T3AFF3L7.mjs';
5
5
  import { SH_COEFFICIENT_FLOATS, GPU_PASS_NAMES, createGpuStats } from './chunk-TL2SVO4P.mjs';
6
6
  import { FRAME_SECONDS_SLOT } from './chunk-IDLW4NWA.mjs';
7
- import { SCENERY_REGISTER, createVectorSurfaceStats } from './chunk-7GG4KNTL.mjs';
7
+ import { SCENERY_REGISTER, createVectorSurfaceStats } from './chunk-E65WCTIG.mjs';
8
8
  import './chunk-K4UDGE3Z.mjs';
9
9
  import { reusingDefinitions } from './chunk-K46SMZ66.mjs';
10
10
  import { GameError } from './chunk-XJIHN3BY.mjs';
@@ -108,7 +108,7 @@ var ComponentStore = class {
108
108
  };
109
109
 
110
110
  // src/game/scenery/scenery.ts
111
- var SCENERY_MANIFEST_MAGIC = 1297109827, SCENERY_MANIFEST_VERSION = 1, SCENERY_MANIFEST_VERSION_PARTS = 2, SCENERY_PART_WHOLE = 255, SCENERY_PART_COARSE = 0, SCENERY_PART_MIDDLE = 1, SCENERY_PART_FINE = 2, PART_FIELD = 20, PART_MASK = 255, GROUP_SHIFT = 8, SCENERY_LEVEL_STEP = 3, SCENERY_CHUNK_EXTENSION = ".cspl", HEADER_BYTES = 32, ENTRY_BYTES = 80, DIGEST_OFFSET = 48, DIGEST_BYTES = 32, VERSION_FIELD = 4, COUNT_FIELD = 8, CELL_SIZE_FIELD = 12, ORIGIN_X_FIELD = 16, ORIGIN_Z_FIELD = 20, COLS_FIELD = 24, ROWS_FIELD = 28, KIB = 1024, HEX_RADIX = 16, BYTE_VALUES = 256, ABSOLUTE = /^[a-z][a-z0-9+.-]*:/i, HEX = Array.from({ length: (256) }, (_, i) => i.toString((16)).padStart(2, "0")), CLOSED_REGISTERS = new Uint32Array(16);
111
+ var DEFAULT_MOTION_OFFSET = ["dx", "dy", "dz"], DEFAULT_MOTION_REST = ["rx", "ry", "rz"], MILLIMETRES_PER_METRE = 1e3, NO_RIG = 0, SCENERY_MANIFEST_MAGIC = 1297109827, SCENERY_MANIFEST_VERSION = 1, SCENERY_MANIFEST_VERSION_PARTS = 2, SCENERY_PART_WHOLE = 255, SCENERY_PART_COARSE = 0, SCENERY_PART_MIDDLE = 1, SCENERY_PART_FINE = 2, PART_FIELD = 20, PART_MASK = 255, GROUP_SHIFT = 8, SCENERY_LEVEL_STEP = 3, SCENERY_CHUNK_EXTENSION = ".cspl", HEADER_BYTES = 32, ENTRY_BYTES = 80, DIGEST_OFFSET = 48, DIGEST_BYTES = 32, VERSION_FIELD = 4, COUNT_FIELD = 8, CELL_SIZE_FIELD = 12, ORIGIN_X_FIELD = 16, ORIGIN_Z_FIELD = 20, COLS_FIELD = 24, ROWS_FIELD = 28, KIB = 1024, HEX_RADIX = 16, BYTE_VALUES = 256, ABSOLUTE = /^[a-z][a-z0-9+.-]*:/i, HEX = Array.from({ length: (256) }, (_, i) => i.toString((16)).padStart(2, "0")), CLOSED_REGISTERS = new Uint32Array(20);
112
112
  function sceneryPartDrawLevel(part) {
113
113
  return part === (1) ? 1 : part === (2) ? 0 : 2;
114
114
  }
@@ -319,8 +319,20 @@ var SceneryChunks = class {
319
319
  get updates() {
320
320
  return this.read()[SCENERY_REGISTER.updates];
321
321
  }
322
+ get heroSplats() {
323
+ return this.read()[SCENERY_REGISTER.heroSplats];
324
+ }
325
+ get heroShed() {
326
+ return this.read()[SCENERY_REGISTER.heroShed];
327
+ }
328
+ get standIn() {
329
+ return this.read()[SCENERY_REGISTER.standIn] !== 0;
330
+ }
331
+ get deformedSplats() {
332
+ return this.read()[SCENERY_REGISTER.deformedSplats];
333
+ }
322
334
  }, Scenery = class {
323
- constructor(port, handle, manifest, chunkPaths, chunks, owner) {
335
+ constructor(port, handle, manifest, chunkPaths, chunks, owner, options = {}) {
324
336
  this.port = port;
325
337
  this.handle = handle;
326
338
  this.chunkPaths = chunkPaths;
@@ -336,6 +348,13 @@ var SceneryChunks = class {
336
348
  this.waiting = 0;
337
349
  this.flow = new Float64Array(FLOW_WORDS);
338
350
  this.closed = false;
351
+ this.editValues = new Float32Array(3);
352
+ this.standing = false;
353
+ this.kernel = null;
354
+ if (this.regionNames = options.regions ?? {}, this.standInTarget = options.standIn ?? null, options.heroBudget !== void 0) {
355
+ let caps = new Uint32Array(3);
356
+ caps.set(options.heroBudget), this.bodyPort().heroBudget(handle, caps);
357
+ }
339
358
  this.grid = manifest.grid, this.stats = new Stats(() => this.view());
340
359
  let rows = chunkPaths.length;
341
360
  this.engineState = new Uint8Array(rows), this.entryRow = sceneryEntryRows(manifest, rows), this.rowBytes = manifest.bytes, this.rowPart = manifest.parts ?? new Uint8Array(rows).fill((255)), this.rowSphere = new Float32Array(rows * (4));
@@ -395,6 +414,66 @@ var SceneryChunks = class {
395
414
  let t = this.transform;
396
415
  t[0] = position.x, t[1] = position.y, t[2] = position.z, t[3] = rotation?.x ?? 0, t[4] = rotation?.y ?? 0, t[5] = rotation?.z ?? 0, t[6] = rotation?.w ?? 1, t[7] = scale, this.port.setTransform(this.handle, t), this.layer.setPlacement(t);
397
416
  }
417
+ bodyPort() {
418
+ let bodies = this.port.bodies;
419
+ if (bodies == null) throw new GameError("unsupported_feature", "this engine build does not move or edit splats");
420
+ return bodies;
421
+ }
422
+ regionOf(region) {
423
+ let id = typeof region == "string" ? this.regionNames[region] : region;
424
+ if (id === void 0 || !Number.isInteger(id) || id < 0 || id >= 256) throw new GameError("invalid_argument", `no splat region ${String(region)}`);
425
+ return id;
426
+ }
427
+ /** Recolours one baked region without recapture: hue in radians, saturation and gain as multipliers. */
428
+ edit(region, edit) {
429
+ if (this.closed) return;
430
+ let v = this.editValues;
431
+ if (v[0] = edit.hue ?? 0, v[1] = edit.saturation ?? 1, v[2] = edit.gain ?? 1, !(v[1] >= 0) || !(v[2] >= 0) || !Number.isFinite(v[0])) throw new GameError("invalid_argument", "a splat edit needs a finite hue and non-negative saturation and gain");
432
+ this.bodyPort().edit(this.handle, this.regionOf(region), v);
433
+ }
434
+ /** Drives this body from a model's pose on the rig it was baked against; null returns it to rest. Throws when the rig differs. */
435
+ bind(rig) {
436
+ this.closed || this.bodyPort().bind(this.handle, rig ?? (0));
437
+ }
438
+ /** Splats in garment region `region` follow `cloth`, which must use the mesh the region was baked with. It may be called at any point in the cloth's run. */
439
+ drape(cloth, region, options = {}) {
440
+ if (this.closed) return;
441
+ let host = cloth.engineHost;
442
+ if (host === null) throw new GameError("unsupported_feature", "this cloth is not simulated by the engine");
443
+ this.bodyPort().drape(this.handle, host, cloth.id, this.regionOf(region), options.rest ?? null);
444
+ }
445
+ /** Rows a motion table needs: one for every splat in the manifest, across all levels of detail. */
446
+ get motionRows() {
447
+ return this.closed ? 0 : this.bodyPort().motionRows(this.handle);
448
+ }
449
+ /**
450
+ * Runs a per-splat program. `kernel` is called once a frame, normally `() => game.kernels.run(wave, table, time)`;
451
+ * the engine reads what it writes before deforming, and pays only for the channels named here. Pass null to stop.
452
+ */
453
+ motion(kernel, options) {
454
+ if (this.closed) return;
455
+ let bodies = this.bodyPort();
456
+ if (kernel === null || options === void 0) {
457
+ this.kernel = null, bodies.motion(this.handle, 0, null, 0, 0);
458
+ return;
459
+ }
460
+ let table = options.table, named = options.rotation !== void 0 || options.colour !== void 0 || options.opacity !== void 0, offset = options.offset ?? (named ? void 0 : DEFAULT_MOTION_OFFSET), mask = 0, names = [...options.rest ?? DEFAULT_MOTION_REST], channel = (bit, fields) => {
461
+ fields !== void 0 && (mask |= bit, names.push(...fields));
462
+ };
463
+ channel(1, offset), channel(2, options.rotation), channel(4, options.colour), channel(8, options.opacity === void 0 ? void 0 : [options.opacity]);
464
+ let columns = new Uint32Array(14);
465
+ if (names.forEach((name, k) => {
466
+ columns[k] = table.column(name);
467
+ }), !(options.reach >= 0)) throw new GameError("invalid_argument", "a splat motion reach must not be negative");
468
+ bodies.motion(this.handle, table.id, columns, Math.ceil(options.reach * (1e3)), mask), this.kernel = () => kernel(table);
469
+ }
470
+ follow() {
471
+ this.kernel?.();
472
+ let target = this.standInTarget;
473
+ if (target === null) return;
474
+ let wanted = this.view()[SCENERY_REGISTER.standIn] !== 0;
475
+ wanted !== this.standing && (this.standing = wanted, wanted ? target.show() : target.hide());
476
+ }
398
477
  /** Closes the scenery and frees its engine resources. Later calls on the handle do nothing. */
399
478
  remove() {
400
479
  this.closed || (this.closed = true, this.registers = null, this.predictor !== null && this.owner.unstream(this.predictor), this.predictor = null, this.owner.release(this), this.port.close(this.handle), this.chunks.close());
@@ -403,7 +482,7 @@ var SceneryChunks = class {
403
482
  if (this.closed) return;
404
483
  let n = this.port.update(this.handle, eye, this.requests);
405
484
  for (let i = 0; i < n; i++) this.fetch(this.requests[i], i === 0 ? (0) : (1));
406
- this.layer.toLocal(eye, this.lastEye, 0, true), this.hasEye = true, this.forget();
485
+ this.layer.toLocal(eye, this.lastEye, 0, true), this.hasEye = true, this.forget(), this.follow();
407
486
  }
408
487
  forget() {
409
488
  let layer = this.layer, eye = this.lastEye, radii = sceneryTierRadii(this.tier()), scale = layer.scale, states = this.engineState, sphere = this.rowSphere, sweep = this.sweep, end = Math.min(states.length, sweep + (256));
@@ -501,10 +580,15 @@ var SceneryChunks = class {
501
580
  let port = this.port;
502
581
  if (port === null) throw new GameError("unsupported_feature", "this backend does not draw splat scenery");
503
582
  let manifest = typeof source == "string" ? source : source.href, assets = options.assets;
504
- return this.open(port, manifest, new SceneryChunks(assets ?? null, options.cacheBytes));
583
+ return this.open(port, manifest, new SceneryChunks(assets ?? null, options.cacheBytes), options);
584
+ }
585
+ /** Loads a splat body baked against a rig and binds it, so it follows that model's animation. */
586
+ async splatBody(options) {
587
+ let body = await this.load(options.manifest, options);
588
+ return body.bind(options.rig), body;
505
589
  }
506
- async open(port, location, chunks) {
507
- let bytes = await chunks.read(location), manifest = parseSceneryManifest(bytes), paths = manifest.chunks.map((name) => sibling(location, name)), handle = port.open(bytes), scenery = new Scenery(port, handle, manifest, paths, chunks, this);
590
+ async open(port, location, chunks, options) {
591
+ let bytes = await chunks.read(location), manifest = parseSceneryManifest(bytes), paths = manifest.chunks.map((name) => sibling(location, name)), handle = port.open(bytes), scenery = new Scenery(port, handle, manifest, paths, chunks, this, options);
508
592
  return this.live.push(scenery), this.prefetch !== null && scenery.stream(this.prefetch), scenery;
509
593
  }
510
594
  /** Number of scenery handles currently loaded. */