@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,11 +1,11 @@
1
1
  'use strict';
2
2
 
3
- var chunkB54P6RL2_js = require('./chunk-B54P6RL2.js');
3
+ var chunk2AQ237Y4_js = require('./chunk-2AQ237Y4.js');
4
4
  var chunkNH654HAT_js = require('./chunk-NH654HAT.js');
5
5
  var chunkWHYKAT7G_js = require('./chunk-WHYKAT7G.js');
6
- var chunk56BM75QX_js = require('./chunk-56BM75QX.js');
7
- var chunkHPKKCUHU_js = require('./chunk-HPKKCUHU.js');
8
- var chunk4CVB2ZTC_js = require('./chunk-4CVB2ZTC.js');
6
+ var chunkH5DFSCJ6_js = require('./chunk-H5DFSCJ6.js');
7
+ var chunk52YS45RR_js = require('./chunk-52YS45RR.js');
8
+ var chunk5LH2QN3T_js = require('./chunk-5LH2QN3T.js');
9
9
  var chunkJGBCIKJV_js = require('./chunk-JGBCIKJV.js');
10
10
 
11
11
  // src/game/kit/blocks/pickups.ts
@@ -37,9 +37,9 @@ var KeepOut = class {
37
37
  }
38
38
  add(x, z, radius) {
39
39
  if (this.used * (3) >= this.circles.length) throw new chunkNH654HAT_js.KitError("capacity_exceeded", "the keep-out areas are full");
40
- let fx = Math.trunc(x * chunk4CVB2ZTC_js.CENTERED_FIXED_UNITS), fz = Math.trunc(z * chunk4CVB2ZTC_js.CENTERED_FIXED_UNITS), fr = Math.trunc(radius * chunk4CVB2ZTC_js.CENTERED_FIXED_UNITS);
40
+ let fx = Math.trunc(x * chunk5LH2QN3T_js.CENTERED_FIXED_UNITS), fz = Math.trunc(z * chunk5LH2QN3T_js.CENTERED_FIXED_UNITS), fr = Math.trunc(radius * chunk5LH2QN3T_js.CENTERED_FIXED_UNITS);
41
41
  if (!(Math.abs(fx) < FIXED_LIMIT && Math.abs(fz) < FIXED_LIMIT && fr >= 0 && fr < FIXED_LIMIT))
42
- throw new chunkNH654HAT_js.KitError("invalid_declaration", `keep-out areas must lie within ${FIXED_LIMIT / chunk4CVB2ZTC_js.CENTERED_FIXED_UNITS} m of the origin`);
42
+ throw new chunkNH654HAT_js.KitError("invalid_declaration", `keep-out areas must lie within ${FIXED_LIMIT / chunk5LH2QN3T_js.CENTERED_FIXED_UNITS} m of the origin`);
43
43
  let o = this.used * (3);
44
44
  return this.circles[o] = x, this.circles[o + 1] = z, this.circles[o + 2] = radius, this.fixed[o] = fx, this.fixed[o + 1] = fz, this.fixed[o + 2] = fr, squareInto(this.squares, this.used * (2), fr), this.used++;
45
45
  }
@@ -89,8 +89,8 @@ var KeepOut = class {
89
89
  p[o + 1] = y, this.activate(slot, kind);
90
90
  }
91
91
  respawn(slot, random, halfExtent, keepOut = null) {
92
- if ((halfExtent | 0) !== halfExtent || halfExtent < 1 || halfExtent >= chunk4CVB2ZTC_js.CENTERED_MAX_EXTENT)
93
- throw new chunkNH654HAT_js.KitError("invalid_declaration", `respawn needs a whole half extent from 1 to ${chunk4CVB2ZTC_js.CENTERED_MAX_EXTENT - 1}`);
92
+ if ((halfExtent | 0) !== halfExtent || halfExtent < 1 || halfExtent >= chunk5LH2QN3T_js.CENTERED_MAX_EXTENT)
93
+ throw new chunkNH654HAT_js.KitError("invalid_declaration", `respawn needs a whole half extent from 1 to ${chunk5LH2QN3T_js.CENTERED_MAX_EXTENT - 1}`);
94
94
  let p = this.positions, o = slot * (3), f = this.candidate;
95
95
  for (let tries = 0; tries < (64) && (random.centeredInto(p, o, halfExtent, f, 0), random.centeredInto(p, o + 2, halfExtent, f, 1), !(keepOut === null || keepOut.clearFixed(f, 0))); tries++)
96
96
  ;
@@ -155,11 +155,11 @@ var UNBOUND = -1, GOAL_X = 0, GOAL_Z = 1, DEFAULT_ARRIVE = 0.6, NEVER = 0, DEFAU
155
155
  }
156
156
  drive(game, rig, goal, frame) {
157
157
  let x = goal[(0)], z = goal[(1)], input = game.input;
158
- this.slotX === (-1) && (this.slotX = input.virtualControl(chunkB54P6RL2_js.TOUCH_CONTROLS.moveX), this.slotY = input.virtualControl(chunkB54P6RL2_js.TOUCH_CONTROLS.moveY), this.slotJump = input.virtualControl(chunkB54P6RL2_js.TOUCH_CONTROLS.jump));
158
+ this.slotX === (-1) && (this.slotX = input.virtualControl(chunk2AQ237Y4_js.TOUCH_CONTROLS.moveX), this.slotY = input.virtualControl(chunk2AQ237Y4_js.TOUCH_CONTROLS.moveY), this.slotJump = input.virtualControl(chunk2AQ237Y4_js.TOUCH_CONTROLS.jump));
159
159
  let p = game.transforms.store.fields.position, o = game.transforms.row(rig.entity) * 3, wx = x - p[o], wz = z - p[o + 2], length = (wx * wx + wz * wz) ** 0.5;
160
160
  length > this.arrive ? (wx /= length, wz /= length) : (wx = 0, wz = 0);
161
- let yaw = rig.camera.state[chunkHPKKCUHU_js.FOLLOW_YAW], sy = Math.sin(yaw), cy = Math.cos(yaw), stage = input.stage, t = chunk56BM75QX_js.templateFrameStamp(frame);
162
- stage[chunk4CVB2ZTC_js.STAGE_X] = cy * wx - sy * wz, stage[chunk4CVB2ZTC_js.STAGE_TIME] = t, input.virtualStaged(this.slotX), stage[chunk4CVB2ZTC_js.STAGE_X] = -sy * wx - cy * wz, stage[chunk4CVB2ZTC_js.STAGE_TIME] = t, input.virtualStaged(this.slotY), this.jumpEvery > (0) && frame % this.jumpEvery === 0 && rig.motor.state[chunkHPKKCUHU_js.CHAR_SPEED] > 0 && (this.jumpHeld = this.jumpHold), stage[chunk4CVB2ZTC_js.STAGE_X] = this.jumpHeld > 0 ? 1 : 0, stage[chunk4CVB2ZTC_js.STAGE_TIME] = t, input.virtualStaged(this.slotJump), this.jumpHeld > 0 && this.jumpHeld--;
161
+ let yaw = rig.camera.state[chunk52YS45RR_js.FOLLOW_YAW], sy = Math.sin(yaw), cy = Math.cos(yaw), stage = input.stage, t = chunkH5DFSCJ6_js.templateFrameStamp(frame);
162
+ stage[chunk5LH2QN3T_js.STAGE_X] = cy * wx - sy * wz, stage[chunk5LH2QN3T_js.STAGE_TIME] = t, input.virtualStaged(this.slotX), stage[chunk5LH2QN3T_js.STAGE_X] = -sy * wx - cy * wz, stage[chunk5LH2QN3T_js.STAGE_TIME] = t, input.virtualStaged(this.slotY), this.jumpEvery > (0) && frame % this.jumpEvery === 0 && rig.motor.state[chunk52YS45RR_js.CHAR_SPEED] > 0 && (this.jumpHeld = this.jumpHold), stage[chunk5LH2QN3T_js.STAGE_X] = this.jumpHeld > 0 ? 1 : 0, stage[chunk5LH2QN3T_js.STAGE_TIME] = t, input.virtualStaged(this.slotJump), this.jumpHeld > 0 && this.jumpHeld--;
163
163
  }
164
164
  };
165
165
 
@@ -203,7 +203,7 @@ var COURIER = {
203
203
  let angle = c / COURIER.crates * Math.PI * 2, x = Math.cos(angle) * COURIER.parcelSpread * (0.5), z = Math.sin(angle) * COURIER.parcelSpread * (0.5);
204
204
  this.crates.set([x, COURIER.crateHalf, z], c * 3), staticBox(game, x, COURIER.crateHalf, z, COURIER.crateHalf, COURIER.crateHalf, COURIER.crateHalf), this.keepOut.add(x, z, COURIER.crateHalf + COURIER.pickupRadius);
205
205
  }
206
- daylight(game), this.rig = chunkB54P6RL2_js.thirdPersonCharacter(game, { position: [0, 0, -COURIER.dropRadius * 2], register: false }), this.boxes = new chunkWHYKAT7G_js.BoxBatch(game, (16)), this.pickups.scatter((0), game.random, COURIER.parcelSpread, COURIER.parcelLift, this.keepOut);
206
+ daylight(game), this.rig = chunk2AQ237Y4_js.thirdPersonCharacter(game, { position: [0, 0, -COURIER.dropRadius * 2], register: false }), this.boxes = new chunkWHYKAT7G_js.BoxBatch(game, (16)), this.pickups.scatter((0), game.random, COURIER.parcelSpread, COURIER.parcelLift, this.keepOut);
207
207
  }
208
208
  fixedUpdate(game) {
209
209
  let rig = this.rig;
@@ -255,7 +255,7 @@ var COURIER = {
255
255
  let p = game.transforms.store.fields.position, o = game.transforms.row(rig.entity) * 3;
256
256
  d[4] = p[o], d[5] = p[o + 2];
257
257
  }
258
- return chunk56BM75QX_js.digestFloats(d, (6));
258
+ return chunkH5DFSCJ6_js.digestFloats(d, (6));
259
259
  }
260
260
  };
261
261
 
@@ -1,6 +1,6 @@
1
1
  'use strict';
2
2
 
3
- var chunkBS65NRDW_js = require('./chunk-BS65NRDW.js');
3
+ var chunk3S6WPBZL_js = require('./chunk-3S6WPBZL.js');
4
4
  var chunk2V7IL4HC_js = require('./chunk-2V7IL4HC.js');
5
5
 
6
6
  // src/game/physics/vehicle-solver.ts
@@ -10,21 +10,21 @@ function clamp(value, low, high) {
10
10
  return lifted < high ? lifted : high;
11
11
  }
12
12
  function curve(desc, at, io, slot) {
13
- let slip = io[slot], n = desc[at + chunkBS65NRDW_js.CURVE_POINTS], peak = 0;
14
- for (let k = 1; k < n; k++) desc[at + chunkBS65NRDW_js.CURVE_VALUE + k] > desc[at + chunkBS65NRDW_js.CURVE_VALUE + peak] && (peak = k);
15
- if (slip <= desc[at + chunkBS65NRDW_js.CURVE_SLIP + peak]) {
16
- io[slot] = desc[at + chunkBS65NRDW_js.CURVE_VALUE + peak];
13
+ let slip = io[slot], n = desc[at + chunk3S6WPBZL_js.CURVE_POINTS], peak = 0;
14
+ for (let k = 1; k < n; k++) desc[at + chunk3S6WPBZL_js.CURVE_VALUE + k] > desc[at + chunk3S6WPBZL_js.CURVE_VALUE + peak] && (peak = k);
15
+ if (slip <= desc[at + chunk3S6WPBZL_js.CURVE_SLIP + peak]) {
16
+ io[slot] = desc[at + chunk3S6WPBZL_js.CURVE_VALUE + peak];
17
17
  return;
18
18
  }
19
19
  for (let k = peak + 1; k < n; k++) {
20
- let s1 = desc[at + chunkBS65NRDW_js.CURVE_SLIP + k];
20
+ let s1 = desc[at + chunk3S6WPBZL_js.CURVE_SLIP + k];
21
21
  if (slip < s1) {
22
- let s0 = desc[at + chunkBS65NRDW_js.CURVE_SLIP + k - 1], v0 = desc[at + chunkBS65NRDW_js.CURVE_VALUE + k - 1];
23
- io[slot] = v0 + (desc[at + chunkBS65NRDW_js.CURVE_VALUE + k] - v0) * ((slip - s0) / (s1 - s0));
22
+ let s0 = desc[at + chunk3S6WPBZL_js.CURVE_SLIP + k - 1], v0 = desc[at + chunk3S6WPBZL_js.CURVE_VALUE + k - 1];
23
+ io[slot] = v0 + (desc[at + chunk3S6WPBZL_js.CURVE_VALUE + k] - v0) * ((slip - s0) / (s1 - s0));
24
24
  return;
25
25
  }
26
26
  }
27
- io[slot] = desc[at + chunkBS65NRDW_js.CURVE_VALUE + n - 1];
27
+ io[slot] = desc[at + chunk3S6WPBZL_js.CURVE_VALUE + n - 1];
28
28
  }
29
29
  var R_DT = 0, R_THROTTLE = 1, R_GEAR_REQUEST = 2, R_TORQUE = 3, R_RATIO = 4, R_RESULT = 5, R_IX = 6, R_IY = 7, R_IZ = 8, R_FX = 9, R_FY = 10, R_FZ = 11, R_CURVE = 12, R_VECTOR = 13, REG_WORDS = 16, AXIS_UP = 0, AXIS_FORWARD = 3, AXIS_LEFT = 6, AXES = Float64Array.of(0, 1, 0, 0, 0, 1, -1, 0, 0), VehicleSolver = class {
30
30
  constructor(world) {
@@ -54,9 +54,9 @@ var R_DT = 0, R_THROTTLE = 1, R_GEAR_REQUEST = 2, R_TORQUE = 3, R_RATIO = 4, R_R
54
54
  reserve(capacity) {
55
55
  if (!(capacity <= this.capacity)) {
56
56
  if (this.activeCount > 0) throw new chunk2V7IL4HC_js.GameError("invalid_argument", "vehicle capacity is fixed once vehicles exist");
57
- this.capacity = capacity, this.inputs = new Float32Array(capacity * chunkBS65NRDW_js.INPUT_STRIDE);
58
- for (let v = 0; v < capacity; v++) this.inputs[v * chunkBS65NRDW_js.INPUT_STRIDE + chunkBS65NRDW_js.INPUT_GEAR] = chunkBS65NRDW_js.GEAR_AUTO;
59
- this.states = new Float32Array(capacity * chunkBS65NRDW_js.STATE_STRIDE), this.descs = new Float32Array(capacity * chunkBS65NRDW_js.VEHICLE_DESC_WORDS), this.runs = new Float64Array(capacity * chunkBS65NRDW_js.MAX_WHEELS * (40)), this.vehicles = new Float64Array(capacity * (8)), this.active = new Int32Array(capacity), this.free = new Int32Array(capacity);
57
+ this.capacity = capacity, this.inputs = new Float32Array(capacity * chunk3S6WPBZL_js.INPUT_STRIDE);
58
+ for (let v = 0; v < capacity; v++) this.inputs[v * chunk3S6WPBZL_js.INPUT_STRIDE + chunk3S6WPBZL_js.INPUT_GEAR] = chunk3S6WPBZL_js.GEAR_AUTO;
59
+ this.states = new Float32Array(capacity * chunk3S6WPBZL_js.STATE_STRIDE), this.descs = new Float32Array(capacity * chunk3S6WPBZL_js.VEHICLE_DESC_WORDS), this.runs = new Float64Array(capacity * chunk3S6WPBZL_js.MAX_WHEELS * (40)), this.vehicles = new Float64Array(capacity * (8)), this.active = new Int32Array(capacity), this.free = new Int32Array(capacity);
60
60
  for (let v = 0; v < capacity; v++) this.free[v] = capacity - 1 - v;
61
61
  this.freeCount = capacity;
62
62
  }
@@ -64,16 +64,16 @@ var R_DT = 0, R_THROTTLE = 1, R_GEAR_REQUEST = 2, R_TORQUE = 3, R_RATIO = 4, R_R
64
64
  createVehicle(body, desc) {
65
65
  if (this.capacity === 0 && this.reserve((32)), this.freeCount === 0) throw new chunk2V7IL4HC_js.GameError("capacity_exceeded", "vehicle capacity reached");
66
66
  let id = this.free[--this.freeCount];
67
- this.descs.set(desc.subarray(0, chunkBS65NRDW_js.VEHICLE_DESC_WORDS), id * chunkBS65NRDW_js.VEHICLE_DESC_WORDS);
67
+ this.descs.set(desc.subarray(0, chunk3S6WPBZL_js.VEHICLE_DESC_WORDS), id * chunk3S6WPBZL_js.VEHICLE_DESC_WORDS);
68
68
  let v = id * (8);
69
- this.vehicles.fill(0, v, v + (8)), this.vehicles[v + (0)] = body, this.vehicles[v + (2)] = 1, this.vehicles[v + (4)] = desc[chunkBS65NRDW_js.DESC_IDLE_RPM];
70
- let wheels = desc[chunkBS65NRDW_js.DESC_WHEEL_COUNT];
71
- for (let w = 0; w < chunkBS65NRDW_js.MAX_WHEELS; w++) {
72
- let r = (id * chunkBS65NRDW_js.MAX_WHEELS + w) * (40);
73
- this.runs.fill(0, r, r + (40)), this.runs[r + (5)] = chunkBS65NRDW_js.NO_GROUND, this.runs[r + (6)] = (-1), w < wheels && (this.runs[r + (3)] = desc[chunkBS65NRDW_js.DESC_HEADER + w * chunkBS65NRDW_js.WHEEL_DESC_WORDS + chunkBS65NRDW_js.WHEEL_DESC_REST]);
69
+ this.vehicles.fill(0, v, v + (8)), this.vehicles[v + (0)] = body, this.vehicles[v + (2)] = 1, this.vehicles[v + (4)] = desc[chunk3S6WPBZL_js.DESC_IDLE_RPM];
70
+ let wheels = desc[chunk3S6WPBZL_js.DESC_WHEEL_COUNT];
71
+ for (let w = 0; w < chunk3S6WPBZL_js.MAX_WHEELS; w++) {
72
+ let r = (id * chunk3S6WPBZL_js.MAX_WHEELS + w) * (40);
73
+ this.runs.fill(0, r, r + (40)), this.runs[r + (5)] = chunk3S6WPBZL_js.NO_GROUND, this.runs[r + (6)] = (-1), w < wheels && (this.runs[r + (3)] = desc[chunk3S6WPBZL_js.DESC_HEADER + w * chunk3S6WPBZL_js.WHEEL_DESC_WORDS + chunk3S6WPBZL_js.WHEEL_DESC_REST]);
74
74
  }
75
- let input = id * chunkBS65NRDW_js.INPUT_STRIDE;
76
- return this.inputs.fill(0, input, input + chunkBS65NRDW_js.INPUT_STRIDE), this.inputs[input + chunkBS65NRDW_js.INPUT_GEAR] = chunkBS65NRDW_js.GEAR_AUTO, this.states.fill(0, id * chunkBS65NRDW_js.STATE_STRIDE, (id + 1) * chunkBS65NRDW_js.STATE_STRIDE), this.active[this.activeCount++] = id, id;
75
+ let input = id * chunk3S6WPBZL_js.INPUT_STRIDE;
76
+ return this.inputs.fill(0, input, input + chunk3S6WPBZL_js.INPUT_STRIDE), this.inputs[input + chunk3S6WPBZL_js.INPUT_GEAR] = chunk3S6WPBZL_js.GEAR_AUTO, this.states.fill(0, id * chunk3S6WPBZL_js.STATE_STRIDE, (id + 1) * chunk3S6WPBZL_js.STATE_STRIDE), this.active[this.activeCount++] = id, id;
77
77
  }
78
78
  destroyVehicle(vehicle) {
79
79
  for (let k = 0; k < this.activeCount; k++)
@@ -100,8 +100,8 @@ var R_DT = 0, R_THROTTLE = 1, R_GEAR_REQUEST = 2, R_TORQUE = 3, R_RATIO = 4, R_R
100
100
  for (let k = 0; k < this.activeCount; k++) this.stepVehicle(this.active[k]);
101
101
  }
102
102
  stepVehicle(id) {
103
- let reg = this.reg, dt = reg[(0)], v = id * (8), body = this.vehicles[v + (0)] | 0, d = id * chunkBS65NRDW_js.VEHICLE_DESC_WORDS, desc = this.descs, i = id * chunkBS65NRDW_js.INPUT_STRIDE, rawThrottle = this.inputs[i + chunkBS65NRDW_js.INPUT_THROTTLE], rawBrake = this.inputs[i + chunkBS65NRDW_js.INPUT_BRAKE], rawSteer = this.inputs[i + chunkBS65NRDW_js.INPUT_STEER], rawHandbrake = this.inputs[i + chunkBS65NRDW_js.INPUT_HANDBRAKE], throttle = rawThrottle > 0 ? rawThrottle < 1 ? rawThrottle : 1 : 0, brake = rawBrake > 0 ? rawBrake < 1 ? rawBrake : 1 : 0, steerInput = rawSteer > -1 ? rawSteer < 1 ? rawSteer : 1 : -1, handbrake = rawHandbrake > 0 ? rawHandbrake < 1 ? rawHandbrake : 1 : 0;
104
- reg[(1)] = throttle, reg[(2)] = this.inputs[i + chunkBS65NRDW_js.INPUT_GEAR];
103
+ let reg = this.reg, dt = reg[(0)], v = id * (8), body = this.vehicles[v + (0)] | 0, d = id * chunk3S6WPBZL_js.VEHICLE_DESC_WORDS, desc = this.descs, i = id * chunk3S6WPBZL_js.INPUT_STRIDE, rawThrottle = this.inputs[i + chunk3S6WPBZL_js.INPUT_THROTTLE], rawBrake = this.inputs[i + chunk3S6WPBZL_js.INPUT_BRAKE], rawSteer = this.inputs[i + chunk3S6WPBZL_js.INPUT_STEER], rawHandbrake = this.inputs[i + chunk3S6WPBZL_js.INPUT_HANDBRAKE], throttle = rawThrottle > 0 ? rawThrottle < 1 ? rawThrottle : 1 : 0, brake = rawBrake > 0 ? rawBrake < 1 ? rawBrake : 1 : 0, steerInput = rawSteer > -1 ? rawSteer < 1 ? rawSteer : 1 : -1, handbrake = rawHandbrake > 0 ? rawHandbrake < 1 ? rawHandbrake : 1 : 0;
104
+ reg[(1)] = throttle, reg[(2)] = this.inputs[i + chunk3S6WPBZL_js.INPUT_GEAR];
105
105
  let active = throttle > 0 || brake > 0 || steerInput !== 0 || handbrake > 0, c = this.chassis;
106
106
  if (!this.world.readChassis(body, c)) return;
107
107
  if (c[(25)] !== 0) {
@@ -117,77 +117,77 @@ var R_DT = 0, R_THROTTLE = 1, R_GEAR_REQUEST = 2, R_TORQUE = 3, R_RATIO = 4, R_R
117
117
  this.rotate(AXES, (3), t, 0);
118
118
  let fx = t[0], fy = t[1], fz = t[2];
119
119
  reg[(9)] = fx, reg[(10)] = fy, reg[(11)] = fz;
120
- let rate = desc[d + chunkBS65NRDW_js.DESC_STEER_RATE] * dt, steerDelta = steerInput * desc[d + chunkBS65NRDW_js.DESC_MAX_STEER] - this.vehicles[v + (1)];
120
+ let rate = desc[d + chunk3S6WPBZL_js.DESC_STEER_RATE] * dt, steerDelta = steerInput * desc[d + chunk3S6WPBZL_js.DESC_MAX_STEER] - this.vehicles[v + (1)];
121
121
  this.vehicles[v + (1)] += steerDelta > -rate ? steerDelta < rate ? steerDelta : rate : -rate;
122
- let steer = this.vehicles[v + (1)], wheels = desc[d + chunkBS65NRDW_js.DESC_WHEEL_COUNT] | 0, runs = this.runs, ackermann = desc[d + chunkBS65NRDW_js.DESC_ACKERMANN], fixedZ = 0, fixedCount = 0, allZ = 0;
122
+ let steer = this.vehicles[v + (1)], wheels = desc[d + chunk3S6WPBZL_js.DESC_WHEEL_COUNT] | 0, runs = this.runs, ackermann = desc[d + chunk3S6WPBZL_js.DESC_ACKERMANN], fixedZ = 0, fixedCount = 0, allZ = 0;
123
123
  for (let w = 0; w < wheels; w++) {
124
- let wd = d + chunkBS65NRDW_js.DESC_HEADER + w * chunkBS65NRDW_js.WHEEL_DESC_WORDS;
125
- allZ += desc[wd + chunkBS65NRDW_js.WHEEL_DESC_POSITION + 2], desc[wd + chunkBS65NRDW_js.WHEEL_DESC_STEER] === 0 && (fixedZ += desc[wd + chunkBS65NRDW_js.WHEEL_DESC_POSITION + 2], fixedCount++);
124
+ let wd = d + chunk3S6WPBZL_js.DESC_HEADER + w * chunk3S6WPBZL_js.WHEEL_DESC_WORDS;
125
+ allZ += desc[wd + chunk3S6WPBZL_js.WHEEL_DESC_POSITION + 2], desc[wd + chunk3S6WPBZL_js.WHEEL_DESC_STEER] === 0 && (fixedZ += desc[wd + chunk3S6WPBZL_js.WHEEL_DESC_POSITION + 2], fixedCount++);
126
126
  }
127
127
  let pivot = fixedCount > 0 ? fixedZ / fixedCount : allZ / Math.max(wheels, 1);
128
128
  for (let w = 0; w < wheels; w++) {
129
- let r = (id * chunkBS65NRDW_js.MAX_WHEELS + w) * (40), wd = d + chunkBS65NRDW_js.DESC_HEADER + w * chunkBS65NRDW_js.WHEEL_DESC_WORDS;
130
- this.rotate(desc, wd + chunkBS65NRDW_js.WHEEL_DESC_POSITION, t, 0);
131
- let hx = c[(0)] + t[0], hy = c[(0) + 1] + t[1], hz = c[(0) + 2] + t[2], base = steer * desc[wd + chunkBS65NRDW_js.WHEEL_DESC_STEER], wheelAngle = base;
129
+ let r = (id * chunk3S6WPBZL_js.MAX_WHEELS + w) * (40), wd = d + chunk3S6WPBZL_js.DESC_HEADER + w * chunk3S6WPBZL_js.WHEEL_DESC_WORDS;
130
+ this.rotate(desc, wd + chunk3S6WPBZL_js.WHEEL_DESC_POSITION, t, 0);
131
+ let hx = c[(0)] + t[0], hy = c[(0) + 1] + t[1], hz = c[(0) + 2] + t[2], base = steer * desc[wd + chunk3S6WPBZL_js.WHEEL_DESC_STEER], wheelAngle = base;
132
132
  if (ackermann > 0 && base !== 0) {
133
- let reach2 = desc[wd + chunkBS65NRDW_js.WHEEL_DESC_POSITION + 2] - pivot, b = base > -chunkBS65NRDW_js.STEER_LIMIT ? base < chunkBS65NRDW_js.STEER_LIMIT ? base : chunkBS65NRDW_js.STEER_LIMIT : -chunkBS65NRDW_js.STEER_LIMIT, tangent = Math.sin(b) / Math.cos(b), denominator = desc[wd + chunkBS65NRDW_js.WHEEL_DESC_POSITION] * tangent + reach2;
133
+ let reach2 = desc[wd + chunk3S6WPBZL_js.WHEEL_DESC_POSITION + 2] - pivot, b = base > -chunk3S6WPBZL_js.STEER_LIMIT ? base < chunk3S6WPBZL_js.STEER_LIMIT ? base : chunk3S6WPBZL_js.STEER_LIMIT : -chunk3S6WPBZL_js.STEER_LIMIT, tangent = Math.sin(b) / Math.cos(b), denominator = desc[wd + chunk3S6WPBZL_js.WHEEL_DESC_POSITION] * tangent + reach2;
134
134
  denominator * reach2 > (1e-4) && (wheelAngle = base + (Math.atan(reach2 * tangent / denominator) - base) * ackermann);
135
135
  }
136
- let angle = wheelAngle > -chunkBS65NRDW_js.STEER_LIMIT ? wheelAngle < chunkBS65NRDW_js.STEER_LIMIT ? wheelAngle : chunkBS65NRDW_js.STEER_LIMIT : -chunkBS65NRDW_js.STEER_LIMIT;
136
+ let angle = wheelAngle > -chunk3S6WPBZL_js.STEER_LIMIT ? wheelAngle < chunk3S6WPBZL_js.STEER_LIMIT ? wheelAngle : chunk3S6WPBZL_js.STEER_LIMIT : -chunk3S6WPBZL_js.STEER_LIMIT;
137
137
  runs[r + (2)] = wheelAngle;
138
138
  let s = Math.sin(angle), co = Math.cos(angle);
139
139
  reg[(13)] = -s, reg[(13) + 1] = 0, reg[(13) + 2] = co, this.rotate(reg, (13), runs, r + (16)), reg[(13)] = -co, reg[(13) + 2] = -s, this.rotate(reg, (13), runs, r + (19));
140
- let radius = desc[wd + chunkBS65NRDW_js.WHEEL_DESC_RADIUS], rest = desc[wd + chunkBS65NRDW_js.WHEEL_DESC_REST], travel = desc[wd + chunkBS65NRDW_js.WHEEL_DESC_TRAVEL], shortest = rest - travel, longest = rest + travel, reach = longest + radius;
140
+ let radius = desc[wd + chunk3S6WPBZL_js.WHEEL_DESC_RADIUS], rest = desc[wd + chunk3S6WPBZL_js.WHEEL_DESC_REST], travel = desc[wd + chunk3S6WPBZL_js.WHEEL_DESC_TRAVEL], shortest = rest - travel, longest = rest + travel, reach = longest + radius;
141
141
  this.origin[0] = hx, this.origin[1] = hy, this.origin[2] = hz, this.direction[0] = -ux, this.direction[1] = -uy, this.direction[2] = -uz;
142
142
  let hit = this.hit;
143
143
  hit[(0)] = reach;
144
144
  let collider = this.world.castWheel(body, this.origin, this.direction, hit);
145
- if (collider !== chunkBS65NRDW_js.NO_GROUND) {
145
+ if (collider !== chunk3S6WPBZL_js.NO_GROUND) {
146
146
  let toi = hit[(0)], nx = hit[(1)], ny = hit[(1) + 1], nz = hit[(1) + 2];
147
147
  nx * nx + ny * ny + nz * nz < 0.5 && (nx = ux, ny = uy, nz = uz), runs[r + (4)] = 1, runs[r + (13)] = nx, runs[r + (13) + 1] = ny, runs[r + (13) + 2] = nz;
148
148
  let span = toi - radius;
149
149
  runs[r + (3)] = span > shortest ? span < longest ? span : longest : shortest, runs[r + (10)] = hx - ux * toi, runs[r + (10) + 1] = hy - uy * toi, runs[r + (10) + 2] = hz - uz * toi, runs[r + (5)] = collider, runs[r + (6)] = hit[(7)], runs[r + (25)] = hit[(4)], runs[r + (25) + 1] = hit[(4) + 1], runs[r + (25) + 2] = hit[(4) + 2];
150
150
  } else
151
- runs[r + (4)] = 0, runs[r + (13)] = ux, runs[r + (13) + 1] = uy, runs[r + (13) + 2] = uz, runs[r + (3)] = longest, runs[r + (10)] = hx - ux * reach, runs[r + (10) + 1] = hy - uy * reach, runs[r + (10) + 2] = hz - uz * reach, runs[r + (5)] = chunkBS65NRDW_js.NO_GROUND, runs[r + (6)] = (-1), runs[r + (25)] = 0, runs[r + (25) + 1] = 0, runs[r + (25) + 2] = 0;
151
+ runs[r + (4)] = 0, runs[r + (13)] = ux, runs[r + (13) + 1] = uy, runs[r + (13) + 2] = uz, runs[r + (3)] = longest, runs[r + (10)] = hx - ux * reach, runs[r + (10) + 1] = hy - uy * reach, runs[r + (10) + 2] = hz - uz * reach, runs[r + (5)] = chunk3S6WPBZL_js.NO_GROUND, runs[r + (6)] = (-1), runs[r + (25)] = 0, runs[r + (25) + 1] = 0, runs[r + (25) + 2] = 0;
152
152
  let length = runs[r + (3)];
153
153
  runs[r + (7)] = hx - ux * length, runs[r + (7) + 1] = hy - uy * length, runs[r + (7) + 2] = hz - uz * length;
154
154
  }
155
155
  for (let w = 0; w < wheels; w++) {
156
- let r = (id * chunkBS65NRDW_js.MAX_WHEELS + w) * (40), wd = d + chunkBS65NRDW_js.DESC_HEADER + w * chunkBS65NRDW_js.WHEEL_DESC_WORDS;
156
+ let r = (id * chunk3S6WPBZL_js.MAX_WHEELS + w) * (40), wd = d + chunk3S6WPBZL_js.DESC_HEADER + w * chunk3S6WPBZL_js.WHEEL_DESC_WORDS;
157
157
  if (runs[r + (4)] === 0) {
158
158
  runs[r + (28)] = 0;
159
159
  continue;
160
160
  }
161
161
  runs[r + (22)] = runs[r + (10)] - c[(13)], runs[r + (22) + 1] = runs[r + (10) + 1] - c[(13) + 1], runs[r + (22) + 2] = runs[r + (10) + 2] - c[(13) + 2], this.relativeVelocity(r, t);
162
- let compression = -(t[0] * ux + t[1] * uy + t[2] * uz), damping = compression > 0 ? desc[wd + chunkBS65NRDW_js.WHEEL_DESC_COMPRESSION] : desc[wd + chunkBS65NRDW_js.WHEEL_DESC_RELAXATION], force = desc[wd + chunkBS65NRDW_js.WHEEL_DESC_STIFFNESS] * (desc[wd + chunkBS65NRDW_js.WHEEL_DESC_REST] - runs[r + (3)]) + damping * compression, maxForce = desc[wd + chunkBS65NRDW_js.WHEEL_DESC_MAX_FORCE];
162
+ let compression = -(t[0] * ux + t[1] * uy + t[2] * uz), damping = compression > 0 ? desc[wd + chunk3S6WPBZL_js.WHEEL_DESC_COMPRESSION] : desc[wd + chunk3S6WPBZL_js.WHEEL_DESC_RELAXATION], force = desc[wd + chunk3S6WPBZL_js.WHEEL_DESC_STIFFNESS] * (desc[wd + chunk3S6WPBZL_js.WHEEL_DESC_REST] - runs[r + (3)]) + damping * compression, maxForce = desc[wd + chunk3S6WPBZL_js.WHEEL_DESC_MAX_FORCE];
163
163
  runs[r + (28)] = force > 0 ? force < maxForce ? force : maxForce : 0;
164
164
  }
165
- let antiRoll = desc[d + chunkBS65NRDW_js.DESC_ANTI_ROLL];
165
+ let antiRoll = desc[d + chunk3S6WPBZL_js.DESC_ANTI_ROLL];
166
166
  if (antiRoll > 0)
167
167
  for (let a = 0; a < wheels; a++) {
168
- let axle = desc[d + chunkBS65NRDW_js.DESC_HEADER + a * chunkBS65NRDW_js.WHEEL_DESC_WORDS + chunkBS65NRDW_js.WHEEL_DESC_AXLE];
169
- if (axle !== chunkBS65NRDW_js.NO_AXLE)
168
+ let axle = desc[d + chunk3S6WPBZL_js.DESC_HEADER + a * chunk3S6WPBZL_js.WHEEL_DESC_WORDS + chunk3S6WPBZL_js.WHEEL_DESC_AXLE];
169
+ if (axle !== chunk3S6WPBZL_js.NO_AXLE)
170
170
  for (let b = a + 1; b < wheels; b++) {
171
- if (desc[d + chunkBS65NRDW_js.DESC_HEADER + b * chunkBS65NRDW_js.WHEEL_DESC_WORDS + chunkBS65NRDW_js.WHEEL_DESC_AXLE] !== axle) continue;
172
- let ra = (id * chunkBS65NRDW_js.MAX_WHEELS + a) * (40), rb = (id * chunkBS65NRDW_js.MAX_WHEELS + b) * (40), bar = (runs[rb + (3)] - runs[ra + (3)]) * antiRoll;
171
+ if (desc[d + chunk3S6WPBZL_js.DESC_HEADER + b * chunk3S6WPBZL_js.WHEEL_DESC_WORDS + chunk3S6WPBZL_js.WHEEL_DESC_AXLE] !== axle) continue;
172
+ let ra = (id * chunk3S6WPBZL_js.MAX_WHEELS + a) * (40), rb = (id * chunk3S6WPBZL_js.MAX_WHEELS + b) * (40), bar = (runs[rb + (3)] - runs[ra + (3)]) * antiRoll;
173
173
  runs[ra + (4)] !== 0 && (runs[ra + (28)] = Math.max(runs[ra + (28)] + bar, 0)), runs[rb + (4)] !== 0 && (runs[rb + (28)] = Math.max(runs[rb + (28)] - bar, 0));
174
174
  }
175
175
  }
176
176
  for (let w = 0; w < wheels; w++) {
177
- let r = (id * chunkBS65NRDW_js.MAX_WHEELS + w) * (40);
177
+ let r = (id * chunk3S6WPBZL_js.MAX_WHEELS + w) * (40);
178
178
  if (runs[r + (4)] === 0 || runs[r + (28)] <= 0) continue;
179
179
  let amount = runs[r + (28)] * dt;
180
180
  reg[(6)] = runs[r + (13)] * amount, reg[(7)] = runs[r + (13) + 1] * amount, reg[(8)] = runs[r + (13) + 2] * amount, this.applyImpulse(r);
181
181
  }
182
182
  this.drivetrain(id, d, wheels);
183
- let torque = reg[(3)], rolling = desc[d + chunkBS65NRDW_js.DESC_ROLLING];
183
+ let torque = reg[(3)], rolling = desc[d + chunk3S6WPBZL_js.DESC_ROLLING];
184
184
  for (let w = 0; w < wheels; w++) {
185
- let r = (id * chunkBS65NRDW_js.MAX_WHEELS + w) * (40), wd = d + chunkBS65NRDW_js.DESC_HEADER + w * chunkBS65NRDW_js.WHEEL_DESC_WORDS, inertia = runs[r + (37)], wheelTorque = torque * desc[wd + chunkBS65NRDW_js.WHEEL_DESC_DRIVE] + desc[wd + chunkBS65NRDW_js.WHEEL_DESC_SIDE] * desc[d + chunkBS65NRDW_js.DESC_SKID_TORQUE] * steerInput, omega = runs[r + (0)] + wheelTorque / inertia * dt, braking = (brake * desc[wd + chunkBS65NRDW_js.WHEEL_DESC_BRAKE] + handbrake * desc[wd + chunkBS65NRDW_js.WHEEL_DESC_HANDBRAKE]) / inertia * dt, damping = runs[r + (4)] !== 0 ? rolling : (0.5);
185
+ let r = (id * chunk3S6WPBZL_js.MAX_WHEELS + w) * (40), wd = d + chunk3S6WPBZL_js.DESC_HEADER + w * chunk3S6WPBZL_js.WHEEL_DESC_WORDS, inertia = runs[r + (37)], wheelTorque = torque * desc[wd + chunk3S6WPBZL_js.WHEEL_DESC_DRIVE] + desc[wd + chunk3S6WPBZL_js.WHEEL_DESC_SIDE] * desc[d + chunk3S6WPBZL_js.DESC_SKID_TORQUE] * steerInput, omega = runs[r + (0)] + wheelTorque / inertia * dt, braking = (brake * desc[wd + chunk3S6WPBZL_js.WHEEL_DESC_BRAKE] + handbrake * desc[wd + chunk3S6WPBZL_js.WHEEL_DESC_HANDBRAKE]) / inertia * dt, damping = runs[r + (4)] !== 0 ? rolling : (0.5);
186
186
  omega -= omega * Math.min(damping * dt, 1), runs[r + (0)] = omega, runs[r + (38)] = braking, this.brakeTowardRest(r);
187
187
  }
188
- let handbrakeGrip = 1 + (desc[d + chunkBS65NRDW_js.DESC_HANDBRAKE_GRIP] - 1) * handbrake, lift = desc[d + chunkBS65NRDW_js.DESC_FORCE_HEIGHT];
188
+ let handbrakeGrip = 1 + (desc[d + chunk3S6WPBZL_js.DESC_HANDBRAKE_GRIP] - 1) * handbrake, lift = desc[d + chunk3S6WPBZL_js.DESC_FORCE_HEIGHT];
189
189
  for (let w = 0; w < wheels; w++) {
190
- let r = (id * chunkBS65NRDW_js.MAX_WHEELS + w) * (40), wd = d + chunkBS65NRDW_js.DESC_HEADER + w * chunkBS65NRDW_js.WHEEL_DESC_WORDS;
190
+ let r = (id * chunk3S6WPBZL_js.MAX_WHEELS + w) * (40), wd = d + chunk3S6WPBZL_js.DESC_HEADER + w * chunk3S6WPBZL_js.WHEEL_DESC_WORDS;
191
191
  if (runs[r + (35)] = 0, runs[r + (36)] = 0, runs[r + (4)] === 0) {
192
192
  runs[r + (29)] = 0, runs[r + (30)] = 0;
193
193
  continue;
@@ -200,16 +200,16 @@ var R_DT = 0, R_THROTTLE = 1, R_GEAR_REQUEST = 2, R_TORQUE = 3, R_RATIO = 4, R_R
200
200
  ax -= nx * along2, ay -= ny * along2, az -= nz * along2;
201
201
  let length = Math.sqrt(ax * ax + ay * ay + az * az), inv = length > 1e-12 ? 1 / length : 0;
202
202
  ax *= inv, ay *= inv, az *= inv, runs[r + (16)] = ax, runs[r + (16) + 1] = ay, runs[r + (16) + 2] = az, runs[r + (19)] = ay * nz - az * ny, runs[r + (19) + 1] = az * nx - ax * nz, runs[r + (19) + 2] = ax * ny - ay * nx, this.relativeVelocity(r, t);
203
- let vl = t[0] * ax + t[1] * ay + t[2] * az, vt = t[0] * runs[r + (19)] + t[1] * runs[r + (19) + 1] + t[2] * runs[r + (19) + 2], floor = Math.max(Math.abs(vl), (0.5)), radius = desc[wd + chunkBS65NRDW_js.WHEEL_DESC_RADIUS], inertia = runs[r + (37)];
203
+ let vl = t[0] * ax + t[1] * ay + t[2] * az, vt = t[0] * runs[r + (19)] + t[1] * runs[r + (19) + 1] + t[2] * runs[r + (19) + 2], floor = Math.max(Math.abs(vl), (0.5)), radius = desc[wd + chunk3S6WPBZL_js.WHEEL_DESC_RADIUS], inertia = runs[r + (37)];
204
204
  runs[r + (29)] = (runs[r + (0)] * radius - vl) / floor, runs[r + (30)] = Math.abs(vt) / floor, this.inverseMassAlong(r, (16)), runs[r + (31)] = reg[(5)] + radius * radius / inertia, this.inverseMassAlong(r, (19)), runs[r + (32)] = reg[(5)];
205
- let grip = desc[wd + chunkBS65NRDW_js.WHEEL_DESC_HANDBRAKE] > 0 ? desc[wd + chunkBS65NRDW_js.WHEEL_DESC_GRIP] * handbrakeGrip : desc[wd + chunkBS65NRDW_js.WHEEL_DESC_GRIP], budget = runs[r + (28)] * dt * grip;
206
- reg[(12)] = Math.abs(runs[r + (29)]), curve(desc, wd + chunkBS65NRDW_js.WHEEL_DESC_LONGITUDINAL, reg, (12)), runs[r + (33)] = reg[(12)] * budget, reg[(12)] = runs[r + (30)], curve(desc, wd + chunkBS65NRDW_js.WHEEL_DESC_LATERAL, reg, (12)), runs[r + (34)] = reg[(12)] * budget;
205
+ let grip = desc[wd + chunk3S6WPBZL_js.WHEEL_DESC_HANDBRAKE] > 0 ? desc[wd + chunk3S6WPBZL_js.WHEEL_DESC_GRIP] * handbrakeGrip : desc[wd + chunk3S6WPBZL_js.WHEEL_DESC_GRIP], budget = runs[r + (28)] * dt * grip;
206
+ reg[(12)] = Math.abs(runs[r + (29)]), curve(desc, wd + chunk3S6WPBZL_js.WHEEL_DESC_LONGITUDINAL, reg, (12)), runs[r + (33)] = reg[(12)] * budget, reg[(12)] = runs[r + (30)], curve(desc, wd + chunk3S6WPBZL_js.WHEEL_DESC_LATERAL, reg, (12)), runs[r + (34)] = reg[(12)] * budget;
207
207
  }
208
208
  for (let iteration = 0; iteration < (4); iteration++)
209
209
  for (let w = 0; w < wheels; w++) {
210
- let r = (id * chunkBS65NRDW_js.MAX_WHEELS + w) * (40);
210
+ let r = (id * chunk3S6WPBZL_js.MAX_WHEELS + w) * (40);
211
211
  if (runs[r + (4)] === 0 || runs[r + (28)] <= 0) continue;
212
- let wd = d + chunkBS65NRDW_js.DESC_HEADER + w * chunkBS65NRDW_js.WHEEL_DESC_WORDS, radius = desc[wd + chunkBS65NRDW_js.WHEEL_DESC_RADIUS], inertia = runs[r + (37)];
212
+ let wd = d + chunk3S6WPBZL_js.DESC_HEADER + w * chunk3S6WPBZL_js.WHEEL_DESC_WORDS, radius = desc[wd + chunk3S6WPBZL_js.WHEEL_DESC_RADIUS], inertia = runs[r + (37)];
213
213
  this.relativeVelocity(r, t);
214
214
  let vl = t[0] * runs[r + (16)] + t[1] * runs[r + (16) + 1] + t[2] * runs[r + (16) + 2], vt = t[0] * runs[r + (19)] + t[1] * runs[r + (19) + 1] + t[2] * runs[r + (19) + 2], long = runs[r + (35)] - (vl - runs[r + (0)] * radius) / runs[r + (31)], lat = runs[r + (32)] > 0 ? runs[r + (36)] - vt / runs[r + (32)] : runs[r + (36)], ll = runs[r + (33)], lt = runs[r + (34)];
215
215
  if (ll <= 0 || lt <= 0)
@@ -225,16 +225,16 @@ var R_DT = 0, R_THROTTLE = 1, R_GEAR_REQUEST = 2, R_TORQUE = 3, R_RATIO = 4, R_R
225
225
  runs[r + (35)] = long, runs[r + (36)] = lat, reg[(6)] = runs[r + (16)] * dl + runs[r + (19)] * dt2, reg[(7)] = runs[r + (16) + 1] * dl + runs[r + (19) + 1] * dt2, reg[(8)] = runs[r + (16) + 2] * dl + runs[r + (19) + 2] * dt2, this.applyImpulse(r), runs[r + (0)] -= dl * radius / inertia;
226
226
  }
227
227
  for (let w = 0; w < wheels; w++) {
228
- let r = (id * chunkBS65NRDW_js.MAX_WHEELS + w) * (40);
228
+ let r = (id * chunk3S6WPBZL_js.MAX_WHEELS + w) * (40);
229
229
  runs[r + (38)] > 0 && this.brakeTowardRest(r);
230
230
  }
231
231
  this.lockDifferentials(id, d, wheels);
232
- let along = c[(7)] * fx + c[(7) + 1] * fy + c[(7) + 2] * fz, downforce = desc[d + chunkBS65NRDW_js.DESC_DOWNFORCE];
232
+ let along = c[(7)] * fx + c[(7) + 1] * fy + c[(7) + 2] * fz, downforce = desc[d + chunk3S6WPBZL_js.DESC_DOWNFORCE];
233
233
  if (downforce > 0) {
234
234
  let push = -downforce * along * along * dt;
235
235
  c[(7)] += c[(16)] * ux * push, c[(7) + 1] += c[(16) + 1] * uy * push, c[(7) + 2] += c[(16) + 2] * uz * push;
236
236
  }
237
- let drag = desc[d + chunkBS65NRDW_js.DESC_DRAG];
237
+ let drag = desc[d + chunk3S6WPBZL_js.DESC_DRAG];
238
238
  if (drag > 0) {
239
239
  let lx = c[(7)], ly = c[(7) + 1], lz = c[(7) + 2], amount = drag * Math.sqrt(lx * lx + ly * ly + lz * lz) * dt;
240
240
  for (let axis = 0; axis < 3; axis++)
@@ -242,12 +242,12 @@ var R_DT = 0, R_THROTTLE = 1, R_GEAR_REQUEST = 2, R_TORQUE = 3, R_RATIO = 4, R_R
242
242
  }
243
243
  this.vehicles[v + (5)] = c[(7)] * fx + c[(7) + 1] * fy + c[(7) + 2] * fz, this.lean(id, d);
244
244
  for (let w = 0; w < wheels; w++) {
245
- let r = (id * chunkBS65NRDW_js.MAX_WHEELS + w) * (40), spin = runs[r + (1)] + runs[r + (0)] * dt;
245
+ let r = (id * chunk3S6WPBZL_js.MAX_WHEELS + w) * (40), spin = runs[r + (1)] + runs[r + (0)] * dt;
246
246
  spin > Math.PI ? spin -= TWO_PI : spin < -Math.PI && (spin += TWO_PI), runs[r + (1)] = spin;
247
247
  }
248
248
  this.world.writeChassis(body, c, active);
249
249
  for (let w = 0; w < wheels; w++) {
250
- let r = (id * chunkBS65NRDW_js.MAX_WHEELS + w) * (40), ground = runs[r + (6)] | 0;
250
+ let r = (id * chunk3S6WPBZL_js.MAX_WHEELS + w) * (40), ground = runs[r + (6)] | 0;
251
251
  if (ground === (-1)) continue;
252
252
  let long = runs[r + (35)], lat = runs[r + (36)], load = runs[r + (28)] * dt;
253
253
  for (let axis = 0; axis < 3; axis++)
@@ -261,99 +261,99 @@ var R_DT = 0, R_THROTTLE = 1, R_GEAR_REQUEST = 2, R_TORQUE = 3, R_RATIO = 4, R_R
261
261
  reg[(3)] = 0;
262
262
  let v = id * (8), share = 0, spin = 0;
263
263
  for (let w = 0; w < wheels; w++) {
264
- let wd = d + chunkBS65NRDW_js.DESC_HEADER + w * chunkBS65NRDW_js.WHEEL_DESC_WORDS, r = (id * chunkBS65NRDW_js.MAX_WHEELS + w) * (40), drive2 = desc[wd + chunkBS65NRDW_js.WHEEL_DESC_DRIVE];
265
- share += drive2, spin += drive2 * runs[r + (0)], runs[r + (37)] = desc[wd + chunkBS65NRDW_js.WHEEL_DESC_INERTIA];
264
+ let wd = d + chunk3S6WPBZL_js.DESC_HEADER + w * chunk3S6WPBZL_js.WHEEL_DESC_WORDS, r = (id * chunk3S6WPBZL_js.MAX_WHEELS + w) * (40), drive2 = desc[wd + chunk3S6WPBZL_js.WHEEL_DESC_DRIVE];
265
+ share += drive2, spin += drive2 * runs[r + (0)], runs[r + (37)] = desc[wd + chunk3S6WPBZL_js.WHEEL_DESC_INERTIA];
266
266
  }
267
- let idle = desc[d + chunkBS65NRDW_js.DESC_IDLE_RPM], maxRpm = desc[d + chunkBS65NRDW_js.DESC_MAX_RPM];
267
+ let idle = desc[d + chunk3S6WPBZL_js.DESC_IDLE_RPM], maxRpm = desc[d + chunk3S6WPBZL_js.DESC_MAX_RPM];
268
268
  if (share <= 0) {
269
269
  this.vehicles[v + (4)] = idle;
270
270
  return;
271
271
  }
272
- let omega = spin / share, count = desc[d + chunkBS65NRDW_js.DESC_GEAR_COUNT], gear = this.vehicles[v + (2)];
272
+ let omega = spin / share, count = desc[d + chunk3S6WPBZL_js.DESC_GEAR_COUNT], gear = this.vehicles[v + (2)];
273
273
  this.ratio(d, gear | 0);
274
274
  let rpm = Math.abs(omega * reg[(4)]) * (9.549297);
275
275
  rpm = rpm < idle ? idle : rpm > maxRpm ? maxRpm : rpm;
276
276
  let previous = gear;
277
- if (gearRequest >= chunkBS65NRDW_js.GEAR_AUTO ? gear <= 0 ? gear = 1 : this.vehicles[v + (3)] <= 0 && (rpm > desc[d + chunkBS65NRDW_js.DESC_SHIFT_UP] && gear < count ? gear += 1 : rpm < desc[d + chunkBS65NRDW_js.DESC_SHIFT_DOWN] && gear > 1 && (gear -= 1)) : Number.isFinite(gearRequest) && (gear = clamp(Math.trunc(clamp(gearRequest, -1, 8)), -1, count)), gear !== previous && (this.vehicles[v + (3)] = desc[d + chunkBS65NRDW_js.DESC_SHIFT_SECONDS], this.ratio(d, gear | 0), rpm = Math.abs(omega * reg[(4)]) * (9.549297), rpm = rpm < idle ? idle : rpm > maxRpm ? maxRpm : rpm), this.vehicles[v + (2)] = gear, this.vehicles[v + (4)] = rpm, this.vehicles[v + (3)] = Math.max(this.vehicles[v + (3)] - dt, 0), this.vehicles[v + (3)] > 0 || gear === 0) return;
278
- let points = desc[d + chunkBS65NRDW_js.DESC_TORQUE_POINTS], curveTorque = desc[d + chunkBS65NRDW_js.DESC_TORQUE + points - 1];
279
- if (rpm <= desc[d + chunkBS65NRDW_js.DESC_TORQUE_RPM]) curveTorque = desc[d + chunkBS65NRDW_js.DESC_TORQUE];
277
+ if (gearRequest >= chunk3S6WPBZL_js.GEAR_AUTO ? gear <= 0 ? gear = 1 : this.vehicles[v + (3)] <= 0 && (rpm > desc[d + chunk3S6WPBZL_js.DESC_SHIFT_UP] && gear < count ? gear += 1 : rpm < desc[d + chunk3S6WPBZL_js.DESC_SHIFT_DOWN] && gear > 1 && (gear -= 1)) : Number.isFinite(gearRequest) && (gear = clamp(Math.trunc(clamp(gearRequest, -1, 8)), -1, count)), gear !== previous && (this.vehicles[v + (3)] = desc[d + chunk3S6WPBZL_js.DESC_SHIFT_SECONDS], this.ratio(d, gear | 0), rpm = Math.abs(omega * reg[(4)]) * (9.549297), rpm = rpm < idle ? idle : rpm > maxRpm ? maxRpm : rpm), this.vehicles[v + (2)] = gear, this.vehicles[v + (4)] = rpm, this.vehicles[v + (3)] = Math.max(this.vehicles[v + (3)] - dt, 0), this.vehicles[v + (3)] > 0 || gear === 0) return;
278
+ let points = desc[d + chunk3S6WPBZL_js.DESC_TORQUE_POINTS], curveTorque = desc[d + chunk3S6WPBZL_js.DESC_TORQUE + points - 1];
279
+ if (rpm <= desc[d + chunk3S6WPBZL_js.DESC_TORQUE_RPM]) curveTorque = desc[d + chunk3S6WPBZL_js.DESC_TORQUE];
280
280
  else
281
281
  for (let k = 1; k < points; k++) {
282
- let r1 = desc[d + chunkBS65NRDW_js.DESC_TORQUE_RPM + k];
282
+ let r1 = desc[d + chunk3S6WPBZL_js.DESC_TORQUE_RPM + k];
283
283
  if (rpm < r1) {
284
- let r0 = desc[d + chunkBS65NRDW_js.DESC_TORQUE_RPM + k - 1], t0 = desc[d + chunkBS65NRDW_js.DESC_TORQUE + k - 1];
285
- curveTorque = t0 + (desc[d + chunkBS65NRDW_js.DESC_TORQUE + k] - t0) * ((rpm - r0) / (r1 - r0));
284
+ let r0 = desc[d + chunk3S6WPBZL_js.DESC_TORQUE_RPM + k - 1], t0 = desc[d + chunk3S6WPBZL_js.DESC_TORQUE + k - 1];
285
+ curveTorque = t0 + (desc[d + chunk3S6WPBZL_js.DESC_TORQUE + k] - t0) * ((rpm - r0) / (r1 - r0));
286
286
  break;
287
287
  }
288
288
  }
289
- let drive = rpm >= maxRpm ? 0 : throttle * curveTorque, span = (rpm - idle) / (maxRpm - idle), engine = drive - (1 - throttle) * desc[d + chunkBS65NRDW_js.DESC_ENGINE_BRAKING] * Math.max(span, 0);
289
+ let drive = rpm >= maxRpm ? 0 : throttle * curveTorque, span = (rpm - idle) / (maxRpm - idle), engine = drive - (1 - throttle) * desc[d + chunk3S6WPBZL_js.DESC_ENGINE_BRAKING] * Math.max(span, 0);
290
290
  this.ratio(d, gear | 0);
291
- let ratio = reg[(4)], reflected = desc[d + chunkBS65NRDW_js.DESC_ENGINE_INERTIA] * ratio * ratio / share;
291
+ let ratio = reg[(4)], reflected = desc[d + chunk3S6WPBZL_js.DESC_ENGINE_INERTIA] * ratio * ratio / share;
292
292
  for (let w = 0; w < wheels; w++) {
293
- let wd = d + chunkBS65NRDW_js.DESC_HEADER + w * chunkBS65NRDW_js.WHEEL_DESC_WORDS;
294
- runs[(id * chunkBS65NRDW_js.MAX_WHEELS + w) * (40) + (37)] = desc[wd + chunkBS65NRDW_js.WHEEL_DESC_INERTIA] + reflected * desc[wd + chunkBS65NRDW_js.WHEEL_DESC_DRIVE];
293
+ let wd = d + chunk3S6WPBZL_js.DESC_HEADER + w * chunk3S6WPBZL_js.WHEEL_DESC_WORDS;
294
+ runs[(id * chunk3S6WPBZL_js.MAX_WHEELS + w) * (40) + (37)] = desc[wd + chunk3S6WPBZL_js.WHEEL_DESC_INERTIA] + reflected * desc[wd + chunk3S6WPBZL_js.WHEEL_DESC_DRIVE];
295
295
  }
296
- reg[(3)] = engine * ratio * desc[d + chunkBS65NRDW_js.DESC_EFFICIENCY] / share;
296
+ reg[(3)] = engine * ratio * desc[d + chunk3S6WPBZL_js.DESC_EFFICIENCY] / share;
297
297
  }
298
298
  brakeTowardRest(r) {
299
299
  let runs = this.runs, omega = runs[r + (0)], left = runs[r + (38)];
300
300
  Math.abs(omega) <= left ? (runs[r + (38)] = left - Math.abs(omega), runs[r + (0)] = 0) : (runs[r + (0)] = omega > 0 ? omega - left : omega + left, runs[r + (38)] = 0);
301
301
  }
302
302
  lockDifferentials(id, d, wheels) {
303
- let desc = this.descs, runs = this.runs, lock = desc[d + chunkBS65NRDW_js.DESC_DIFFERENTIAL_LOCK];
303
+ let desc = this.descs, runs = this.runs, lock = desc[d + chunk3S6WPBZL_js.DESC_DIFFERENTIAL_LOCK];
304
304
  if (lock > 0)
305
305
  for (let i = 0; i < wheels; i++) {
306
- let wi = d + chunkBS65NRDW_js.DESC_HEADER + i * chunkBS65NRDW_js.WHEEL_DESC_WORDS, axle = desc[wi + chunkBS65NRDW_js.WHEEL_DESC_AXLE];
307
- if (desc[wi + chunkBS65NRDW_js.WHEEL_DESC_DRIVE] <= 0 || axle === chunkBS65NRDW_js.NO_AXLE) continue;
306
+ let wi = d + chunk3S6WPBZL_js.DESC_HEADER + i * chunk3S6WPBZL_js.WHEEL_DESC_WORDS, axle = desc[wi + chunk3S6WPBZL_js.WHEEL_DESC_AXLE];
307
+ if (desc[wi + chunk3S6WPBZL_js.WHEEL_DESC_DRIVE] <= 0 || axle === chunk3S6WPBZL_js.NO_AXLE) continue;
308
308
  let first = true;
309
309
  for (let j = 0; j < i; j++) {
310
- let wj = d + chunkBS65NRDW_js.DESC_HEADER + j * chunkBS65NRDW_js.WHEEL_DESC_WORDS;
311
- desc[wj + chunkBS65NRDW_js.WHEEL_DESC_AXLE] === axle && desc[wj + chunkBS65NRDW_js.WHEEL_DESC_DRIVE] > 0 && (first = false);
310
+ let wj = d + chunk3S6WPBZL_js.DESC_HEADER + j * chunk3S6WPBZL_js.WHEEL_DESC_WORDS;
311
+ desc[wj + chunk3S6WPBZL_js.WHEEL_DESC_AXLE] === axle && desc[wj + chunk3S6WPBZL_js.WHEEL_DESC_DRIVE] > 0 && (first = false);
312
312
  }
313
313
  if (!first) continue;
314
314
  let weight = 0, sum = 0;
315
315
  for (let j = i; j < wheels; j++) {
316
- let wj = d + chunkBS65NRDW_js.DESC_HEADER + j * chunkBS65NRDW_js.WHEEL_DESC_WORDS;
317
- if (desc[wj + chunkBS65NRDW_js.WHEEL_DESC_AXLE] !== axle || desc[wj + chunkBS65NRDW_js.WHEEL_DESC_DRIVE] <= 0) continue;
318
- let r = (id * chunkBS65NRDW_js.MAX_WHEELS + j) * (40);
316
+ let wj = d + chunk3S6WPBZL_js.DESC_HEADER + j * chunk3S6WPBZL_js.WHEEL_DESC_WORDS;
317
+ if (desc[wj + chunk3S6WPBZL_js.WHEEL_DESC_AXLE] !== axle || desc[wj + chunk3S6WPBZL_js.WHEEL_DESC_DRIVE] <= 0) continue;
318
+ let r = (id * chunk3S6WPBZL_js.MAX_WHEELS + j) * (40);
319
319
  weight += runs[r + (37)], sum += runs[r + (37)] * runs[r + (0)];
320
320
  }
321
321
  let mean = sum / weight;
322
322
  for (let j = i; j < wheels; j++) {
323
- let wj = d + chunkBS65NRDW_js.DESC_HEADER + j * chunkBS65NRDW_js.WHEEL_DESC_WORDS;
324
- if (desc[wj + chunkBS65NRDW_js.WHEEL_DESC_AXLE] !== axle || desc[wj + chunkBS65NRDW_js.WHEEL_DESC_DRIVE] <= 0) continue;
325
- let r = (id * chunkBS65NRDW_js.MAX_WHEELS + j) * (40);
323
+ let wj = d + chunk3S6WPBZL_js.DESC_HEADER + j * chunk3S6WPBZL_js.WHEEL_DESC_WORDS;
324
+ if (desc[wj + chunk3S6WPBZL_js.WHEEL_DESC_AXLE] !== axle || desc[wj + chunk3S6WPBZL_js.WHEEL_DESC_DRIVE] <= 0) continue;
325
+ let r = (id * chunk3S6WPBZL_js.MAX_WHEELS + j) * (40);
326
326
  runs[r + (0)] += (mean - runs[r + (0)]) * lock;
327
327
  }
328
328
  }
329
- let center = desc[d + chunkBS65NRDW_js.DESC_CENTER_LOCK];
329
+ let center = desc[d + chunk3S6WPBZL_js.DESC_CENTER_LOCK];
330
330
  if (center > 0) {
331
331
  let weight = 0, sum = 0;
332
332
  for (let j = 0; j < wheels; j++) {
333
- if (desc[d + chunkBS65NRDW_js.DESC_HEADER + j * chunkBS65NRDW_js.WHEEL_DESC_WORDS + chunkBS65NRDW_js.WHEEL_DESC_DRIVE] <= 0) continue;
334
- let r = (id * chunkBS65NRDW_js.MAX_WHEELS + j) * (40);
333
+ if (desc[d + chunk3S6WPBZL_js.DESC_HEADER + j * chunk3S6WPBZL_js.WHEEL_DESC_WORDS + chunk3S6WPBZL_js.WHEEL_DESC_DRIVE] <= 0) continue;
334
+ let r = (id * chunk3S6WPBZL_js.MAX_WHEELS + j) * (40);
335
335
  weight += runs[r + (37)], sum += runs[r + (37)] * runs[r + (0)];
336
336
  }
337
337
  if (weight > 0) {
338
338
  let mean = sum / weight;
339
339
  for (let j = 0; j < wheels; j++) {
340
- if (desc[d + chunkBS65NRDW_js.DESC_HEADER + j * chunkBS65NRDW_js.WHEEL_DESC_WORDS + chunkBS65NRDW_js.WHEEL_DESC_DRIVE] <= 0) continue;
341
- let r = (id * chunkBS65NRDW_js.MAX_WHEELS + j) * (40);
340
+ if (desc[d + chunk3S6WPBZL_js.DESC_HEADER + j * chunk3S6WPBZL_js.WHEEL_DESC_WORDS + chunk3S6WPBZL_js.WHEEL_DESC_DRIVE] <= 0) continue;
341
+ let r = (id * chunk3S6WPBZL_js.MAX_WHEELS + j) * (40);
342
342
  runs[r + (0)] += (mean - runs[r + (0)]) * center;
343
343
  }
344
344
  }
345
345
  }
346
346
  }
347
347
  lean(id, d) {
348
- let desc = this.descs, stiffness = desc[d + chunkBS65NRDW_js.DESC_LEAN_STIFFNESS], damping = desc[d + chunkBS65NRDW_js.DESC_LEAN_DAMPING];
348
+ let desc = this.descs, stiffness = desc[d + chunk3S6WPBZL_js.DESC_LEAN_STIFFNESS], damping = desc[d + chunk3S6WPBZL_js.DESC_LEAN_DAMPING];
349
349
  if (stiffness <= 0 && damping <= 0) return;
350
350
  let reg = this.reg, fx = reg[(9)], fy = reg[(10)], fz = reg[(11)], dt = reg[(0)], t = this.tmp;
351
351
  this.rotate(AXES, (6), t, 9);
352
- let roll = -t[10], v = id * (8), maxSteer = desc[d + chunkBS65NRDW_js.DESC_MAX_STEER], steer = maxSteer > 0 ? this.vehicles[v + (1)] / maxSteer : 0, speed = Math.min(Math.abs(this.vehicles[v + (5)]) / desc[d + chunkBS65NRDW_js.DESC_LEAN_SPEED], 1), leanAngle = steer * desc[d + chunkBS65NRDW_js.DESC_LEAN_MAX] * speed, target = Math.sin(leanAngle > -chunkBS65NRDW_js.STEER_LIMIT ? leanAngle < chunkBS65NRDW_js.STEER_LIMIT ? leanAngle : chunkBS65NRDW_js.STEER_LIMIT : -chunkBS65NRDW_js.STEER_LIMIT), c = this.chassis, rate = c[(10)] * fx + c[(10) + 1] * fy + c[(10) + 2] * fz, impulse = (stiffness * (target - roll) - damping * rate) * dt;
352
+ let roll = -t[10], v = id * (8), maxSteer = desc[d + chunk3S6WPBZL_js.DESC_MAX_STEER], steer = maxSteer > 0 ? this.vehicles[v + (1)] / maxSteer : 0, speed = Math.min(Math.abs(this.vehicles[v + (5)]) / desc[d + chunk3S6WPBZL_js.DESC_LEAN_SPEED], 1), leanAngle = steer * desc[d + chunk3S6WPBZL_js.DESC_LEAN_MAX] * speed, target = Math.sin(leanAngle > -chunk3S6WPBZL_js.STEER_LIMIT ? leanAngle < chunk3S6WPBZL_js.STEER_LIMIT ? leanAngle : chunk3S6WPBZL_js.STEER_LIMIT : -chunk3S6WPBZL_js.STEER_LIMIT), c = this.chassis, rate = c[(10)] * fx + c[(10) + 1] * fy + c[(10) + 2] * fz, impulse = (stiffness * (target - roll) - damping * rate) * dt;
353
353
  this.rotate(AXES, (0), t, 0);
354
- let wheels = desc[d + chunkBS65NRDW_js.DESC_WHEEL_COUNT], height = 0, grounded = 0;
354
+ let wheels = desc[d + chunk3S6WPBZL_js.DESC_WHEEL_COUNT], height = 0, grounded = 0;
355
355
  for (let w = 0; w < wheels; w++) {
356
- let r = (id * chunkBS65NRDW_js.MAX_WHEELS + w) * (40);
356
+ let r = (id * chunk3S6WPBZL_js.MAX_WHEELS + w) * (40);
357
357
  this.runs[r + (4)] !== 0 && (height += (c[(13)] - this.runs[r + (10)]) * t[0] + (c[(13) + 1] - this.runs[r + (10) + 1]) * t[1] + (c[(13) + 2] - this.runs[r + (10) + 2]) * t[2], grounded++);
358
358
  }
359
359
  if (grounded > 0 && height > 0) {
@@ -365,7 +365,7 @@ var R_DT = 0, R_THROTTLE = 1, R_GEAR_REQUEST = 2, R_TORQUE = 3, R_RATIO = 4, R_R
365
365
  }
366
366
  ratio(d, gear) {
367
367
  let desc = this.descs, reg = this.reg;
368
- gear > 0 ? reg[(4)] = desc[d + chunkBS65NRDW_js.DESC_RATIOS + gear - 1] * desc[d + chunkBS65NRDW_js.DESC_FINAL_DRIVE] : gear === -1 ? reg[(4)] = -desc[d + chunkBS65NRDW_js.DESC_REVERSE] * desc[d + chunkBS65NRDW_js.DESC_FINAL_DRIVE] : reg[(4)] = 0;
368
+ gear > 0 ? reg[(4)] = desc[d + chunk3S6WPBZL_js.DESC_RATIOS + gear - 1] * desc[d + chunk3S6WPBZL_js.DESC_FINAL_DRIVE] : gear === -1 ? reg[(4)] = -desc[d + chunk3S6WPBZL_js.DESC_REVERSE] * desc[d + chunk3S6WPBZL_js.DESC_FINAL_DRIVE] : reg[(4)] = 0;
369
369
  }
370
370
  rotate(vector, from, out, at) {
371
371
  let c = this.chassis, qx = c[(3)], qy = c[(3) + 1], qz = c[(3) + 2], qw = c[(3) + 3], x = vector[from], y = vector[from + 1], z = vector[from + 2], tx = 2 * (qy * z - qz * y), ty = 2 * (qz * x - qx * z), tz = 2 * (qx * y - qy * x);
@@ -394,14 +394,14 @@ var R_DT = 0, R_THROTTLE = 1, R_GEAR_REQUEST = 2, R_TORQUE = 3, R_RATIO = 4, R_R
394
394
  this.inertiaApply(t, 6), c[(10)] += t[6], c[(10) + 1] += t[7], c[(10) + 2] += t[8];
395
395
  }
396
396
  writeState(id) {
397
- let dt = this.reg[(0)], s = this.states, o = id * chunkBS65NRDW_js.STATE_STRIDE, v = id * (8), runs = this.runs;
398
- s[o + chunkBS65NRDW_js.STATE_SPEED] = this.vehicles[v + (5)], s[o + chunkBS65NRDW_js.STATE_RPM] = this.vehicles[v + (4)], s[o + chunkBS65NRDW_js.STATE_GEAR] = this.vehicles[v + (2)], s[o + chunkBS65NRDW_js.STATE_STEER] = this.vehicles[v + (1)], s[o + chunkBS65NRDW_js.STATE_SHIFTING] = this.vehicles[v + (3)] > 0 ? 1 : 0;
399
- let wheels = this.descs[id * chunkBS65NRDW_js.VEHICLE_DESC_WORDS + chunkBS65NRDW_js.DESC_WHEEL_COUNT], grounded = 0;
397
+ let dt = this.reg[(0)], s = this.states, o = id * chunk3S6WPBZL_js.STATE_STRIDE, v = id * (8), runs = this.runs;
398
+ s[o + chunk3S6WPBZL_js.STATE_SPEED] = this.vehicles[v + (5)], s[o + chunk3S6WPBZL_js.STATE_RPM] = this.vehicles[v + (4)], s[o + chunk3S6WPBZL_js.STATE_GEAR] = this.vehicles[v + (2)], s[o + chunk3S6WPBZL_js.STATE_STEER] = this.vehicles[v + (1)], s[o + chunk3S6WPBZL_js.STATE_SHIFTING] = this.vehicles[v + (3)] > 0 ? 1 : 0;
399
+ let wheels = this.descs[id * chunk3S6WPBZL_js.VEHICLE_DESC_WORDS + chunk3S6WPBZL_js.DESC_WHEEL_COUNT], grounded = 0;
400
400
  for (let w = 0; w < wheels; w++) {
401
- let r = (id * chunkBS65NRDW_js.MAX_WHEELS + w) * (40), at = o + chunkBS65NRDW_js.STATE_HEADER + w * chunkBS65NRDW_js.WHEEL_STRIDE;
402
- s[at + chunkBS65NRDW_js.WHEEL_CENTER] = runs[r + (7)], s[at + chunkBS65NRDW_js.WHEEL_CENTER + 1] = runs[r + (7) + 1], s[at + chunkBS65NRDW_js.WHEEL_CENTER + 2] = runs[r + (7) + 2], s[at + chunkBS65NRDW_js.WHEEL_SPIN] = runs[r + (1)], s[at + chunkBS65NRDW_js.WHEEL_STEER] = runs[r + (2)], s[at + chunkBS65NRDW_js.WHEEL_LENGTH] = runs[r + (3)], s[at + chunkBS65NRDW_js.WHEEL_GROUND] = runs[r + (5)], s[at + chunkBS65NRDW_js.WHEEL_POINT] = runs[r + (10)], s[at + chunkBS65NRDW_js.WHEEL_POINT + 1] = runs[r + (10) + 1], s[at + chunkBS65NRDW_js.WHEEL_POINT + 2] = runs[r + (10) + 2], s[at + chunkBS65NRDW_js.WHEEL_SLIP] = runs[r + (29)], s[at + chunkBS65NRDW_js.WHEEL_SLIP_ANGLE] = runs[r + (30)], s[at + chunkBS65NRDW_js.WHEEL_LOAD] = runs[r + (28)], s[at + chunkBS65NRDW_js.WHEEL_OMEGA] = runs[r + (0)], s[at + chunkBS65NRDW_js.WHEEL_FORCE_LONG] = runs[r + (35)] / dt, s[at + chunkBS65NRDW_js.WHEEL_FORCE_LAT] = runs[r + (36)] / dt, runs[r + (4)] !== 0 && grounded++;
401
+ let r = (id * chunk3S6WPBZL_js.MAX_WHEELS + w) * (40), at = o + chunk3S6WPBZL_js.STATE_HEADER + w * chunk3S6WPBZL_js.WHEEL_STRIDE;
402
+ s[at + chunk3S6WPBZL_js.WHEEL_CENTER] = runs[r + (7)], s[at + chunk3S6WPBZL_js.WHEEL_CENTER + 1] = runs[r + (7) + 1], s[at + chunk3S6WPBZL_js.WHEEL_CENTER + 2] = runs[r + (7) + 2], s[at + chunk3S6WPBZL_js.WHEEL_SPIN] = runs[r + (1)], s[at + chunk3S6WPBZL_js.WHEEL_STEER] = runs[r + (2)], s[at + chunk3S6WPBZL_js.WHEEL_LENGTH] = runs[r + (3)], s[at + chunk3S6WPBZL_js.WHEEL_GROUND] = runs[r + (5)], s[at + chunk3S6WPBZL_js.WHEEL_POINT] = runs[r + (10)], s[at + chunk3S6WPBZL_js.WHEEL_POINT + 1] = runs[r + (10) + 1], s[at + chunk3S6WPBZL_js.WHEEL_POINT + 2] = runs[r + (10) + 2], s[at + chunk3S6WPBZL_js.WHEEL_SLIP] = runs[r + (29)], s[at + chunk3S6WPBZL_js.WHEEL_SLIP_ANGLE] = runs[r + (30)], s[at + chunk3S6WPBZL_js.WHEEL_LOAD] = runs[r + (28)], s[at + chunk3S6WPBZL_js.WHEEL_OMEGA] = runs[r + (0)], s[at + chunk3S6WPBZL_js.WHEEL_FORCE_LONG] = runs[r + (35)] / dt, s[at + chunk3S6WPBZL_js.WHEEL_FORCE_LAT] = runs[r + (36)] / dt, runs[r + (4)] !== 0 && grounded++;
403
403
  }
404
- s[o + chunkBS65NRDW_js.STATE_GROUNDED] = grounded;
404
+ s[o + chunk3S6WPBZL_js.STATE_GROUNDED] = grounded;
405
405
  }
406
406
  };
407
407
 
@@ -1,4 +1,4 @@
1
- import { DEFAULT_ENGINE_MEMORY_PAGES, ENGINE_INITIAL_PAGES, WASM_PAGE_BYTES } from './chunk-NBH64BDP.mjs';
1
+ import { DEFAULT_ENGINE_MEMORY_PAGES, ENGINE_INITIAL_PAGES, WASM_PAGE_BYTES } from './chunk-A33OORT7.mjs';
2
2
 
3
3
  // src/interactives/engine-heap.ts
4
4
  var MIB = 1024 * 1024, ENGINE_HEAP_CEILING_BYTES = {
@@ -2,7 +2,7 @@ import { writePosition } from './chunk-GPS2THCL.mjs';
2
2
  import { softCurrency, premiumCurrency, softItem, premiumItem, faucet, softExchange, grant, randomExchange, discloseOdds, fixedOffer } from './chunk-3DAD2LDF.mjs';
3
3
  import { ScreenShake, HitStop } from './chunk-2UN4SFLR.mjs';
4
4
  import { ScreenFlash } from './chunk-A7MQSN2V.mjs';
5
- import { templateFrameStamp, digestInts } from './chunk-KVZSYGTX.mjs';
5
+ import { templateFrameStamp, digestInts } from './chunk-KGHJH5KJ.mjs';
6
6
  import { boxGeometry, sphereGeometry } from './chunk-GHPUYD4I.mjs';
7
7
  import { CharacterMove } from './chunk-HF5HPS4T.mjs';
8
8
  import { Vec3, Quat } from './chunk-XPG3N5CF.mjs';
@@ -1,5 +1,4 @@
1
- import { coreOfRest } from './chunk-BOTUAHP2.mjs';
2
- import { hex } from './chunk-URRZ2SMI.mjs';
1
+ import { hex } from './chunk-V7ZRH3PY.mjs';
3
2
  import { wasmAvailable, compileApproved, approveCompiled } from './chunk-N4RGGDEL.mjs';
4
3
 
5
4
  // src/interactives/runtime/modules.ts
@@ -155,18 +154,6 @@ var PackageAssembler = class {
155
154
  for (let late of this.index?.late ?? NO_LATE_RUNTIMES) if (late.unit === unit) return late.chunk;
156
155
  return null;
157
156
  }
158
- /** The late rest units whose engine core this guest holds: the rest of the core it booted, and only that. */
159
- heldCoreRests() {
160
- let index = this.index;
161
- if (index === null) return [];
162
- let held = /* @__PURE__ */ new Set();
163
- for (let runtime of index.runtimes) this.wasm.has(runtime.chunk) && held.add(runtime.unit);
164
- for (let alternative of index.alternatives ?? NO_ALTERNATIVES) this.wasm.has(alternative.chunk) && held.add(alternative.unit);
165
- return (index.late ?? NO_LATE_RUNTIMES).filter((late) => {
166
- let core = coreOfRest(late.unit);
167
- return core !== null && held.has(core);
168
- }).map((late) => late.unit);
169
- }
170
157
  holdsWasm(digest) {
171
158
  return this.wasm.has(digest);
172
159
  }
@@ -1,4 +1,4 @@
1
- import { createGame } from './chunk-IHRMR3WV.mjs';
1
+ import { createGame } from './chunk-KVFNRJOR.mjs';
2
2
  import { FRAME_NOW_MS_SLOT } from './chunk-IDLW4NWA.mjs';
3
3
 
4
4
  // src/game/kit/templates/template.ts
@@ -1,4 +1,4 @@
1
- import { cageDisplacement, blendCage, styliseColours, quantiseIdentity, NEUTRAL_LEVEL, NEUTRAL_HAIR, toneFromColour, snapTone } from './chunk-ODL55PYL.mjs';
1
+ import { cageDisplacement, blendCage, styliseColours, quantiseIdentity, NEUTRAL_LEVEL, NEUTRAL_HAIR, toneFromColour, snapTone } from './chunk-XD2PMH46.mjs';
2
2
 
3
3
  // src/game/kit/identity/fit.ts
4
4
  var FIT_ITERATIONS = 12, LANDMARK_NOISE = 0.01, RIDGE = 1e-9, PLANE = 2;
@@ -1,9 +1,9 @@
1
1
  'use strict';
2
2
 
3
- var chunkUQYO3OM7_js = require('./chunk-UQYO3OM7.js');
3
+ var chunk4ZDR72SG_js = require('./chunk-4ZDR72SG.js');
4
4
 
5
5
  // src/interactives/parts/format.ts
6
- var PART_MAGIC = 1414680643, PART_VERSION = 1, PART_HEADER_BYTES = 8, MANIFEST_MAGIC = 1296126019, MANIFEST_VERSION = 1, MANIFEST_HEADER_BYTES = 24, MANIFEST_PART_BYTES = chunkUQYO3OM7_js.DIGEST_BYTES + 8, SEGMENT_BYTES = 16, MAX_MANIFEST_PARTS = 65535, MAX_ASSET_BYTES = 512 * 1024 * 1024, PartKind = {
6
+ var PART_MAGIC = 1414680643, PART_VERSION = 1, PART_HEADER_BYTES = 8, MANIFEST_MAGIC = 1296126019, MANIFEST_VERSION = 1, MANIFEST_HEADER_BYTES = 24, MANIFEST_PART_BYTES = chunk4ZDR72SG_js.DIGEST_BYTES + 8, SEGMENT_BYTES = 16, MAX_MANIFEST_PARTS = 65535, MAX_ASSET_BYTES = 512 * 1024 * 1024, PartKind = {
7
7
  data: 0,
8
8
  scene: 1,
9
9
  mesh_index: 2,
@@ -56,8 +56,8 @@ function encodeManifest(manifest) {
56
56
  v.setUint32(0, (1296126019), true), v.setUint8(4, (1)), v.setUint8(5, manifest.kind), v.setUint16(6, manifest.parts.length, true), v.setUint32(8, manifest.length, true), v.setUint32(12, manifest.segments.length, true), v.setUint32(16, manifest.literal.length, true);
57
57
  let at = (24);
58
58
  for (let part of manifest.parts) {
59
- if (!chunkUQYO3OM7_js.unhexAt(part.digest, out, at, chunkUQYO3OM7_js.DIGEST_BYTES)) throw new PartFormatError(`part digest ${part.digest} is not 32 hex bytes`);
60
- v.setUint8(at + chunkUQYO3OM7_js.DIGEST_BYTES, part.kind), v.setUint32(at + chunkUQYO3OM7_js.DIGEST_BYTES + 4, part.length, true), at += MANIFEST_PART_BYTES;
59
+ if (!chunk4ZDR72SG_js.unhexAt(part.digest, out, at, chunk4ZDR72SG_js.DIGEST_BYTES)) throw new PartFormatError(`part digest ${part.digest} is not 32 hex bytes`);
60
+ v.setUint8(at + chunk4ZDR72SG_js.DIGEST_BYTES, part.kind), v.setUint32(at + chunk4ZDR72SG_js.DIGEST_BYTES + 4, part.length, true), at += MANIFEST_PART_BYTES;
61
61
  }
62
62
  for (let s of manifest.segments)
63
63
  v.setUint8(at, s.op), v.setUint16(at + 2, s.op === SegmentOp.literal ? 0 : s.part, true), v.setUint32(at + 4, s.offset, true), v.setUint32(at + 8, s.length, true), v.setUint32(at + 12, s.op === SegmentOp.delta ? s.output : s.length, true), at += (16);
@@ -71,8 +71,8 @@ function decodeManifest(payload) {
71
71
  if (literalAt + literalBytes !== payload.length) throw new PartFormatError("the asset manifest's tables do not match its length");
72
72
  let parts = [], at = (24);
73
73
  for (let p = 0; p < partCount; p++) {
74
- let partKind = v.getUint8(at + chunkUQYO3OM7_js.DIGEST_BYTES);
75
- partKindName(partKind), parts.push({ digest: chunkUQYO3OM7_js.hexAt(payload, at, chunkUQYO3OM7_js.DIGEST_BYTES), kind: partKind, length: v.getUint32(at + chunkUQYO3OM7_js.DIGEST_BYTES + 4, true) }), at += MANIFEST_PART_BYTES;
74
+ let partKind = v.getUint8(at + chunk4ZDR72SG_js.DIGEST_BYTES);
75
+ partKindName(partKind), parts.push({ digest: chunk4ZDR72SG_js.hexAt(payload, at, chunk4ZDR72SG_js.DIGEST_BYTES), kind: partKind, length: v.getUint32(at + chunk4ZDR72SG_js.DIGEST_BYTES + 4, true) }), at += MANIFEST_PART_BYTES;
76
76
  }
77
77
  let segments = [];
78
78
  for (let s = 0; s < segmentCount; s++) {