@cimplify/sdk 0.108.0 → 0.110.2
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.
- package/LICENSE +21 -0
- package/dist/advanced.d.mts +4 -3
- package/dist/advanced.d.ts +4 -3
- package/dist/advanced.js +24 -24
- package/dist/advanced.mjs +5 -5
- package/dist/animation-4EXBXRVX.js +27 -0
- package/dist/animation-6DICNWUP.mjs +6 -0
- package/dist/audio-DhvyjqdA.d.mts +249 -0
- package/dist/audio-m0w8cnxq.d.ts +249 -0
- package/dist/avatars.d.mts +110 -0
- package/dist/avatars.d.ts +110 -0
- package/dist/avatars.js +82 -0
- package/dist/avatars.mjs +5 -0
- package/dist/backend-gUCzs5Kg.d.mts +3866 -0
- package/dist/backend-gUCzs5Kg.d.ts +3866 -0
- package/dist/{catalogue-B4eLL8Mi.d.ts → catalogue-CPTMyBUz.d.mts} +109 -221
- package/dist/catalogue-DzrTXP3v.d.mts +541 -0
- package/dist/catalogue-DzrTXP3v.d.ts +541 -0
- package/dist/{catalogue-OT89_Ifs.d.mts → catalogue-OTuS5zp-.d.ts} +109 -221
- package/dist/chunk-22BD3RHN.mjs +1809 -0
- package/dist/chunk-25T4JHEA.mjs +21 -0
- package/dist/chunk-2AQ237Y4.js +508 -0
- package/dist/chunk-2IC4H6OV.mjs +48 -0
- package/dist/chunk-2LHLG4OB.mjs +71 -0
- package/dist/chunk-2O2CG465.js +1709 -0
- package/dist/chunk-2Q4DTHXK.js +316 -0
- package/dist/chunk-2QTQ6BUH.mjs +46 -0
- package/dist/chunk-2UN4SFLR.mjs +100 -0
- package/dist/chunk-2V75I7K3.js +454 -0
- package/dist/chunk-2V7IL4HC.js +10 -0
- package/dist/chunk-34XBXUMW.js +296 -0
- package/dist/chunk-3C4C654I.js +71 -0
- package/dist/chunk-3DAD2LDF.mjs +72 -0
- package/dist/chunk-3GXH2NFD.mjs +4 -0
- package/dist/chunk-3O47ZFW3.js +961 -0
- package/dist/chunk-3OY3VYNF.mjs +11 -0
- package/dist/chunk-3S6WPBZL.js +2936 -0
- package/dist/chunk-3TUOUP5T.js +399 -0
- package/dist/chunk-3VEH23I5.mjs +1380 -0
- package/dist/chunk-3ZYSAW2T.mjs +263 -0
- package/dist/chunk-4ANVF274.js +103 -0
- package/dist/chunk-4C7I3ELN.js +388 -0
- package/dist/chunk-4DYKAYFO.mjs +8 -0
- package/dist/chunk-4ZDR72SG.js +329 -0
- package/dist/chunk-52YS45RR.js +1066 -0
- package/dist/chunk-5325XSCH.js +107 -0
- package/dist/chunk-5AD5X6AV.js +13 -0
- package/dist/chunk-5BYDGGWO.mjs +197 -0
- package/dist/chunk-5C3C7VDM.mjs +55 -0
- package/dist/chunk-5HFMY3D7.js +660 -0
- package/dist/chunk-5LH2QN3T.js +1862 -0
- package/dist/chunk-5PJEXSOW.js +44 -0
- package/dist/chunk-5SXDH3Y7.js +90 -0
- package/dist/chunk-5YFBGGCK.mjs +502 -0
- package/dist/chunk-5YWN6H5Q.mjs +133 -0
- package/dist/chunk-66QP3SMN.js +402 -0
- package/dist/chunk-6DAEZKIG.mjs +385 -0
- package/dist/chunk-6DATW7TB.mjs +420 -0
- package/dist/{chunk-JRGK3NXR.mjs → chunk-6ETDAU62.mjs} +72 -212
- package/dist/chunk-6H254EVP.mjs +178 -0
- package/dist/chunk-6PFNJPBJ.mjs +820 -0
- package/dist/chunk-6PJWXIFX.mjs +357 -0
- package/dist/chunk-6SWKWCMS.js +80 -0
- package/dist/chunk-6VVXXX7S.js +808 -0
- package/dist/chunk-6WUBSMTX.js +1403 -0
- package/dist/chunk-73SGZLAQ.mjs +35 -0
- package/dist/chunk-76L2V6KD.mjs +4 -0
- package/dist/chunk-7AAIAVAA.js +1531 -0
- package/dist/chunk-7ARSJPV3.mjs +93 -0
- package/dist/chunk-7BHW5GTC.mjs +1234 -0
- package/dist/chunk-7DQSDKDU.js +6 -0
- package/dist/chunk-7IQQQENP.mjs +401 -0
- package/dist/chunk-7KFTYENS.js +11357 -0
- package/dist/chunk-7SM6XSPZ.js +3171 -0
- package/dist/chunk-7SXOHAIR.mjs +28 -0
- package/dist/chunk-A2MAX6S4.js +90 -0
- package/dist/chunk-A33OORT7.mjs +1530 -0
- package/dist/{chunk-U6ACF76H.mjs → chunk-A36JRXXH.mjs} +1075 -1845
- package/dist/chunk-A7BU3BK4.js +52 -0
- package/dist/chunk-A7MQSN2V.mjs +77 -0
- package/dist/chunk-A7V4L2IT.mjs +416 -0
- package/dist/chunk-AABEK6XU.js +226 -0
- package/dist/chunk-AGV33FWC.mjs +5005 -0
- package/dist/chunk-AHNR3BXI.js +108 -0
- package/dist/chunk-AQ5RLBU2.mjs +286 -0
- package/dist/chunk-AQOE6WCG.js +1270 -0
- package/dist/chunk-ATAWRACV.mjs +62 -0
- package/dist/chunk-ATCURNUV.js +14 -0
- package/dist/chunk-AWPV33OO.js +6 -0
- package/dist/chunk-AYJPHKYV.js +337 -0
- package/dist/chunk-AZ5BGWHB.js +162 -0
- package/dist/chunk-AZAXD44P.js +1373 -0
- package/dist/chunk-BBGKQIJJ.mjs +406 -0
- package/dist/chunk-BP4JLSUA.js +1453 -0
- package/dist/{chunk-SUCE7FWA.mjs → chunk-BTUSVHIE.mjs} +539 -978
- package/dist/chunk-BU6OK542.mjs +818 -0
- package/dist/chunk-CVSRWM6W.js +418 -0
- package/dist/chunk-CYBMFMJD.mjs +247 -0
- package/dist/chunk-DDJLDOUX.mjs +217 -0
- package/dist/{chunk-V32BCG7M.js → chunk-DFZWHNRG.js} +75 -215
- package/dist/chunk-DJ2C7AVG.js +644 -0
- package/dist/chunk-DS2VU4WW.mjs +102 -0
- package/dist/chunk-DSAG7T5P.js +7290 -0
- package/dist/chunk-E2QPPH7I.js +327 -0
- package/dist/chunk-E65WCTIG.mjs +1187 -0
- package/dist/{chunk-33VCYWVL.mjs → chunk-E6QQKDNE.mjs} +30 -42
- package/dist/chunk-ECDK6QBF.mjs +981 -0
- package/dist/chunk-EIB4OWVQ.mjs +620 -0
- package/dist/chunk-EQUZYCGO.js +250 -0
- package/dist/chunk-F3UJ6ZRM.mjs +313 -0
- package/dist/chunk-F63N2ZTQ.js +7023 -0
- package/dist/chunk-F6XRYEM3.mjs +26 -0
- package/dist/chunk-FE6VCE4K.js +5030 -0
- package/dist/chunk-FLWD6GRR.js +1372 -0
- package/dist/chunk-FQBFWJBS.mjs +110 -0
- package/dist/chunk-FXVJ2HFU.js +26 -0
- package/dist/chunk-FZMQMQBW.js +312 -0
- package/dist/chunk-G3EEC44R.js +53 -0
- package/dist/{chunk-KG3WT4PR.mjs → chunk-GCKWKLZF.mjs} +73 -104
- package/dist/chunk-GCX7TY4D.mjs +6826 -0
- package/dist/chunk-GDB6TCSD.js +450 -0
- package/dist/chunk-GDCV4IWO.mjs +21 -0
- package/dist/chunk-GDZT5LZ5.js +170 -0
- package/dist/chunk-GHPUYD4I.mjs +213 -0
- package/dist/chunk-GHS6MIL6.mjs +1432 -0
- package/dist/chunk-GPS2THCL.mjs +11 -0
- package/dist/{chunk-EV2EVOYS.js → chunk-GTJWQAGU.js} +31 -42
- package/dist/chunk-GVTI6UJQ.mjs +130 -0
- package/dist/chunk-GXKI64OT.mjs +1138 -0
- package/dist/chunk-GYDYF2WX.js +275 -0
- package/dist/chunk-GYLP6UG4.mjs +705 -0
- package/dist/chunk-H3OQKK6X.js +1158 -0
- package/dist/chunk-H5DFSCJ6.js +40 -0
- package/dist/chunk-HAGEIC2L.mjs +186 -0
- package/dist/chunk-HAJ4JRFO.js +293 -0
- package/dist/chunk-HDR72GB6.js +188 -0
- package/dist/chunk-HF5HPS4T.mjs +40 -0
- package/dist/chunk-HK6LOFDS.js +218 -0
- package/dist/chunk-HMWYTXCY.mjs +143 -0
- package/dist/chunk-HPCSRCMA.js +89 -0
- package/dist/chunk-HSEO6TPU.js +247 -0
- package/dist/chunk-I5FOHCLH.js +132 -0
- package/dist/chunk-IDLW4NWA.mjs +85 -0
- package/dist/chunk-IIDZ5WUX.js +61 -0
- package/dist/chunk-IR74FJHU.js +2332 -0
- package/dist/chunk-IRVFYAKP.mjs +100 -0
- package/dist/{chunk-XBL3TMPC.mjs → chunk-IZDWAL53.mjs} +1795 -3287
- package/dist/chunk-J2KZXIU3.js +51 -0
- package/dist/chunk-J2U6PJSO.js +91 -0
- package/dist/chunk-J5AJNY2N.js +283 -0
- package/dist/chunk-J6KQZ4FO.mjs +821 -0
- package/dist/{chunk-OWW5GUSB.js → chunk-JGBCIKJV.js} +7 -6
- package/dist/chunk-JKGTBMU7.mjs +25 -0
- package/dist/chunk-JR3TNEQC.js +422 -0
- package/dist/chunk-JURRXY2J.mjs +29 -0
- package/dist/chunk-K3HW5I2A.mjs +317 -0
- package/dist/chunk-K46SMZ66.mjs +103 -0
- package/dist/chunk-K4UDGE3Z.mjs +6 -0
- package/dist/chunk-KDQOR4QQ.mjs +350 -0
- package/dist/chunk-KDTVOLHI.mjs +288 -0
- package/dist/chunk-KGHJH5KJ.mjs +35 -0
- package/dist/chunk-KIZOA5LX.mjs +140 -0
- package/dist/chunk-KK6HYVBI.mjs +242 -0
- package/dist/chunk-KMKWGXMK.js +856 -0
- package/dist/chunk-KPA6K5IB.js +80 -0
- package/dist/chunk-KU7O4IXU.mjs +260 -0
- package/dist/chunk-KVFNRJOR.mjs +11142 -0
- package/dist/chunk-KZJRSXHK.js +2432 -0
- package/dist/chunk-LHWPRUJL.js +79 -0
- package/dist/chunk-LIV3KXJG.mjs +369 -0
- package/dist/chunk-LKV4LACG.js +21 -0
- package/dist/chunk-LUY45X3U.mjs +263 -0
- package/dist/chunk-LYEZZEEF.mjs +17 -0
- package/dist/chunk-M5EXQZYY.mjs +1519 -0
- package/dist/chunk-ME6HGG4I.mjs +1338 -0
- package/dist/chunk-MEXP6DA6.js +31 -0
- package/dist/chunk-MG52AW3H.js +902 -0
- package/dist/chunk-MIPO6F72.js +334 -0
- package/dist/{chunk-5QW7CQBA.js → chunk-MKIJQL5Q.js} +211 -321
- package/dist/chunk-MN3YETVN.mjs +17 -0
- package/dist/chunk-MOBSBXVE.mjs +2391 -0
- package/dist/chunk-MOMOZEUM.mjs +88 -0
- package/dist/chunk-MRFUNRAP.js +62 -0
- package/dist/chunk-MTIHEW2M.js +433 -0
- package/dist/chunk-N4RGGDEL.mjs +73 -0
- package/dist/chunk-NH654HAT.js +10 -0
- package/dist/chunk-NHJUGZUR.mjs +253 -0
- package/dist/chunk-NMQT4HG3.mjs +757 -0
- package/dist/chunk-NPSYB6DC.mjs +906 -0
- package/dist/chunk-NW2GPMSO.js +857 -0
- package/dist/chunk-NXKQOQ6L.js +76 -0
- package/dist/chunk-NXLAZIJZ.js +309 -0
- package/dist/chunk-NYWNA5CF.js +148 -0
- package/dist/chunk-NZTKLY2W.js +1442 -0
- package/dist/chunk-O2ICABUD.js +36 -0
- package/dist/chunk-OIVVQQ22.js +862 -0
- package/dist/chunk-OKC2B4O3.mjs +312 -0
- package/dist/chunk-OLWFPDBK.js +2220 -0
- package/dist/chunk-OMTVH334.js +3779 -0
- package/dist/chunk-OQRVEM56.mjs +362 -0
- package/dist/chunk-OXMIBOD4.js +337 -0
- package/dist/chunk-PBL6YL5L.mjs +288 -0
- package/dist/chunk-PDOELNNQ.js +97 -0
- package/dist/chunk-PDQJY2GZ.js +136 -0
- package/dist/chunk-PKOZXD2Q.js +1274 -0
- package/dist/chunk-PPF2BYFL.mjs +2191 -0
- package/dist/chunk-PQTQKNKD.js +539 -0
- package/dist/chunk-PRSR4FAV.mjs +81 -0
- package/dist/chunk-PTRNO5UD.js +95 -0
- package/dist/chunk-Q2Y3VMKH.js +2000 -0
- package/dist/chunk-QCZOE65N.js +96 -0
- package/dist/chunk-QDYFLATW.mjs +52 -0
- package/dist/chunk-QQABGCMM.js +22 -0
- package/dist/chunk-QS6TRHMR.js +345 -0
- package/dist/chunk-R56P64LB.mjs +208 -0
- package/dist/chunk-RCQ2MPBV.js +428 -0
- package/dist/chunk-RFVRPYR2.mjs +856 -0
- package/dist/chunk-RKBLPGPV.js +11521 -0
- package/dist/chunk-RM2V4IND.mjs +327 -0
- package/dist/chunk-RQXN5A34.mjs +613 -0
- package/dist/chunk-RUVGVNOF.mjs +2687 -0
- package/dist/chunk-SAFJIGYB.mjs +165 -0
- package/dist/chunk-SKQFLBDD.js +263 -0
- package/dist/chunk-SMK6JU2F.mjs +2092 -0
- package/dist/{chunk-UVRPC2P7.js → chunk-SNNEOS5Z.js} +1984 -3476
- package/dist/chunk-SPCRQ6NO.mjs +1246 -0
- package/dist/chunk-SWX4SALA.mjs +19 -0
- package/dist/{chunk-JVODCGFP.mjs → chunk-SYEO2WV4.mjs} +128 -238
- package/dist/chunk-T2QQMX2N.js +10 -0
- package/dist/chunk-T3AFF3L7.mjs +57 -0
- package/dist/chunk-T6Z2EXYL.js +712 -0
- package/dist/chunk-T7LOXGYX.js +118 -0
- package/dist/chunk-TJCAE7RC.mjs +1315 -0
- package/dist/chunk-TJI3K6RP.js +137 -0
- package/dist/chunk-TL2SVO4P.mjs +55 -0
- package/dist/chunk-TM63CYGN.mjs +399 -0
- package/dist/chunk-TU5RYTYU.mjs +13 -0
- package/dist/chunk-TVJZ4GPS.js +1553 -0
- package/dist/chunk-TWM6DLYF.js +371 -0
- package/dist/chunk-U63OC4TQ.js +30 -0
- package/dist/{chunk-L5GKVQVJ.js → chunk-U6BVSJZ6.js} +25 -57
- package/dist/chunk-U6UVWEAK.mjs +792 -0
- package/dist/chunk-UCEPNO6N.mjs +11048 -0
- package/dist/{chunk-ANT574FD.js → chunk-UCR5HRYM.js} +74 -105
- package/dist/chunk-UG5BTOTF.mjs +334 -0
- package/dist/chunk-UGH37BQW.mjs +157 -0
- package/dist/chunk-V7ZRH3PY.mjs +271 -0
- package/dist/chunk-VBGHBL3E.mjs +1394 -0
- package/dist/chunk-VRBDAS5I.js +920 -0
- package/dist/chunk-VVE3Y76O.js +230 -0
- package/dist/chunk-W65JIRI4.mjs +1182 -0
- package/dist/chunk-WHYKAT7G.js +62 -0
- package/dist/{chunk-YOIVZ6OA.mjs → chunk-WIZRUIZB.mjs} +25 -57
- package/dist/chunk-WKWTDZS7.js +385 -0
- package/dist/chunk-WLMINRC4.mjs +78 -0
- package/dist/chunk-WOF3AD3J.js +22 -0
- package/dist/chunk-WWKMOA76.js +1262 -0
- package/dist/chunk-X5A5FOWW.js +615 -0
- package/dist/chunk-X6CN6KQF.mjs +192 -0
- package/dist/chunk-XD2PMH46.mjs +517 -0
- package/dist/chunk-XJA2NGTI.mjs +88 -0
- package/dist/chunk-XJIHN3BY.mjs +8 -0
- package/dist/chunk-XK6UDWJS.js +203 -0
- package/dist/chunk-XPG3N5CF.mjs +415 -0
- package/dist/chunk-XVZ2NKSU.mjs +74 -0
- package/dist/chunk-XYP45OLE.js +117 -0
- package/dist/chunk-XZSDGZX6.mjs +301 -0
- package/dist/chunk-Y2EMGN4T.mjs +120 -0
- package/dist/chunk-Y3XWP5XW.mjs +298 -0
- package/dist/chunk-Y4K22JL6.js +228 -0
- package/dist/chunk-Y65LXQGA.mjs +3164 -0
- package/dist/chunk-Y66WVMO5.mjs +87 -0
- package/dist/chunk-Y7JWLB25.mjs +7280 -0
- package/dist/chunk-YCDXAJKU.js +175 -0
- package/dist/chunk-YRDQCCIS.js +152 -0
- package/dist/chunk-YV52DGSA.js +111 -0
- package/dist/chunk-YXGZQPUD.js +94 -0
- package/dist/chunk-Z3A3AFVU.mjs +102 -0
- package/dist/chunk-ZCY6YKKP.mjs +475 -0
- package/dist/chunk-ZEQHXVU5.js +215 -0
- package/dist/chunk-ZF7JCXCI.js +284 -0
- package/dist/chunk-ZJBRUH6V.js +29 -0
- package/dist/chunk-ZMIL4ZOA.js +365 -0
- package/dist/chunk-ZR5ULMN2.mjs +337 -0
- package/dist/chunk-ZXREOYOW.js +87 -0
- package/dist/{client-BSP9U1O1.d.mts → client-CX_WR0-J.d.mts} +2 -2
- package/dist/client-Dytx_ZTC.d.ts +230 -0
- package/dist/{client-B878xeAP.d.ts → client-dqOhP9Nc.d.ts} +2 -2
- package/dist/client-hTKbCuhG.d.mts +230 -0
- package/dist/clock-B-UAjkKa.d.mts +5 -0
- package/dist/clock-B-UAjkKa.d.ts +5 -0
- package/dist/config-BlXQluJR.d.mts +36 -0
- package/dist/config-BlXQluJR.d.ts +36 -0
- package/dist/courier-Cnn-edJ4.d.ts +95 -0
- package/dist/courier-FmGfkvIN.d.mts +95 -0
- package/dist/crowd-DdHFbqKK.d.ts +186 -0
- package/dist/crowd-hOVSAmA3.d.mts +186 -0
- package/dist/danfo-BEBapFlX.d.mts +146 -0
- package/dist/danfo-UQ_PTIIx.d.ts +146 -0
- package/dist/{elements-Bty6Qs_N.d.mts → elements-DdsRig-2.d.mts} +1548 -257
- package/dist/{elements-Bty6Qs_N.d.ts → elements-DdsRig-2.d.ts} +1548 -257
- package/dist/engines/godot.d.mts +56 -0
- package/dist/engines/godot.d.ts +56 -0
- package/dist/engines/godot.js +28 -0
- package/dist/engines/godot.mjs +3 -0
- package/dist/engines/wasm.d.mts +11 -0
- package/dist/engines/wasm.d.ts +11 -0
- package/dist/engines/wasm.js +178 -0
- package/dist/engines/wasm.mjs +176 -0
- package/dist/fallback-CrG_lTFk.d.mts +270 -0
- package/dist/fallback-CrG_lTFk.d.ts +270 -0
- package/dist/fallback-KDB4Y2CE.mjs +6 -0
- package/dist/fallback-Y26TQENE.js +19 -0
- package/dist/features-CZB4rmcD.d.mts +118 -0
- package/dist/features-CZB4rmcD.d.ts +118 -0
- package/dist/fit-BWiE7rgA.d.mts +44 -0
- package/dist/fit-DK0oT7zO.d.ts +44 -0
- package/dist/five-a-side-Bv1AOUy3.d.mts +115 -0
- package/dist/five-a-side-EC51SJY1.d.ts +115 -0
- package/dist/fluid-ARr0qUIL.d.ts +939 -0
- package/dist/fluid-DLlEj2cs.d.mts +939 -0
- package/dist/game/conformance.d.mts +84 -0
- package/dist/game/conformance.d.ts +84 -0
- package/dist/game/conformance.js +1025 -0
- package/dist/game/conformance.mjs +994 -0
- package/dist/game/heap.d.mts +40 -0
- package/dist/game/heap.d.ts +40 -0
- package/dist/game/heap.js +48 -0
- package/dist/game/heap.mjs +7 -0
- package/dist/game/kit/canvas.d.mts +240 -0
- package/dist/game/kit/canvas.d.ts +240 -0
- package/dist/game/kit/canvas.js +3566 -0
- package/dist/game/kit/canvas.mjs +1039 -0
- package/dist/game/kit/courier.d.mts +17 -0
- package/dist/game/kit/courier.d.ts +17 -0
- package/dist/game/kit/courier.js +66 -0
- package/dist/game/kit/courier.mjs +49 -0
- package/dist/game/kit/danfo.d.mts +11 -0
- package/dist/game/kit/danfo.d.ts +11 -0
- package/dist/game/kit/danfo.js +109 -0
- package/dist/game/kit/danfo.mjs +44 -0
- package/dist/game/kit/engine.d.mts +29 -0
- package/dist/game/kit/engine.d.ts +29 -0
- package/dist/game/kit/engine.js +183 -0
- package/dist/game/kit/engine.mjs +30 -0
- package/dist/game/kit/five-a-side.d.mts +11 -0
- package/dist/game/kit/five-a-side.d.ts +11 -0
- package/dist/game/kit/five-a-side.js +86 -0
- package/dist/game/kit/five-a-side.mjs +41 -0
- package/dist/game/kit/frontier.d.mts +344 -0
- package/dist/game/kit/frontier.d.ts +344 -0
- package/dist/game/kit/frontier.js +435 -0
- package/dist/game/kit/frontier.mjs +14 -0
- package/dist/game/kit/genesis.d.mts +752 -0
- package/dist/game/kit/genesis.d.ts +752 -0
- package/dist/game/kit/genesis.js +380 -0
- package/dist/game/kit/genesis.mjs +15 -0
- package/dist/game/kit/ludo.d.mts +15 -0
- package/dist/game/kit/ludo.d.ts +15 -0
- package/dist/game/kit/ludo.js +87 -0
- package/dist/game/kit/ludo.mjs +42 -0
- package/dist/game/kit/runner.d.mts +12 -0
- package/dist/game/kit/runner.d.ts +12 -0
- package/dist/game/kit/runner.js +83 -0
- package/dist/game/kit/runner.mjs +46 -0
- package/dist/game/kit/shootout.d.mts +13 -0
- package/dist/game/kit/shootout.d.ts +13 -0
- package/dist/game/kit/shootout.js +122 -0
- package/dist/game/kit/shootout.mjs +57 -0
- package/dist/game/kit/slots.d.mts +392 -0
- package/dist/game/kit/slots.d.ts +392 -0
- package/dist/game/kit/slots.js +215 -0
- package/dist/game/kit/slots.mjs +6 -0
- package/dist/game/kit/tycoon.d.mts +16 -0
- package/dist/game/kit/tycoon.d.ts +16 -0
- package/dist/game/kit/tycoon.js +145 -0
- package/dist/game/kit/tycoon.mjs +44 -0
- package/dist/game/kit/word.d.mts +11 -0
- package/dist/game/kit/word.d.ts +11 -0
- package/dist/game/kit/word.js +78 -0
- package/dist/game/kit/word.mjs +41 -0
- package/dist/game/kit/worlds.d.mts +18 -0
- package/dist/game/kit/worlds.d.ts +18 -0
- package/dist/game/kit/worlds.js +74 -0
- package/dist/game/kit/worlds.mjs +49 -0
- package/dist/game/kit.d.mts +53 -0
- package/dist/game/kit.d.ts +53 -0
- package/dist/game/kit.js +2610 -0
- package/dist/game/kit.mjs +101 -0
- package/dist/game/prepared.d.mts +14 -0
- package/dist/game/prepared.d.ts +14 -0
- package/dist/game/prepared.js +81 -0
- package/dist/game/prepared.mjs +32 -0
- package/dist/game-Bx8onkhX.d.mts +1451 -0
- package/dist/game-fgQy2YIm.d.ts +1451 -0
- package/dist/game-theme-CBTw1b_d.d.mts +35 -0
- package/dist/game-theme-Dg-ict5A.d.ts +35 -0
- package/dist/game.d.mts +3546 -0
- package/dist/game.d.ts +3546 -0
- package/dist/game.js +4455 -0
- package/dist/game.mjs +50 -0
- package/dist/graphics-C6YjWYvP.d.ts +5 -0
- package/dist/graphics-Dk2yQnYN.d.mts +5 -0
- package/dist/guest-DrsA00XD.d.mts +732 -0
- package/dist/guest-wIdfoT05.d.ts +732 -0
- package/dist/hit-stop-BKkVwTq7.d.mts +43 -0
- package/dist/hit-stop-D-8pPYnM.d.ts +43 -0
- package/dist/hot-Crn9XpHJ.d.ts +29 -0
- package/dist/hot-DH3nOhQD.d.mts +29 -0
- package/dist/{index-CQStGb3B.d.mts → index-6gkHMGAq.d.mts} +2 -2
- package/dist/index-B8ybCKJI.d.ts +41 -0
- package/dist/{index-DJwXmoaP.d.ts → index-B98Xac8e.d.ts} +2 -2
- package/dist/{index-B7oA_1XI.d.ts → index-B_ByTtIT.d.ts} +2 -2
- package/dist/index-DHjNHb1c.d.mts +41 -0
- package/dist/{index-DhUSTAhT.d.mts → index-DbAN_VQE.d.mts} +2 -2
- package/dist/index.d.mts +134 -24
- package/dist/index.d.ts +134 -24
- package/dist/index.js +407 -248
- package/dist/index.mjs +184 -58
- package/dist/interactives-authoring.d.mts +231 -0
- package/dist/interactives-authoring.d.ts +231 -0
- package/dist/interactives-authoring.js +1743 -0
- package/dist/interactives-authoring.mjs +1704 -0
- package/dist/interactives-canvas.global.js +148 -0
- package/dist/interactives-guest.d.mts +20 -0
- package/dist/interactives-guest.d.ts +20 -0
- package/dist/interactives-guest.js +63 -0
- package/dist/interactives-guest.json +1 -0
- package/dist/interactives-guest.mjs +61 -0
- package/dist/interactives-jsc.global.js +9357 -0
- package/dist/interactives-meters.d.mts +93 -0
- package/dist/interactives-meters.d.ts +93 -0
- package/dist/interactives-meters.js +252 -0
- package/dist/interactives-meters.mjs +68 -0
- package/dist/interactives-production.d.mts +430 -0
- package/dist/interactives-production.d.ts +430 -0
- package/dist/interactives-production.js +1231 -0
- package/dist/interactives-production.mjs +1170 -0
- package/dist/interactives-record.d.mts +112 -0
- package/dist/interactives-record.d.ts +112 -0
- package/dist/interactives-record.js +302 -0
- package/dist/interactives-record.mjs +295 -0
- package/dist/interactives-runtime.d.mts +61 -0
- package/dist/interactives-runtime.d.ts +61 -0
- package/dist/interactives-runtime.js +442 -0
- package/dist/interactives-runtime.mjs +25 -0
- package/dist/interactives-studio-kernel.global.js +1 -0
- package/dist/interactives-studio.d.mts +806 -0
- package/dist/interactives-studio.d.ts +806 -0
- package/dist/interactives-studio.js +5741 -0
- package/dist/interactives-studio.mjs +5651 -0
- package/dist/interactives-tick.d.mts +90 -0
- package/dist/interactives-tick.d.ts +90 -0
- package/dist/interactives-tick.js +203 -0
- package/dist/interactives-tick.mjs +6 -0
- package/dist/interactives-web.d.mts +762 -0
- package/dist/interactives-web.d.ts +762 -0
- package/dist/interactives-web.js +5000 -0
- package/dist/interactives-web.mjs +4628 -0
- package/dist/interactives.d.mts +2430 -0
- package/dist/interactives.d.ts +2430 -0
- package/dist/interactives.js +5723 -0
- package/dist/interactives.mjs +4333 -0
- package/dist/juice-CoHxlpKA.d.ts +42 -0
- package/dist/juice-DQztFS43.d.mts +42 -0
- package/dist/launch-T2f4_Di4.d.mts +151 -0
- package/dist/launch-d6oreMzR.d.ts +151 -0
- package/dist/library-DXYaMFhi.d.mts +69 -0
- package/dist/library-DXYaMFhi.d.ts +69 -0
- package/dist/link-BUTqGmyi.d.mts +38 -0
- package/dist/link-BUTqGmyi.d.ts +38 -0
- package/dist/lint.js +104 -204
- package/dist/lint.mjs +103 -203
- package/dist/local-D8_I6UeL.d.mts +6967 -0
- package/dist/local-VZkqsCzR.d.ts +6967 -0
- package/dist/lockstep-BLf6dglI.d.mts +321 -0
- package/dist/lockstep-D50Ia0JW.d.ts +321 -0
- package/dist/ludo-B8ClkDqr.d.ts +205 -0
- package/dist/ludo-BOuohQ-M.d.mts +205 -0
- package/dist/mock/cli.mjs +200 -56
- package/dist/mock/library.js +200 -56
- package/dist/mock/library.mjs +200 -56
- package/dist/mock/msw.js +200 -56
- package/dist/mock/msw.mjs +200 -56
- package/dist/native-BodxSh03.d.mts +16 -0
- package/dist/native-DUHMT8gA.d.ts +16 -0
- package/dist/network-ZXLD7l1b.d.mts +19 -0
- package/dist/network-ZXLD7l1b.d.ts +19 -0
- package/dist/online-XeymeM9s.d.ts +381 -0
- package/dist/online-d7W_Al9a.d.mts +381 -0
- package/dist/params-DxFb5G_U.d.mts +155 -0
- package/dist/params-DxFb5G_U.d.ts +155 -0
- package/dist/play-BRRlfLhX.d.ts +940 -0
- package/dist/play-ClrMd_e8.d.mts +940 -0
- package/dist/policy-CCw8tXLm.d.mts +3078 -0
- package/dist/policy-CMqOSQIu.d.ts +3078 -0
- package/dist/ports-B_0v_P3A.d.mts +13 -0
- package/dist/ports-CGU_3e_0.d.ts +13 -0
- package/dist/prefetch-BHnicOQj.d.ts +117 -0
- package/dist/prefetch-CBXgYacv.d.mts +117 -0
- package/dist/{price-CSztR02F.d.mts → price-BOzexBww.d.mts} +1 -1
- package/dist/{price-C_vasx9A.d.ts → price-C1h9sPxE.d.ts} +1 -1
- package/dist/protocol-C8qbpUbT.d.mts +242 -0
- package/dist/protocol-C8qbpUbT.d.ts +242 -0
- package/dist/rapier-AZHT4YI7.js +7886 -0
- package/dist/rapier-ODEPCQA6.mjs +7792 -0
- package/dist/react.d.mts +157 -15
- package/dist/react.d.ts +157 -15
- package/dist/react.js +5564 -5904
- package/dist/react.mjs +5451 -5808
- package/dist/runner-CQcLL7By.d.ts +189 -0
- package/dist/runner-D46Yj-wE.d.mts +189 -0
- package/dist/runtime-BRWfkf_q.d.mts +51 -0
- package/dist/runtime-DyuBMkKM.d.ts +51 -0
- package/dist/scheduling-D2ajXpMC.d.ts +224 -0
- package/dist/scheduling-DSRbbaZb.d.mts +224 -0
- package/dist/schema-BrWxzKp6.d.mts +63 -0
- package/dist/schema-BrWxzKp6.d.ts +63 -0
- package/dist/server/evict.js +34 -37
- package/dist/server/evict.mjs +34 -37
- package/dist/server/tanstack.d.mts +49 -3
- package/dist/server/tanstack.d.ts +49 -3
- package/dist/server/tanstack.js +169 -117
- package/dist/server/tanstack.mjs +166 -118
- package/dist/{server-Dckg4Vdr.d.ts → server-D29IIuDV.d.ts} +136 -130
- package/dist/{server-B6dW7-Lj.d.mts → server-DQMWPnc8.d.mts} +136 -130
- package/dist/server.d.mts +45 -5
- package/dist/server.d.ts +45 -5
- package/dist/server.js +171 -227
- package/dist/server.mjs +165 -225
- package/dist/session-grant-CJ27DwrT.d.mts +19 -0
- package/dist/session-grant-CJ27DwrT.d.ts +19 -0
- package/dist/shootout-BJZeX6FG.d.ts +140 -0
- package/dist/shootout-tcZd1Rxt.d.mts +140 -0
- package/dist/state-replica-stMtdkVD.d.mts +42 -0
- package/dist/state-replica-stMtdkVD.d.ts +42 -0
- package/dist/studio-CowqWqez.d.mts +14 -0
- package/dist/studio-CowqWqez.d.ts +14 -0
- package/dist/styles.css +1 -1
- package/dist/template-AhCdB1kW.d.mts +190 -0
- package/dist/template-BkEGVTQj.d.ts +190 -0
- package/dist/terrain-BMxEc6Oc.d.ts +429 -0
- package/dist/terrain-C-XC1Oui.d.mts +429 -0
- package/dist/testing/msw.d.mts +28 -4
- package/dist/testing/msw.d.ts +28 -4
- package/dist/testing/msw.js +15 -21
- package/dist/testing/msw.mjs +15 -21
- package/dist/testing/suite.d.mts +6 -5
- package/dist/testing/suite.d.ts +6 -5
- package/dist/testing/suite.js +89 -124
- package/dist/testing/suite.mjs +81 -116
- package/dist/testing.d.mts +27 -1227
- package/dist/testing.d.ts +27 -1227
- package/dist/testing.js +127 -131
- package/dist/testing.mjs +19 -23
- package/dist/tick-transport-C8QEh8Uw.d.mts +50 -0
- package/dist/tick-transport-UjHY3xK1.d.ts +50 -0
- package/dist/timeline-protocol-hp6e8zFB.d.mts +47 -0
- package/dist/timeline-protocol-hp6e8zFB.d.ts +47 -0
- package/dist/tokens-DhanQRQS.d.mts +21 -0
- package/dist/tokens-K8yxwd6G.d.ts +21 -0
- package/dist/tree-C-Io2Hbx.d.mts +35 -0
- package/dist/tree-CP_qSW4H.d.ts +35 -0
- package/dist/tycoon-B5KHk2Xx.d.mts +255 -0
- package/dist/tycoon-hmHo-3HX.d.ts +255 -0
- package/dist/types-BQkxPwZP.d.mts +219 -0
- package/dist/types-D_f6UUxM.d.ts +219 -0
- package/dist/ui-DwHicuFv.d.mts +563 -0
- package/dist/ui-hi7S2YcH.d.ts +563 -0
- package/dist/{sign-in-DQlIdqsi.d.mts → url-52ndUruG.d.mts} +15 -1
- package/dist/{sign-in-DQlIdqsi.d.ts → url-52ndUruG.d.ts} +15 -1
- package/dist/utils.d.mts +3 -3
- package/dist/utils.d.ts +3 -3
- package/dist/utils.js +37 -37
- package/dist/utils.mjs +4 -4
- package/dist/vars-Dc_PrhBK.d.mts +511 -0
- package/dist/vars-Dc_PrhBK.d.ts +511 -0
- package/dist/vm-IUARFFAI.mjs +63 -0
- package/dist/vm-N7L6MGGH.js +65 -0
- package/dist/weave-delivery-CW-Kstut.d.mts +360 -0
- package/dist/weave-delivery-CW-Kstut.d.ts +360 -0
- package/dist/web-Dss74a7v.d.ts +883 -0
- package/dist/web-f9ZQPoyw.d.mts +883 -0
- package/dist/web-transport-C7MkBL0a.d.ts +19 -0
- package/dist/web-transport-aYEqXMd9.d.mts +19 -0
- package/dist/weight-CPGjsgjV.d.ts +92 -0
- package/dist/weight-tF1ODR1p.d.mts +92 -0
- package/dist/word-BcX9Jcmv.d.mts +70 -0
- package/dist/word-C7sVPLHm.d.ts +70 -0
- package/dist/world-PvILHDR1.d.ts +2285 -0
- package/dist/world-qekkXjJv.d.mts +2285 -0
- package/dist/worlds-Br2Pb0Cs.d.ts +109 -0
- package/dist/worlds-D5ydYr7d.d.mts +109 -0
- package/engines/c/cimplify.h +108 -0
- package/engines/c/cimplify.lib.js +11 -0
- package/engines/godot/addons/cimplify/cimplify.gd +97 -0
- package/engines/rust/interactives-ctx/Cargo.toml +9 -0
- package/engines/rust/interactives-ctx/src/lib.rs +189 -0
- package/package.json +189 -3
- package/vendor/rapier3d-compat/LICENSE +201 -0
- package/vendor/rapier3d-compat/PATCHES.md +61 -0
- package/dist/chunk-2P4KXFB6.js +0 -274
- package/dist/chunk-3G6RQLXK.mjs +0 -21
- package/dist/chunk-3V4DVXV3.mjs +0 -254
- package/dist/chunk-EDK3LNM6.js +0 -2436
- package/dist/chunk-F7J3HK27.js +0 -4549
- package/dist/chunk-U4MW6PYU.mjs +0 -23
- package/dist/chunk-XREIZ56K.js +0 -26
|
@@ -0,0 +1,1451 @@
|
|
|
1
|
+
import { D as DespawnListener, W as World, T as Transforms, E as Entity, e as Physics, N as Nav, f as PhysicsOptions, S as SoftBodies, g as SoftBodyShape, h as SoftBodyOptions, i as SoftBody, b as TableSchema, j as EntityTableOptions, a as EntityTable } from './world-PvILHDR1.js';
|
|
2
|
+
import { aw as Quat, F as FrameTime, V as Vec3, ax as AiPort, ay as AiWorldOptions, az as ArchetypeDecl, f as Vec3Like, aA as ChemistryEngine, aB as ReactivePort, ag as MediumDesc, ah as MediumVolume, aC as SmokePort, aD as StoryPort, a1 as EmitterId, aE as DestructionPort, aj as ModelInfo, aF as StructureDesc, G as GameBackend, a as FixedStepLoop, aG as LoopOptions, r as GameSurface, aH as FractureMesh, aI as FractureOptions } from './backend-gUCzs5Kg.js';
|
|
3
|
+
import { A as Audio } from './audio-m0w8cnxq.js';
|
|
4
|
+
import { a as RoomClientOptions, R as RoomClient } from './client-Dytx_ZTC.js';
|
|
5
|
+
import { c as FluidGridDesc, d as FluidDesc, e as FluidEmitterDesc, b as Graphics, S as SceneManager, f as GamePrefetch, P as PrefetchAssets, g as Fluid, C as Cloths, h as ClothShape, i as ClothOptions, j as ClothSheet, G as GameScene, a as GameSystem, k as GameReload, R as ReloadReport } from './fluid-ARr0qUIL.js';
|
|
6
|
+
|
|
7
|
+
declare const Ease: {
|
|
8
|
+
readonly Linear: 0;
|
|
9
|
+
readonly InQuad: 1;
|
|
10
|
+
readonly OutQuad: 2;
|
|
11
|
+
readonly InOutQuad: 3;
|
|
12
|
+
readonly InCubic: 4;
|
|
13
|
+
readonly OutCubic: 5;
|
|
14
|
+
readonly InOutCubic: 6;
|
|
15
|
+
readonly OutBack: 7;
|
|
16
|
+
readonly OutElastic: 8;
|
|
17
|
+
readonly OutBounce: 9;
|
|
18
|
+
readonly InSine: 10;
|
|
19
|
+
readonly OutSine: 11;
|
|
20
|
+
readonly InOutSine: 12;
|
|
21
|
+
readonly OutExpo: 13;
|
|
22
|
+
};
|
|
23
|
+
type EaseId = (typeof Ease)[keyof typeof Ease];
|
|
24
|
+
declare function ease(id: number, t: number): number;
|
|
25
|
+
declare function easeInPlace(id: number, registers: Float64Array, slot: number): void;
|
|
26
|
+
|
|
27
|
+
declare const tweenBrand: unique symbol;
|
|
28
|
+
declare const valueBrand: unique symbol;
|
|
29
|
+
declare const clipPlayerBrand: unique symbol;
|
|
30
|
+
type TweenId = number & {
|
|
31
|
+
readonly [tweenBrand]: true;
|
|
32
|
+
};
|
|
33
|
+
type ValueSlot = number & {
|
|
34
|
+
readonly [valueBrand]: true;
|
|
35
|
+
};
|
|
36
|
+
type ClipPlayerId = number & {
|
|
37
|
+
readonly [clipPlayerBrand]: true;
|
|
38
|
+
};
|
|
39
|
+
declare const TweenTarget: {
|
|
40
|
+
readonly PositionX: 0;
|
|
41
|
+
readonly PositionY: 1;
|
|
42
|
+
readonly PositionZ: 2;
|
|
43
|
+
readonly ScaleX: 3;
|
|
44
|
+
readonly ScaleY: 4;
|
|
45
|
+
readonly ScaleZ: 5;
|
|
46
|
+
readonly ScaleUniform: 6;
|
|
47
|
+
readonly Rotation: 7;
|
|
48
|
+
readonly Value: 8;
|
|
49
|
+
};
|
|
50
|
+
type TweenTargetId = (typeof TweenTarget)[keyof typeof TweenTarget];
|
|
51
|
+
declare const Repeat: {
|
|
52
|
+
readonly Once: 0;
|
|
53
|
+
readonly Loop: 1;
|
|
54
|
+
readonly PingPong: 2;
|
|
55
|
+
};
|
|
56
|
+
type RepeatMode = (typeof Repeat)[keyof typeof Repeat];
|
|
57
|
+
interface ClipTrack {
|
|
58
|
+
readonly target: TweenTargetId;
|
|
59
|
+
readonly times: Float32Array;
|
|
60
|
+
readonly values: Float32Array;
|
|
61
|
+
}
|
|
62
|
+
interface ClipDesc {
|
|
63
|
+
readonly duration: number;
|
|
64
|
+
readonly tracks: readonly ClipTrack[];
|
|
65
|
+
}
|
|
66
|
+
interface AnimationOptions {
|
|
67
|
+
readonly maxTweens?: number;
|
|
68
|
+
readonly maxClipPlayers?: number;
|
|
69
|
+
readonly maxValueSlots?: number;
|
|
70
|
+
}
|
|
71
|
+
declare class Clip {
|
|
72
|
+
readonly duration: number;
|
|
73
|
+
readonly tracks: readonly ClipTrack[];
|
|
74
|
+
constructor(desc: ClipDesc);
|
|
75
|
+
}
|
|
76
|
+
declare class Animation implements DespawnListener {
|
|
77
|
+
private readonly transforms;
|
|
78
|
+
private readonly tweenCapacity;
|
|
79
|
+
private readonly tweenActive;
|
|
80
|
+
private readonly tweenGeneration;
|
|
81
|
+
private readonly tweenTarget;
|
|
82
|
+
private readonly tweenEase;
|
|
83
|
+
private readonly tweenRepeat;
|
|
84
|
+
private readonly tweenEntity;
|
|
85
|
+
private readonly tweenSlot;
|
|
86
|
+
private readonly tweenFrom;
|
|
87
|
+
private readonly tweenTo;
|
|
88
|
+
private readonly tweenDuration;
|
|
89
|
+
private readonly tweenElapsed;
|
|
90
|
+
private readonly tweenDelay;
|
|
91
|
+
private readonly tweenFree;
|
|
92
|
+
private tweenFreeCount;
|
|
93
|
+
private tweenHigh;
|
|
94
|
+
private readonly values;
|
|
95
|
+
private valueCount;
|
|
96
|
+
private readonly clips;
|
|
97
|
+
private readonly clipEntity;
|
|
98
|
+
private readonly clipTime;
|
|
99
|
+
private readonly clipSpeed;
|
|
100
|
+
private readonly clipRepeat;
|
|
101
|
+
private readonly registers;
|
|
102
|
+
constructor(world: World, transforms: Transforms, options?: AnimationOptions);
|
|
103
|
+
createValue(initial?: number): ValueSlot;
|
|
104
|
+
value(slot: ValueSlot): number;
|
|
105
|
+
setValue(slot: ValueSlot, value: number): void;
|
|
106
|
+
tween(entity: Entity, target: TweenTargetId, to: number, durationSeconds: number, easing: EaseId, delaySeconds?: number, repeat?: RepeatMode): TweenId;
|
|
107
|
+
tweenValue(slot: ValueSlot, to: number, durationSeconds: number, easing: EaseId, delaySeconds?: number, repeat?: RepeatMode): TweenId;
|
|
108
|
+
tweenRotation(entity: Entity, to: Quat, durationSeconds: number, easing: EaseId, delaySeconds?: number, repeat?: RepeatMode): TweenId;
|
|
109
|
+
isActive(id: TweenId): boolean;
|
|
110
|
+
cancel(id: TweenId): void;
|
|
111
|
+
playClip(entity: Entity, clip: Clip, repeat?: RepeatMode, speed?: number): ClipPlayerId;
|
|
112
|
+
stopClip(player: ClipPlayerId): void;
|
|
113
|
+
isClipPlaying(player: ClipPlayerId): boolean;
|
|
114
|
+
onDespawn(entity: Entity): void;
|
|
115
|
+
update(time: FrameTime): void;
|
|
116
|
+
private handle;
|
|
117
|
+
private allocTween;
|
|
118
|
+
private releaseTween;
|
|
119
|
+
private advanceTween;
|
|
120
|
+
private applyTween;
|
|
121
|
+
private advanceClip;
|
|
122
|
+
private sampleTrack;
|
|
123
|
+
private loadScalar;
|
|
124
|
+
private writeScalar;
|
|
125
|
+
}
|
|
126
|
+
|
|
127
|
+
declare const actionBrand: unique symbol;
|
|
128
|
+
type ActionId = number & {
|
|
129
|
+
readonly [actionBrand]: true;
|
|
130
|
+
};
|
|
131
|
+
type ButtonBinding = {
|
|
132
|
+
readonly device: "key";
|
|
133
|
+
readonly code: string;
|
|
134
|
+
} | {
|
|
135
|
+
readonly device: "pointer";
|
|
136
|
+
} | {
|
|
137
|
+
readonly device: "gamepad";
|
|
138
|
+
readonly button: number;
|
|
139
|
+
readonly threshold?: number;
|
|
140
|
+
} | {
|
|
141
|
+
readonly device: "virtual";
|
|
142
|
+
readonly control: string;
|
|
143
|
+
};
|
|
144
|
+
type AxisBinding = {
|
|
145
|
+
readonly device: "keys";
|
|
146
|
+
readonly negative: string;
|
|
147
|
+
readonly positive: string;
|
|
148
|
+
} | {
|
|
149
|
+
readonly device: "gamepad";
|
|
150
|
+
readonly axis: number;
|
|
151
|
+
readonly deadzone?: number;
|
|
152
|
+
readonly invert?: boolean;
|
|
153
|
+
} | {
|
|
154
|
+
readonly device: "virtual";
|
|
155
|
+
readonly control: string;
|
|
156
|
+
readonly invert?: boolean;
|
|
157
|
+
};
|
|
158
|
+
type PointerPhase = "down" | "move" | "up";
|
|
159
|
+
interface PointerFilter {
|
|
160
|
+
filterPointer(phase: PointerPhase, id: number, stage: Float64Array): boolean;
|
|
161
|
+
}
|
|
162
|
+
interface GestureOptions {
|
|
163
|
+
swipeMinDistance?: number;
|
|
164
|
+
swipeMaxDurationMs?: number;
|
|
165
|
+
longPressMs?: number;
|
|
166
|
+
}
|
|
167
|
+
declare const RECORDED_EVENT_BYTES = 32;
|
|
168
|
+
type DrainSource = "touch" | "key" | "tilt";
|
|
169
|
+
/** What kind of input a recorded drain carries, by its first event. */
|
|
170
|
+
declare function drainSource(events: Uint8Array, count: number): DrainSource;
|
|
171
|
+
/** Hears every drain of the input queue: the frame's time and the events it applied, packed 32 bytes each. */
|
|
172
|
+
interface InputTap {
|
|
173
|
+
drained(nowMs: number, events: Uint8Array, count: number): void;
|
|
174
|
+
}
|
|
175
|
+
declare const InputDevice: {
|
|
176
|
+
readonly none: 0;
|
|
177
|
+
readonly keyboard: 1;
|
|
178
|
+
readonly pointer: 2;
|
|
179
|
+
readonly gamepad: 3;
|
|
180
|
+
};
|
|
181
|
+
type InputDeviceId = (typeof InputDevice)[keyof typeof InputDevice];
|
|
182
|
+
declare const STAGE_X = 0;
|
|
183
|
+
declare const STAGE_Y = 1;
|
|
184
|
+
declare const STAGE_Z = 2;
|
|
185
|
+
declare const STAGE_TIME = 3;
|
|
186
|
+
declare class SwipeGesture {
|
|
187
|
+
ready: boolean;
|
|
188
|
+
startX: number;
|
|
189
|
+
startY: number;
|
|
190
|
+
endX: number;
|
|
191
|
+
endY: number;
|
|
192
|
+
deltaX: number;
|
|
193
|
+
deltaY: number;
|
|
194
|
+
distance: number;
|
|
195
|
+
durationMs: number;
|
|
196
|
+
velocityX: number;
|
|
197
|
+
velocityY: number;
|
|
198
|
+
curl: number;
|
|
199
|
+
}
|
|
200
|
+
declare class TapGesture {
|
|
201
|
+
ready: boolean;
|
|
202
|
+
x: number;
|
|
203
|
+
y: number;
|
|
204
|
+
}
|
|
205
|
+
declare class PointerState {
|
|
206
|
+
active: boolean;
|
|
207
|
+
down: boolean;
|
|
208
|
+
x: number;
|
|
209
|
+
y: number;
|
|
210
|
+
buttons: number;
|
|
211
|
+
count: number;
|
|
212
|
+
}
|
|
213
|
+
declare class PinchGesture {
|
|
214
|
+
active: boolean;
|
|
215
|
+
scale: number;
|
|
216
|
+
totalScale: number;
|
|
217
|
+
centerX: number;
|
|
218
|
+
centerY: number;
|
|
219
|
+
panX: number;
|
|
220
|
+
panY: number;
|
|
221
|
+
rotation: number;
|
|
222
|
+
distance: number;
|
|
223
|
+
}
|
|
224
|
+
declare class WheelState {
|
|
225
|
+
deltaX: number;
|
|
226
|
+
deltaY: number;
|
|
227
|
+
deltaZ: number;
|
|
228
|
+
x: number;
|
|
229
|
+
y: number;
|
|
230
|
+
}
|
|
231
|
+
declare class PointerDelta {
|
|
232
|
+
x: number;
|
|
233
|
+
y: number;
|
|
234
|
+
}
|
|
235
|
+
declare class FrameInput {
|
|
236
|
+
readonly drag: PointerDelta;
|
|
237
|
+
readonly motion: PointerDelta;
|
|
238
|
+
readonly wheel: WheelState;
|
|
239
|
+
readonly pinch: PinchGesture;
|
|
240
|
+
pressed: boolean;
|
|
241
|
+
released: boolean;
|
|
242
|
+
releasedButtons: number;
|
|
243
|
+
pressX: number;
|
|
244
|
+
pressY: number;
|
|
245
|
+
dragging(pointer: PointerState): boolean;
|
|
246
|
+
dragButtons(pointer: PointerState): number;
|
|
247
|
+
begin(): void;
|
|
248
|
+
}
|
|
249
|
+
declare class LongPressGesture {
|
|
250
|
+
ready: boolean;
|
|
251
|
+
x: number;
|
|
252
|
+
y: number;
|
|
253
|
+
durationMs: number;
|
|
254
|
+
}
|
|
255
|
+
declare class OrientationState {
|
|
256
|
+
available: boolean;
|
|
257
|
+
alpha: number;
|
|
258
|
+
beta: number;
|
|
259
|
+
gamma: number;
|
|
260
|
+
}
|
|
261
|
+
declare class InputActions {
|
|
262
|
+
readonly swipe: SwipeGesture;
|
|
263
|
+
readonly tap: TapGesture;
|
|
264
|
+
readonly pointer: PointerState;
|
|
265
|
+
readonly pinch: PinchGesture;
|
|
266
|
+
readonly wheel: WheelState;
|
|
267
|
+
readonly drag: PointerDelta;
|
|
268
|
+
readonly motion: PointerDelta;
|
|
269
|
+
readonly look: PointerDelta;
|
|
270
|
+
readonly frame: FrameInput;
|
|
271
|
+
readonly longPress: LongPressGesture;
|
|
272
|
+
readonly orientation: OrientationState;
|
|
273
|
+
private readonly pendingSwipe;
|
|
274
|
+
private readonly pendingTap;
|
|
275
|
+
private readonly pendingPinch;
|
|
276
|
+
private readonly pendingWheel;
|
|
277
|
+
private readonly pendingDrag;
|
|
278
|
+
private readonly pendingMotion;
|
|
279
|
+
private readonly pendingLongPress;
|
|
280
|
+
private readonly swipeMinDistance;
|
|
281
|
+
private readonly swipeMaxDurationMs;
|
|
282
|
+
private readonly longPressMs;
|
|
283
|
+
private readonly pointerX;
|
|
284
|
+
private readonly pointerY;
|
|
285
|
+
private readonly pointerButtons;
|
|
286
|
+
private readonly pointerOrder;
|
|
287
|
+
private pointerSerial;
|
|
288
|
+
private pinchA;
|
|
289
|
+
private pinchB;
|
|
290
|
+
private pinchDistance;
|
|
291
|
+
private pinchAngle;
|
|
292
|
+
private pinchCenterX;
|
|
293
|
+
private pinchCenterY;
|
|
294
|
+
private multiTouch;
|
|
295
|
+
private longPressFired;
|
|
296
|
+
private longPressMoved;
|
|
297
|
+
private lastEventTime;
|
|
298
|
+
private lastDevice;
|
|
299
|
+
private lastDeviceTime;
|
|
300
|
+
private frameNow;
|
|
301
|
+
private pointerFilter;
|
|
302
|
+
readonly stage: Float64Array<ArrayBuffer>;
|
|
303
|
+
private readonly pointerStage;
|
|
304
|
+
private readonly actionNames;
|
|
305
|
+
private actionCount;
|
|
306
|
+
private readonly actionKind;
|
|
307
|
+
private readonly actionValue;
|
|
308
|
+
private readonly bindingOut;
|
|
309
|
+
private readonly actionDown;
|
|
310
|
+
private readonly pressedLatch;
|
|
311
|
+
private readonly releasedLatch;
|
|
312
|
+
private readonly justPressedStep;
|
|
313
|
+
private readonly justReleasedStep;
|
|
314
|
+
private bindingCount;
|
|
315
|
+
private readonly bindAction;
|
|
316
|
+
private readonly bindKind;
|
|
317
|
+
private readonly bindA;
|
|
318
|
+
private readonly bindB;
|
|
319
|
+
private readonly bindParam;
|
|
320
|
+
private readonly bindInvert;
|
|
321
|
+
private readonly keySlots;
|
|
322
|
+
private readonly keyDown;
|
|
323
|
+
private readonly virtualSlots;
|
|
324
|
+
private readonly virtualValue;
|
|
325
|
+
private readonly virtualButtons;
|
|
326
|
+
private readonly gamepadButtons;
|
|
327
|
+
private readonly gamepadAxes;
|
|
328
|
+
private readonly pointerIds;
|
|
329
|
+
private primaryPointer;
|
|
330
|
+
private pointerDownCount;
|
|
331
|
+
private gestureStartX;
|
|
332
|
+
private gestureStartY;
|
|
333
|
+
private gestureStartTime;
|
|
334
|
+
private readonly sampleX;
|
|
335
|
+
private readonly sampleY;
|
|
336
|
+
private sampleCount;
|
|
337
|
+
private readonly eventType;
|
|
338
|
+
private readonly eventA;
|
|
339
|
+
private readonly eventX;
|
|
340
|
+
private readonly eventY;
|
|
341
|
+
private readonly eventZ;
|
|
342
|
+
private readonly eventTime;
|
|
343
|
+
private eventHead;
|
|
344
|
+
private eventCount;
|
|
345
|
+
private droppedEvents;
|
|
346
|
+
private unlockListener;
|
|
347
|
+
private inputTap;
|
|
348
|
+
private tapBytes;
|
|
349
|
+
private tapView;
|
|
350
|
+
private replayView;
|
|
351
|
+
constructor(options?: GestureOptions);
|
|
352
|
+
pointerCount(): number;
|
|
353
|
+
pointerAt(index: number, out: Float32Array | Float64Array, offset?: number): boolean;
|
|
354
|
+
get dropped(): number;
|
|
355
|
+
onFirstGesture(listener: () => void): void;
|
|
356
|
+
defineButton(name: string, bindings: readonly ButtonBinding[]): ActionId;
|
|
357
|
+
defineAxis(name: string, bindings: readonly AxisBinding[]): ActionId;
|
|
358
|
+
hasAction(name: string): boolean;
|
|
359
|
+
axisAction(name: string, negative: readonly string[], positive: readonly string[]): ActionId;
|
|
360
|
+
action(name: string): ActionId;
|
|
361
|
+
pressed(action: ActionId): boolean;
|
|
362
|
+
justPressed(action: ActionId): boolean;
|
|
363
|
+
justReleased(action: ActionId): boolean;
|
|
364
|
+
value(action: ActionId): number;
|
|
365
|
+
valueInto(action: ActionId, out: Float32Array | Float64Array, index: number): void;
|
|
366
|
+
keyEvent(code: string, down: boolean, timeMs: number): void;
|
|
367
|
+
pointerStaged(phase: PointerPhase, id: number, buttons?: number): void;
|
|
368
|
+
setPointerFilter(filter: PointerFilter | null): void;
|
|
369
|
+
pointerEvent(phase: PointerPhase, id: number, x: number, y: number, timeMs: number, buttons?: number): void;
|
|
370
|
+
wheelEvent(deltaX: number, deltaY: number, deltaZ: number, x: number, y: number, timeMs: number): void;
|
|
371
|
+
motionEvent(movementX: number, movementY: number, timeMs: number): void;
|
|
372
|
+
orientationEvent(alpha: number, beta: number, gamma: number, timeMs: number): void;
|
|
373
|
+
gamepadButtonEvent(button: number, value: number, timeMs: number): void;
|
|
374
|
+
gamepadAxisEvent(axis: number, value: number, timeMs: number): void;
|
|
375
|
+
virtualEvent(control: string, value: number, timeMs: number): void;
|
|
376
|
+
virtualControl(control: string): number;
|
|
377
|
+
virtualSlotEvent(slot: number, value: number, timeMs: number): void;
|
|
378
|
+
virtualStaged(slot: number): void;
|
|
379
|
+
lookEvent(dx: number, dy: number, timeMs: number): void;
|
|
380
|
+
lookStaged(): void;
|
|
381
|
+
deviceStaged(device: InputDeviceId): void;
|
|
382
|
+
deviceEvent(device: InputDeviceId, timeMs: number): void;
|
|
383
|
+
get device(): InputDeviceId;
|
|
384
|
+
get deviceTimeMs(): number;
|
|
385
|
+
processEvents(nowMs?: number): void;
|
|
386
|
+
processEventsFrom(clock: Float64Array, slot: number): void;
|
|
387
|
+
/** Starts or stops hearing every drain, for recording a play; preallocates the packing buffer once. */
|
|
388
|
+
setTap(tap: InputTap | null): void;
|
|
389
|
+
/** Applies a recorded drain exactly as it first happened: its events in order, then the drain at its frame time. */
|
|
390
|
+
replay(nowMs: number, events: Uint8Array | null, count: number): void;
|
|
391
|
+
private record;
|
|
392
|
+
private drain;
|
|
393
|
+
beginStep(): void;
|
|
394
|
+
private trackPinch;
|
|
395
|
+
private detectLongPress;
|
|
396
|
+
private defineAction;
|
|
397
|
+
private bind;
|
|
398
|
+
private keySlot;
|
|
399
|
+
private virtualSlot;
|
|
400
|
+
private checkIndex;
|
|
401
|
+
private pushStaged;
|
|
402
|
+
private push;
|
|
403
|
+
private apply;
|
|
404
|
+
private latchVirtual;
|
|
405
|
+
private firstGesture;
|
|
406
|
+
private latchSlot;
|
|
407
|
+
private pointerDown;
|
|
408
|
+
private pointerMove;
|
|
409
|
+
private pointerUp;
|
|
410
|
+
private addDrag;
|
|
411
|
+
private pointerSlot;
|
|
412
|
+
private recordSample;
|
|
413
|
+
private recognize;
|
|
414
|
+
private curlInto;
|
|
415
|
+
private evaluate;
|
|
416
|
+
private bindingValue;
|
|
417
|
+
}
|
|
418
|
+
|
|
419
|
+
interface ScratchCapacity {
|
|
420
|
+
vec3?: number;
|
|
421
|
+
quat?: number;
|
|
422
|
+
mat4?: number;
|
|
423
|
+
}
|
|
424
|
+
declare class ScratchArena {
|
|
425
|
+
private readonly vec3s;
|
|
426
|
+
private readonly quats;
|
|
427
|
+
private readonly mat4s;
|
|
428
|
+
private readonly mat4Capacity;
|
|
429
|
+
private vec3Used;
|
|
430
|
+
private quatUsed;
|
|
431
|
+
private mat4Used;
|
|
432
|
+
constructor(capacity?: ScratchCapacity);
|
|
433
|
+
vec3(x?: number, y?: number, z?: number): Vec3;
|
|
434
|
+
quat(): Quat;
|
|
435
|
+
mat4(): number;
|
|
436
|
+
get matrices(): Float32Array;
|
|
437
|
+
reset(): void;
|
|
438
|
+
}
|
|
439
|
+
|
|
440
|
+
interface AgentSpawn {
|
|
441
|
+
readonly entity: number;
|
|
442
|
+
readonly team?: number;
|
|
443
|
+
readonly position?: readonly [number, number, number];
|
|
444
|
+
readonly forward?: readonly [number, number];
|
|
445
|
+
readonly skill?: number;
|
|
446
|
+
readonly threat?: number;
|
|
447
|
+
}
|
|
448
|
+
interface TargetSpawn {
|
|
449
|
+
readonly entity: number;
|
|
450
|
+
readonly team: number;
|
|
451
|
+
readonly position: readonly [number, number, number];
|
|
452
|
+
readonly threat?: number;
|
|
453
|
+
}
|
|
454
|
+
interface SmartObjectSpawn {
|
|
455
|
+
readonly kind: number;
|
|
456
|
+
readonly position: readonly [number, number, number];
|
|
457
|
+
readonly advertisements: readonly (readonly [need: number, amount: number])[];
|
|
458
|
+
readonly capacity: number;
|
|
459
|
+
readonly useMinutes: number;
|
|
460
|
+
readonly interactRadius: number;
|
|
461
|
+
}
|
|
462
|
+
interface ArchetypeHandle {
|
|
463
|
+
readonly id: number;
|
|
464
|
+
readonly decl: ArchetypeDecl;
|
|
465
|
+
}
|
|
466
|
+
declare class GameAi {
|
|
467
|
+
private readonly port;
|
|
468
|
+
private readonly exports;
|
|
469
|
+
private handle;
|
|
470
|
+
private capacity;
|
|
471
|
+
private buffer;
|
|
472
|
+
private registerWords;
|
|
473
|
+
private registerFloats;
|
|
474
|
+
private viewWords;
|
|
475
|
+
private viewFloats;
|
|
476
|
+
private slotFloats;
|
|
477
|
+
private eventBuffer;
|
|
478
|
+
private eventWords;
|
|
479
|
+
private eventCapacity;
|
|
480
|
+
private scratch;
|
|
481
|
+
private scratchBytes;
|
|
482
|
+
private scratchWords;
|
|
483
|
+
constructor(port: AiPort);
|
|
484
|
+
get backend(): string;
|
|
485
|
+
get ready(): boolean;
|
|
486
|
+
private check;
|
|
487
|
+
private require;
|
|
488
|
+
private refresh;
|
|
489
|
+
private scratchFor;
|
|
490
|
+
init(options: AiWorldOptions): void;
|
|
491
|
+
dispose(): void;
|
|
492
|
+
archetype(decl: ArchetypeDecl): ArchetypeHandle;
|
|
493
|
+
action(archetype: ArchetypeHandle, name: string): number;
|
|
494
|
+
private registers;
|
|
495
|
+
private writePosition;
|
|
496
|
+
spawn(archetype: ArchetypeHandle, init: AgentSpawn): number;
|
|
497
|
+
despawn(agent: number): void;
|
|
498
|
+
addTarget(init: TargetSpawn): number;
|
|
499
|
+
removeTarget(target: number): void;
|
|
500
|
+
moveTarget(target: number, x: number, y: number, z: number, vx: number, vz: number): void;
|
|
501
|
+
setThreat(target: number, threat: number): void;
|
|
502
|
+
targetOf(agent: number): number;
|
|
503
|
+
noise(x: number, y: number, z: number, radius: number, kind: number, source?: number): void;
|
|
504
|
+
setGoal(agent: number, x: number, y: number, z: number): void;
|
|
505
|
+
clearGoal(agent: number): void;
|
|
506
|
+
setFocus(agent: number, target?: number, omniscient?: boolean): void;
|
|
507
|
+
setSkill(agent: number, skill: number): void;
|
|
508
|
+
setNeed(agent: number, need: number, level: number): void;
|
|
509
|
+
setSpeedScale(agent: number, scale: number): void;
|
|
510
|
+
place(agent: number, x: number, y: number, z: number, vx: number, vz: number): void;
|
|
511
|
+
slot(slot: number): Float32Array;
|
|
512
|
+
setInput(agent: number, slot: number, value: number): void;
|
|
513
|
+
step(): void;
|
|
514
|
+
private viewAt;
|
|
515
|
+
x(agent: number): number;
|
|
516
|
+
y(agent: number): number;
|
|
517
|
+
z(agent: number): number;
|
|
518
|
+
vx(agent: number): number;
|
|
519
|
+
vz(agent: number): number;
|
|
520
|
+
forwardX(agent: number): number;
|
|
521
|
+
forwardZ(agent: number): number;
|
|
522
|
+
actionOf(agent: number): number;
|
|
523
|
+
phaseOf(agent: number): number;
|
|
524
|
+
focusOf(agent: number): number;
|
|
525
|
+
drainEvents(out: Uint32Array): number;
|
|
526
|
+
doing(archetype: ArchetypeHandle, action: number, out: Uint32Array): number;
|
|
527
|
+
aimNoise(agent: number, salt: number): number;
|
|
528
|
+
digest(out: Uint32Array): void;
|
|
529
|
+
squad(slots: readonly (readonly [right: number, forward: number])[]): number;
|
|
530
|
+
join(agent: number, squad: number): void;
|
|
531
|
+
leave(agent: number): void;
|
|
532
|
+
addObject(object: SmartObjectSpawn): number;
|
|
533
|
+
removeObject(object: number): void;
|
|
534
|
+
addCover(x: number, y: number, z: number): number;
|
|
535
|
+
removeCover(cover: number): void;
|
|
536
|
+
}
|
|
537
|
+
|
|
538
|
+
type WireScalar = "bool" | "u8" | "u16" | "u32" | "i8" | "i16" | "i32" | "f32" | "f64";
|
|
539
|
+
interface QuantizedField {
|
|
540
|
+
readonly kind: "quantized";
|
|
541
|
+
readonly min: number;
|
|
542
|
+
readonly max: number;
|
|
543
|
+
readonly bits: number;
|
|
544
|
+
}
|
|
545
|
+
type WireField = WireScalar | QuantizedField;
|
|
546
|
+
type MessageSchema = Readonly<Record<string, WireField>>;
|
|
547
|
+
declare class MessageType {
|
|
548
|
+
readonly id: number;
|
|
549
|
+
readonly name: string;
|
|
550
|
+
readonly bytes: number;
|
|
551
|
+
private readonly names;
|
|
552
|
+
readonly fieldKind: Uint8Array;
|
|
553
|
+
readonly fieldBits: Uint8Array;
|
|
554
|
+
readonly fieldOffset: Uint32Array;
|
|
555
|
+
readonly fieldMin: Float64Array;
|
|
556
|
+
readonly fieldScale: Float64Array;
|
|
557
|
+
readonly fieldMax: Float64Array;
|
|
558
|
+
constructor(id: number, name: string, schema: MessageSchema);
|
|
559
|
+
field(name: string): number;
|
|
560
|
+
}
|
|
561
|
+
declare class MessageWriter {
|
|
562
|
+
readonly buffer: Uint8Array;
|
|
563
|
+
private type;
|
|
564
|
+
constructor(capacity?: number);
|
|
565
|
+
get length(): number;
|
|
566
|
+
get messageType(): MessageType | null;
|
|
567
|
+
begin(type: MessageType): this;
|
|
568
|
+
set(field: number, value: number): this;
|
|
569
|
+
setFrom(field: number, source: Float32Array | Float64Array, index: number): this;
|
|
570
|
+
setBool(field: number, value: boolean): this;
|
|
571
|
+
setVec3(fieldX: number, fieldY: number, fieldZ: number, value: Vec3Like): this;
|
|
572
|
+
private encode;
|
|
573
|
+
}
|
|
574
|
+
declare class MessageReader {
|
|
575
|
+
private bytes;
|
|
576
|
+
private base;
|
|
577
|
+
private size;
|
|
578
|
+
private type;
|
|
579
|
+
private readonly types;
|
|
580
|
+
constructor(types: (MessageType | null)[]);
|
|
581
|
+
get messageType(): MessageType | null;
|
|
582
|
+
get length(): number;
|
|
583
|
+
bind(bytes: Uint8Array, base: number, length: number): boolean;
|
|
584
|
+
is(type: MessageType): boolean;
|
|
585
|
+
get(field: number): number;
|
|
586
|
+
getInto(field: number, out: Float32Array | Float64Array, index: number): void;
|
|
587
|
+
getBool(field: number): boolean;
|
|
588
|
+
getVec3(fieldX: number, fieldY: number, fieldZ: number, out: Vec3Like): Vec3Like;
|
|
589
|
+
private decode;
|
|
590
|
+
}
|
|
591
|
+
declare function quantized(min: number, max: number, bits: number): QuantizedField;
|
|
592
|
+
|
|
593
|
+
type Delivery = "reliable" | "latest";
|
|
594
|
+
interface RoomTransport {
|
|
595
|
+
readonly participant: number;
|
|
596
|
+
open(channel: string, delivery: Delivery): number;
|
|
597
|
+
send(channel: number, bytes: Uint8Array, length: number): void;
|
|
598
|
+
receive(channel: number, reader: MessageReader): boolean;
|
|
599
|
+
close(): void;
|
|
600
|
+
}
|
|
601
|
+
declare class Channel {
|
|
602
|
+
readonly name: string;
|
|
603
|
+
readonly delivery: Delivery;
|
|
604
|
+
private readonly transport;
|
|
605
|
+
private readonly id;
|
|
606
|
+
constructor(transport: RoomTransport, name: string, delivery: Delivery);
|
|
607
|
+
send(writer: MessageWriter): void;
|
|
608
|
+
receive(reader: MessageReader): boolean;
|
|
609
|
+
}
|
|
610
|
+
declare class GameNet {
|
|
611
|
+
private readonly types;
|
|
612
|
+
private typeCount;
|
|
613
|
+
private transport;
|
|
614
|
+
private joinedRoom;
|
|
615
|
+
joinRoom(options: RoomClientOptions, nowMs: number): RoomClient;
|
|
616
|
+
get room(): RoomClient | null;
|
|
617
|
+
defineMessage(name: string, schema: MessageSchema): MessageType;
|
|
618
|
+
reader(): MessageReader;
|
|
619
|
+
connect(transport: RoomTransport): void;
|
|
620
|
+
get connected(): boolean;
|
|
621
|
+
get participant(): number;
|
|
622
|
+
channel(name: string, delivery: Delivery): Channel;
|
|
623
|
+
disconnect(): void;
|
|
624
|
+
private requireTransport;
|
|
625
|
+
}
|
|
626
|
+
interface LoopbackOptions {
|
|
627
|
+
readonly slots?: number;
|
|
628
|
+
readonly slotBytes?: number;
|
|
629
|
+
}
|
|
630
|
+
declare class LoopbackTransport implements RoomTransport {
|
|
631
|
+
readonly participant: number;
|
|
632
|
+
private peer;
|
|
633
|
+
private readonly names;
|
|
634
|
+
private readonly queues;
|
|
635
|
+
private readonly slots;
|
|
636
|
+
private readonly slotBytes;
|
|
637
|
+
private constructor();
|
|
638
|
+
static pair(options?: LoopbackOptions): readonly [LoopbackTransport, LoopbackTransport];
|
|
639
|
+
open(channel: string, delivery: Delivery): number;
|
|
640
|
+
send(channel: number, bytes: Uint8Array, length: number): void;
|
|
641
|
+
receive(channel: number, reader: MessageReader): boolean;
|
|
642
|
+
dropped(channel: number): number;
|
|
643
|
+
close(): void;
|
|
644
|
+
}
|
|
645
|
+
declare class SnapshotBuffer {
|
|
646
|
+
readonly entities: number;
|
|
647
|
+
readonly history: number;
|
|
648
|
+
private readonly ticks;
|
|
649
|
+
private readonly positions;
|
|
650
|
+
private readonly rotations;
|
|
651
|
+
private readonly heads;
|
|
652
|
+
private readonly counts;
|
|
653
|
+
private readonly weight;
|
|
654
|
+
constructor(entities: number, history?: number);
|
|
655
|
+
push(slot: number, tick: number, positions: Float32Array, po: number, rotations: Float32Array, ro: number): void;
|
|
656
|
+
sample(slot: number, tick: number, outPosition: Float32Array, positionOffset: number, outRotation: Float32Array, rotationOffset: number): boolean;
|
|
657
|
+
}
|
|
658
|
+
|
|
659
|
+
declare class SeededRandom {
|
|
660
|
+
private readonly state;
|
|
661
|
+
private readonly output;
|
|
662
|
+
private readonly words;
|
|
663
|
+
private readonly drawn;
|
|
664
|
+
private readonly limbs;
|
|
665
|
+
private readonly cell;
|
|
666
|
+
private readonly halves;
|
|
667
|
+
private readonly views;
|
|
668
|
+
constructor(seed: number);
|
|
669
|
+
rollbackViews(): readonly ArrayBufferView[];
|
|
670
|
+
get seed(): number;
|
|
671
|
+
reseed(seed: number): void;
|
|
672
|
+
nextUint32(): number;
|
|
673
|
+
float(): number;
|
|
674
|
+
range(min: number, max: number): number;
|
|
675
|
+
rangeInto(out: Float64Array, slot: number, min: number, max: number): void;
|
|
676
|
+
int(min: number, maxInclusive: number): number;
|
|
677
|
+
chance(probability: number): boolean;
|
|
678
|
+
centeredInto(out: Float64Array, slot: number, halfExtent: number, fixed: Int32Array, fixedAt: number): void;
|
|
679
|
+
private advance;
|
|
680
|
+
saveState(out: Uint32Array): void;
|
|
681
|
+
restoreState(source: Uint32Array): void;
|
|
682
|
+
}
|
|
683
|
+
|
|
684
|
+
declare const CHEMISTRY_REFUSALS: readonly ["unknown_species", "bad_formula", "duplicate_name", "bad_name", "too_many_terms", "bad_count", "element_imbalance", "energy_mismatch", "bad_rate", "bad_window", "property_out_of_range", "book_full", "policy_disabled", "too_energetic", "duplicate_term", "bad_debris", "bad_aqueous", "catalyst_consumed", "no_products", "unreachable", "bad_placement", "bad_batch", "unknown_element", "no_reactants", "overflow", "malformed"];
|
|
685
|
+
type ChemistryRefusal = (typeof CHEMISTRY_REFUSALS)[number];
|
|
686
|
+
declare const CHEMISTRY_REFUSAL_TEXT: Readonly<Record<ChemistryRefusal, string>>;
|
|
687
|
+
declare const CHEMISTRY_GROUPS: readonly ["fuel", "oxidiser", "acid", "base", "metal", "salt", "ore", "oxide", "organic", "aqueous", "powder", "catalyst", "explosive", "inert", "solvent", "carbonate", "polymer", "sugar", "living", "reducer", "toxic", "mineral", "atmosphere", "custom"];
|
|
688
|
+
type ChemistryGroup = (typeof CHEMISTRY_GROUPS)[number];
|
|
689
|
+
declare const CELL_CLASSES: readonly ["empty", "gas", "liquid", "powder", "solid"];
|
|
690
|
+
type CellClass = (typeof CELL_CLASSES)[number];
|
|
691
|
+
declare const CHEMISTRY_EVENT_KINDS: readonly ["none", "reaction", "explosion", "threshold", "phase", "fracture"];
|
|
692
|
+
type ChemistryEventKind = (typeof CHEMISTRY_EVENT_KINDS)[number];
|
|
693
|
+
interface NatureOptions {
|
|
694
|
+
readonly tickHz?: number;
|
|
695
|
+
readonly ambientK?: number;
|
|
696
|
+
readonly pressureAtm?: number;
|
|
697
|
+
readonly gravity?: number;
|
|
698
|
+
readonly conduction?: number;
|
|
699
|
+
readonly rateShift?: number;
|
|
700
|
+
readonly radiation?: number;
|
|
701
|
+
readonly atmosphere?: "earth" | "mars";
|
|
702
|
+
}
|
|
703
|
+
type DefineResult = {
|
|
704
|
+
readonly ok: true;
|
|
705
|
+
readonly added: number;
|
|
706
|
+
} | {
|
|
707
|
+
readonly ok: false;
|
|
708
|
+
readonly line: number;
|
|
709
|
+
readonly refusal: ChemistryRefusal;
|
|
710
|
+
readonly reason: string;
|
|
711
|
+
};
|
|
712
|
+
interface MaterialInfo {
|
|
713
|
+
readonly id: number;
|
|
714
|
+
readonly name: string;
|
|
715
|
+
readonly molarMassGrams: number;
|
|
716
|
+
readonly meltK: number | null;
|
|
717
|
+
readonly boilK: number | null;
|
|
718
|
+
readonly ignitionK: number | null;
|
|
719
|
+
readonly groups: readonly ChemistryGroup[];
|
|
720
|
+
readonly colours: readonly [number, number, number];
|
|
721
|
+
readonly density: readonly [number, number];
|
|
722
|
+
readonly heatCapacity: readonly [number, number, number];
|
|
723
|
+
readonly volume: number;
|
|
724
|
+
readonly hardness: number;
|
|
725
|
+
readonly electrical: number;
|
|
726
|
+
readonly strengthKpa: number;
|
|
727
|
+
}
|
|
728
|
+
interface ReactionTerm {
|
|
729
|
+
readonly material: number;
|
|
730
|
+
readonly count: number;
|
|
731
|
+
}
|
|
732
|
+
interface ReactionInfo {
|
|
733
|
+
readonly id: number;
|
|
734
|
+
readonly name: string;
|
|
735
|
+
readonly reactants: readonly ReactionTerm[];
|
|
736
|
+
readonly products: readonly ReactionTerm[];
|
|
737
|
+
readonly catalyst: number | null;
|
|
738
|
+
readonly minK: number;
|
|
739
|
+
readonly maxK: number | null;
|
|
740
|
+
readonly enthalpyJ: number;
|
|
741
|
+
readonly electricJ: number;
|
|
742
|
+
readonly generatesJ: number;
|
|
743
|
+
}
|
|
744
|
+
interface CellBox {
|
|
745
|
+
readonly x0: number;
|
|
746
|
+
readonly y0: number;
|
|
747
|
+
readonly z0?: number;
|
|
748
|
+
readonly x1: number;
|
|
749
|
+
readonly y1: number;
|
|
750
|
+
readonly z1?: number;
|
|
751
|
+
}
|
|
752
|
+
interface CellProbe {
|
|
753
|
+
cls: CellClass;
|
|
754
|
+
kelvin: number;
|
|
755
|
+
pressureAtm: number;
|
|
756
|
+
readonly materials: number[];
|
|
757
|
+
readonly amounts: number[];
|
|
758
|
+
heat: number;
|
|
759
|
+
power: number;
|
|
760
|
+
}
|
|
761
|
+
interface ChemistryEvent {
|
|
762
|
+
kind: ChemistryEventKind;
|
|
763
|
+
code: number;
|
|
764
|
+
cell: number;
|
|
765
|
+
x: number;
|
|
766
|
+
y: number;
|
|
767
|
+
z: number;
|
|
768
|
+
value: number;
|
|
769
|
+
extra: number;
|
|
770
|
+
}
|
|
771
|
+
interface RegionStats {
|
|
772
|
+
tick: number;
|
|
773
|
+
activeTiles: number;
|
|
774
|
+
blocks: number;
|
|
775
|
+
fired: number;
|
|
776
|
+
moves: number;
|
|
777
|
+
massMilligrams: number;
|
|
778
|
+
energyJ: number;
|
|
779
|
+
events: number;
|
|
780
|
+
dropped: number;
|
|
781
|
+
digest: string;
|
|
782
|
+
}
|
|
783
|
+
interface RegionOptions {
|
|
784
|
+
readonly width: number;
|
|
785
|
+
readonly height: number;
|
|
786
|
+
readonly depth?: number;
|
|
787
|
+
readonly seed?: number;
|
|
788
|
+
readonly open?: boolean;
|
|
789
|
+
}
|
|
790
|
+
declare class ChemistryMemory {
|
|
791
|
+
private readonly engine;
|
|
792
|
+
private buffer;
|
|
793
|
+
words: Uint32Array<ArrayBufferLike>;
|
|
794
|
+
ints: Int32Array<ArrayBufferLike>;
|
|
795
|
+
halves: Uint16Array<ArrayBufferLike>;
|
|
796
|
+
bytes: Uint8Array<ArrayBufferLike>;
|
|
797
|
+
constructor(engine: ChemistryEngine);
|
|
798
|
+
views(): this;
|
|
799
|
+
}
|
|
800
|
+
declare class Chemistry {
|
|
801
|
+
private readonly engine;
|
|
802
|
+
private readonly nature;
|
|
803
|
+
private handle;
|
|
804
|
+
private scratch;
|
|
805
|
+
private opened;
|
|
806
|
+
private memory;
|
|
807
|
+
private readonly names;
|
|
808
|
+
private readonly encoder;
|
|
809
|
+
private readonly decoder;
|
|
810
|
+
constructor(engine: ChemistryEngine | null, nature?: NatureOptions);
|
|
811
|
+
get available(): boolean;
|
|
812
|
+
private ensure;
|
|
813
|
+
get handleValue(): number;
|
|
814
|
+
withText<T>(text: string, run: (pointer: number, length: number) => T): T;
|
|
815
|
+
define(text: string, options?: {
|
|
816
|
+
readonly proposal?: boolean;
|
|
817
|
+
}): DefineResult;
|
|
818
|
+
private find;
|
|
819
|
+
material(name: string): number;
|
|
820
|
+
hasMaterial(name: string): boolean;
|
|
821
|
+
reaction(name: string): number;
|
|
822
|
+
get counts(): {
|
|
823
|
+
readonly materials: number;
|
|
824
|
+
readonly reactions: number;
|
|
825
|
+
};
|
|
826
|
+
private text;
|
|
827
|
+
catalog(): string;
|
|
828
|
+
materialName(id: number): string;
|
|
829
|
+
reactionName(id: number): string;
|
|
830
|
+
materialInfo(id: number): MaterialInfo;
|
|
831
|
+
reactionInfo(id: number): ReactionInfo;
|
|
832
|
+
region(options: RegionOptions): ChemistryRegion;
|
|
833
|
+
loadRegion(bytes: Uint8Array, options?: {
|
|
834
|
+
readonly seed?: number;
|
|
835
|
+
readonly open?: boolean;
|
|
836
|
+
}): ChemistryRegion;
|
|
837
|
+
vessel(volumeCells?: number, seed?: number): ChemistryVessel;
|
|
838
|
+
particles(capacity: number, seed?: number): ChemistryParticles;
|
|
839
|
+
scratchWords(): {
|
|
840
|
+
readonly words: Uint32Array<ArrayBufferLike>;
|
|
841
|
+
readonly ints: Int32Array<ArrayBufferLike>;
|
|
842
|
+
readonly at: number;
|
|
843
|
+
readonly pointer: number;
|
|
844
|
+
};
|
|
845
|
+
views(): ChemistryMemory;
|
|
846
|
+
dispose(): void;
|
|
847
|
+
}
|
|
848
|
+
declare class ChemistryRegion {
|
|
849
|
+
private readonly chemistry;
|
|
850
|
+
private readonly engine;
|
|
851
|
+
private readonly handle;
|
|
852
|
+
readonly width: number;
|
|
853
|
+
readonly height: number;
|
|
854
|
+
readonly depth: number;
|
|
855
|
+
readonly cells: number;
|
|
856
|
+
private readonly columns;
|
|
857
|
+
private buffer;
|
|
858
|
+
private speciesViews;
|
|
859
|
+
private amountViews;
|
|
860
|
+
private heatView;
|
|
861
|
+
private tempView;
|
|
862
|
+
private infoView;
|
|
863
|
+
private powerView;
|
|
864
|
+
private colourView;
|
|
865
|
+
private disposed;
|
|
866
|
+
private readonly event;
|
|
867
|
+
private readonly probeOut;
|
|
868
|
+
constructor(chemistry: Chemistry, engine: ChemistryEngine, handle: number);
|
|
869
|
+
private live;
|
|
870
|
+
private refresh;
|
|
871
|
+
index(x: number, y: number, z?: number): number;
|
|
872
|
+
species(slot?: number): Uint16Array<ArrayBufferLike>;
|
|
873
|
+
amounts(slot?: number): Uint16Array<ArrayBufferLike>;
|
|
874
|
+
get heat(): Int32Array<ArrayBufferLike>;
|
|
875
|
+
get temperatureQ4(): Int32Array<ArrayBufferLike>;
|
|
876
|
+
get info(): Uint32Array<ArrayBufferLike>;
|
|
877
|
+
get power(): Uint32Array<ArrayBufferLike>;
|
|
878
|
+
kelvinAt(x: number, y: number, z?: number): number;
|
|
879
|
+
classAt(x: number, y: number, z?: number): CellClass;
|
|
880
|
+
fill(material: number | "air" | "vacuum", box: CellBox, kelvin?: number): number;
|
|
881
|
+
paint(material: number | "air" | "vacuum", x: number, y: number, z?: number, kelvin?: number): number;
|
|
882
|
+
set(x: number, y: number, z: number, contents: readonly (readonly [number, number])[], kelvin: number): void;
|
|
883
|
+
heatBox(box: CellBox, joules: number): number;
|
|
884
|
+
powerBox(box: CellBox, joules: number): number;
|
|
885
|
+
step(ticks?: number): number;
|
|
886
|
+
colours(): Uint32Array<ArrayBufferLike>;
|
|
887
|
+
probe(x: number, y: number, z?: number): CellProbe;
|
|
888
|
+
watchReaction(id: number, on?: boolean): void;
|
|
889
|
+
watchMaterial(id: number, on?: boolean): void;
|
|
890
|
+
threshold(box: CellBox, kelvin: number): number;
|
|
891
|
+
clearThreshold(id: number): void;
|
|
892
|
+
events(handler: (event: Readonly<ChemistryEvent>) => void): number;
|
|
893
|
+
fired(reaction: number): number;
|
|
894
|
+
stats(out?: RegionStats): RegionStats;
|
|
895
|
+
save(): Uint8Array;
|
|
896
|
+
dispose(): void;
|
|
897
|
+
}
|
|
898
|
+
interface VesselState {
|
|
899
|
+
kelvin: number;
|
|
900
|
+
pressureAtm: number;
|
|
901
|
+
power: number;
|
|
902
|
+
generated: number;
|
|
903
|
+
readonly materials: number[];
|
|
904
|
+
readonly amounts: number[];
|
|
905
|
+
}
|
|
906
|
+
declare class ChemistryVessel {
|
|
907
|
+
private readonly chemistry;
|
|
908
|
+
private readonly engine;
|
|
909
|
+
private readonly handle;
|
|
910
|
+
private disposed;
|
|
911
|
+
private readonly out;
|
|
912
|
+
constructor(chemistry: Chemistry, engine: ChemistryEngine, handle: number);
|
|
913
|
+
private live;
|
|
914
|
+
add(material: number, parcels: number, kelvin?: number): void;
|
|
915
|
+
take(material: number, parcels: number): number;
|
|
916
|
+
heat(joules: number): void;
|
|
917
|
+
power(joules: number): number;
|
|
918
|
+
step(ticks?: number): number;
|
|
919
|
+
vent(maxAtm: number): number;
|
|
920
|
+
state(): VesselState;
|
|
921
|
+
dispose(): void;
|
|
922
|
+
}
|
|
923
|
+
declare class ChemistryParticles {
|
|
924
|
+
private readonly chemistry;
|
|
925
|
+
private readonly engine;
|
|
926
|
+
private readonly handle;
|
|
927
|
+
readonly capacity: number;
|
|
928
|
+
private disposed;
|
|
929
|
+
private pairs;
|
|
930
|
+
private pairCapacity;
|
|
931
|
+
private readonly event;
|
|
932
|
+
constructor(chemistry: Chemistry, engine: ChemistryEngine, handle: number, capacity: number);
|
|
933
|
+
private live;
|
|
934
|
+
spawn(index: number, material: number, kelvin?: number): void;
|
|
935
|
+
despawn(index: number): void;
|
|
936
|
+
step(count: number, pairs: Uint32Array, pairCount: number): number;
|
|
937
|
+
columns(): Uint32Array<ArrayBufferLike>;
|
|
938
|
+
events(handler: (event: Readonly<ChemistryEvent>) => void): number;
|
|
939
|
+
dispose(): void;
|
|
940
|
+
}
|
|
941
|
+
declare function groupNames(mask: number): ChemistryGroup[];
|
|
942
|
+
|
|
943
|
+
declare const hudSlotBrand: unique symbol;
|
|
944
|
+
declare const uiActionBrand: unique symbol;
|
|
945
|
+
type HudSlot = number & {
|
|
946
|
+
readonly [hudSlotBrand]: true;
|
|
947
|
+
};
|
|
948
|
+
type UiActionId = number & {
|
|
949
|
+
readonly [uiActionBrand]: true;
|
|
950
|
+
};
|
|
951
|
+
type UiValue = string | number | boolean | null;
|
|
952
|
+
type HapticPattern = "light" | "medium" | "heavy" | "success" | "warning" | "error" | "selection";
|
|
953
|
+
type HudSlotKind = "number" | "text";
|
|
954
|
+
interface HudSlotLayout {
|
|
955
|
+
readonly name: string;
|
|
956
|
+
readonly kind: HudSlotKind;
|
|
957
|
+
}
|
|
958
|
+
interface GameUiHost {
|
|
959
|
+
declareHud(layout: readonly HudSlotLayout[]): void;
|
|
960
|
+
publishHud(numbers: Float64Array, texts: readonly string[], dirty: Uint16Array, dirtyCount: number): void;
|
|
961
|
+
showPanel(panel: string, props: Readonly<Record<string, UiValue>>): void;
|
|
962
|
+
hidePanel(panel: string): void;
|
|
963
|
+
haptic(pattern: HapticPattern): void;
|
|
964
|
+
}
|
|
965
|
+
declare const NO_UI_ACTION = -1;
|
|
966
|
+
declare class GameUi {
|
|
967
|
+
private readonly host;
|
|
968
|
+
private readonly layout;
|
|
969
|
+
private readonly numbers;
|
|
970
|
+
private readonly texts;
|
|
971
|
+
private readonly dirtyFlags;
|
|
972
|
+
private readonly dirty;
|
|
973
|
+
private dirtyCount;
|
|
974
|
+
private declaredSize;
|
|
975
|
+
private readonly actions;
|
|
976
|
+
private readonly queue;
|
|
977
|
+
private queueHead;
|
|
978
|
+
private queueCount;
|
|
979
|
+
constructor(host: GameUiHost | null, maxSlots?: number);
|
|
980
|
+
hudNumber(name: string, initial?: number): HudSlot;
|
|
981
|
+
hudText(name: string, initial?: string): HudSlot;
|
|
982
|
+
setNumber(slot: HudSlot, value: number): void;
|
|
983
|
+
setText(slot: HudSlot, value: string): void;
|
|
984
|
+
number(slot: HudSlot): number;
|
|
985
|
+
text(slot: HudSlot): string;
|
|
986
|
+
show(panel: string, props?: Readonly<Record<string, UiValue>>): void;
|
|
987
|
+
hide(panel: string): void;
|
|
988
|
+
haptic(pattern: HapticPattern): void;
|
|
989
|
+
defineAction(name: string): UiActionId;
|
|
990
|
+
dispatch(name: string): boolean;
|
|
991
|
+
pollAction(): UiActionId | typeof NO_UI_ACTION;
|
|
992
|
+
flush(): void;
|
|
993
|
+
private declare;
|
|
994
|
+
private markDirty;
|
|
995
|
+
private clearDirty;
|
|
996
|
+
}
|
|
997
|
+
|
|
998
|
+
type ReactiveSpecies = string | number;
|
|
999
|
+
interface ReactiveGrid {
|
|
1000
|
+
readonly origin: Vec3Like;
|
|
1001
|
+
readonly cell: number;
|
|
1002
|
+
readonly cells: readonly [number, number, number];
|
|
1003
|
+
}
|
|
1004
|
+
interface ReactiveFluidDesc {
|
|
1005
|
+
readonly chemistry?: Chemistry;
|
|
1006
|
+
readonly liquid: ReactiveSpecies;
|
|
1007
|
+
readonly liquidKelvin?: number;
|
|
1008
|
+
readonly parcels?: number;
|
|
1009
|
+
readonly fluid: FluidGridDesc & Partial<Omit<FluidDesc, "bounds" | "capacity" | "cell" | "material" | "look" | "emitters">>;
|
|
1010
|
+
readonly volume: ReactiveGrid;
|
|
1011
|
+
readonly contact?: number;
|
|
1012
|
+
readonly coupling?: number;
|
|
1013
|
+
readonly maxPairs?: number;
|
|
1014
|
+
readonly seed?: number;
|
|
1015
|
+
readonly framesPerTick?: number;
|
|
1016
|
+
readonly smoke?: readonly ReactiveSpecies[];
|
|
1017
|
+
readonly glowFromK?: number;
|
|
1018
|
+
readonly glowFullK?: number;
|
|
1019
|
+
readonly plumeFromK?: number;
|
|
1020
|
+
readonly smokeFullParcels?: number;
|
|
1021
|
+
readonly flameExtinction?: number;
|
|
1022
|
+
}
|
|
1023
|
+
interface ReactiveHobDesc {
|
|
1024
|
+
readonly first: readonly [number, number];
|
|
1025
|
+
readonly last: readonly [number, number];
|
|
1026
|
+
readonly layers?: number;
|
|
1027
|
+
readonly metal?: ReactiveSpecies;
|
|
1028
|
+
readonly startK?: number;
|
|
1029
|
+
readonly panK: number;
|
|
1030
|
+
readonly panJoules: number;
|
|
1031
|
+
readonly flameK?: number;
|
|
1032
|
+
readonly flameJoules?: number;
|
|
1033
|
+
readonly flameLayers?: number;
|
|
1034
|
+
}
|
|
1035
|
+
interface ReactivePlume {
|
|
1036
|
+
readonly cell: [number, number, number];
|
|
1037
|
+
kelvin: number;
|
|
1038
|
+
smoke: number;
|
|
1039
|
+
readonly position: {
|
|
1040
|
+
x: number;
|
|
1041
|
+
y: number;
|
|
1042
|
+
z: number;
|
|
1043
|
+
};
|
|
1044
|
+
}
|
|
1045
|
+
interface ReactiveStats {
|
|
1046
|
+
tick: number;
|
|
1047
|
+
particles: number;
|
|
1048
|
+
pairs: number;
|
|
1049
|
+
droppedPairs: number;
|
|
1050
|
+
fired: number;
|
|
1051
|
+
vented: number;
|
|
1052
|
+
retired: number;
|
|
1053
|
+
panK: number;
|
|
1054
|
+
burning: number;
|
|
1055
|
+
smoky: number;
|
|
1056
|
+
hottestK: number;
|
|
1057
|
+
plumes: number;
|
|
1058
|
+
lit: boolean;
|
|
1059
|
+
}
|
|
1060
|
+
interface ReactiveMediumLook {
|
|
1061
|
+
readonly emission?: number;
|
|
1062
|
+
readonly extinction?: number;
|
|
1063
|
+
readonly albedo?: readonly [number, number, number];
|
|
1064
|
+
}
|
|
1065
|
+
declare const REACTIVE_DEFAULTS: {
|
|
1066
|
+
readonly liquidKelvin: 293;
|
|
1067
|
+
readonly parcels: 1;
|
|
1068
|
+
readonly contact: 1;
|
|
1069
|
+
readonly coupling: 4;
|
|
1070
|
+
readonly maxPairs: 65536;
|
|
1071
|
+
readonly seed: 0;
|
|
1072
|
+
readonly framesPerTick: 2;
|
|
1073
|
+
readonly smoke: readonly ["CO2", "H2O"];
|
|
1074
|
+
readonly metal: "Fe";
|
|
1075
|
+
readonly layers: 2;
|
|
1076
|
+
readonly startK: 293;
|
|
1077
|
+
readonly flameK: 1300;
|
|
1078
|
+
readonly flameJoules: 6000;
|
|
1079
|
+
readonly flameLayers: 2;
|
|
1080
|
+
readonly preheatTicks: 1200;
|
|
1081
|
+
readonly emission: 24;
|
|
1082
|
+
readonly extinction: 18;
|
|
1083
|
+
readonly albedo: readonly [0.35, 0.33, 0.31];
|
|
1084
|
+
};
|
|
1085
|
+
declare function createReactiveStats(): ReactiveStats;
|
|
1086
|
+
declare function createReactivePlume(): ReactivePlume;
|
|
1087
|
+
declare class ReactiveFluid {
|
|
1088
|
+
private readonly port;
|
|
1089
|
+
private readonly chemistry;
|
|
1090
|
+
private readonly ownsChemistry;
|
|
1091
|
+
readonly framesPerTick: number;
|
|
1092
|
+
readonly cells: readonly [number, number, number];
|
|
1093
|
+
readonly capacity: number;
|
|
1094
|
+
private readonly handle;
|
|
1095
|
+
private readonly volume;
|
|
1096
|
+
private readonly emitterWords;
|
|
1097
|
+
private medium;
|
|
1098
|
+
private frame;
|
|
1099
|
+
private disposed;
|
|
1100
|
+
constructor(port: ReactivePort, chemistry: Chemistry, desc: ReactiveFluidDesc, ownsChemistry?: boolean);
|
|
1101
|
+
private species;
|
|
1102
|
+
private live;
|
|
1103
|
+
hob(desc: ReactiveHobDesc): void;
|
|
1104
|
+
setLit(on: boolean): void;
|
|
1105
|
+
pour(stream: FluidEmitterDesc | null, slot?: number): void;
|
|
1106
|
+
preheat(targetK: number, maxTicks?: number): number;
|
|
1107
|
+
step(seconds: number): boolean;
|
|
1108
|
+
mediumDesc(look?: ReactiveMediumLook): MediumDesc;
|
|
1109
|
+
attach(medium: MediumVolume | null): void;
|
|
1110
|
+
writeMedia(): number;
|
|
1111
|
+
get texels(): Uint32Array;
|
|
1112
|
+
get particles(): number;
|
|
1113
|
+
positions(): Float32Array;
|
|
1114
|
+
get plumeCount(): number;
|
|
1115
|
+
plume(index: number, out: ReactivePlume): boolean;
|
|
1116
|
+
stats(out?: ReactiveStats): ReactiveStats;
|
|
1117
|
+
digest(): bigint;
|
|
1118
|
+
dispose(): void;
|
|
1119
|
+
}
|
|
1120
|
+
|
|
1121
|
+
interface SmokeVolumeDesc {
|
|
1122
|
+
readonly origin: Vec3Like;
|
|
1123
|
+
readonly cell: number;
|
|
1124
|
+
readonly cells: readonly [number, number, number];
|
|
1125
|
+
readonly medium: MediumVolume;
|
|
1126
|
+
readonly step?: number;
|
|
1127
|
+
readonly ambientKelvin?: number;
|
|
1128
|
+
readonly smokeWeight?: number;
|
|
1129
|
+
readonly lift?: number;
|
|
1130
|
+
readonly vorticity?: number;
|
|
1131
|
+
readonly smokeHalfLife?: number;
|
|
1132
|
+
readonly coolingHalfLife?: number;
|
|
1133
|
+
readonly ignitionKelvin?: number;
|
|
1134
|
+
readonly burnRate?: number;
|
|
1135
|
+
readonly heatRelease?: number;
|
|
1136
|
+
readonly soot?: number;
|
|
1137
|
+
readonly expansion?: number;
|
|
1138
|
+
readonly pressureCycles?: number;
|
|
1139
|
+
readonly smokeFull?: number;
|
|
1140
|
+
readonly glowFromKelvin?: number;
|
|
1141
|
+
readonly glowFullKelvin?: number;
|
|
1142
|
+
readonly flameExtinction?: number;
|
|
1143
|
+
}
|
|
1144
|
+
interface SmokeEmitter {
|
|
1145
|
+
readonly position: Vec3Like;
|
|
1146
|
+
readonly radius: number;
|
|
1147
|
+
readonly density?: number;
|
|
1148
|
+
readonly heat?: number;
|
|
1149
|
+
readonly fuel?: number;
|
|
1150
|
+
readonly velocity?: Vec3Like;
|
|
1151
|
+
readonly strength?: number;
|
|
1152
|
+
readonly tint?: SmokeTint;
|
|
1153
|
+
}
|
|
1154
|
+
interface SmokeTint {
|
|
1155
|
+
readonly r: number;
|
|
1156
|
+
readonly g: number;
|
|
1157
|
+
readonly b: number;
|
|
1158
|
+
}
|
|
1159
|
+
declare class SmokeVolume {
|
|
1160
|
+
private readonly port;
|
|
1161
|
+
private readonly emitterFloats;
|
|
1162
|
+
private readonly handle;
|
|
1163
|
+
private disposed;
|
|
1164
|
+
constructor(port: SmokePort, desc: SmokeVolumeDesc);
|
|
1165
|
+
setEmitters(emitters: readonly SmokeEmitter[]): void;
|
|
1166
|
+
follow(centre: Vec3Like): void;
|
|
1167
|
+
step(seconds: number): number;
|
|
1168
|
+
dispose(): void;
|
|
1169
|
+
}
|
|
1170
|
+
|
|
1171
|
+
declare const STORY_VARIABLE_TYPES: readonly ["bool", "int", "number", "text"];
|
|
1172
|
+
declare const STORY_PERSISTS: readonly ["play", "player", "shared"];
|
|
1173
|
+
declare const STORY_INTERACTIONS: readonly ["tap", "hold", "swipe", "gift", "vote"];
|
|
1174
|
+
type StoryVariableType = (typeof STORY_VARIABLE_TYPES)[number];
|
|
1175
|
+
type StoryPersist = (typeof STORY_PERSISTS)[number];
|
|
1176
|
+
type StoryInteraction = (typeof STORY_INTERACTIONS)[number];
|
|
1177
|
+
type StoryValue = boolean | number | string;
|
|
1178
|
+
declare const STORY_RULE_ACTIONS: readonly ["set", "add", "go", "say", "show", "hide", "emit"];
|
|
1179
|
+
type StoryRuleAction = (typeof STORY_RULE_ACTIONS)[number];
|
|
1180
|
+
type StoryNodeKind = "variable" | "choice" | "beat" | "scene" | "track" | "actor" | "rule" | "action";
|
|
1181
|
+
interface StoryVariable {
|
|
1182
|
+
readonly index: number;
|
|
1183
|
+
readonly name: string;
|
|
1184
|
+
readonly type: StoryVariableType;
|
|
1185
|
+
readonly persist: StoryPersist;
|
|
1186
|
+
}
|
|
1187
|
+
interface StoryHandlers {
|
|
1188
|
+
entered?(beat: number, scene: number): void;
|
|
1189
|
+
offered?(choice: number): void;
|
|
1190
|
+
taken?(choice: number): void;
|
|
1191
|
+
refused?(choice: number): void;
|
|
1192
|
+
logic?(logic: number, interaction: number): void;
|
|
1193
|
+
key?(track: number, key: number): void;
|
|
1194
|
+
finished?(beat: number): void;
|
|
1195
|
+
rule?(action: number, actor: number, kind: StoryRuleAction): void;
|
|
1196
|
+
persist?(variable: StoryVariable, value: StoryValue): void;
|
|
1197
|
+
}
|
|
1198
|
+
interface StorySample {
|
|
1199
|
+
track: number;
|
|
1200
|
+
target: number;
|
|
1201
|
+
channel: number;
|
|
1202
|
+
key: number;
|
|
1203
|
+
x: number;
|
|
1204
|
+
y: number;
|
|
1205
|
+
z: number;
|
|
1206
|
+
w: number;
|
|
1207
|
+
}
|
|
1208
|
+
declare class StoryPlayer {
|
|
1209
|
+
private readonly port;
|
|
1210
|
+
private readonly handlers;
|
|
1211
|
+
readonly variables: readonly StoryVariable[];
|
|
1212
|
+
private readonly byName;
|
|
1213
|
+
private readonly inputs;
|
|
1214
|
+
private pending;
|
|
1215
|
+
private views;
|
|
1216
|
+
private buffer;
|
|
1217
|
+
private readonly handle;
|
|
1218
|
+
private disposed;
|
|
1219
|
+
constructor(port: StoryPort, program: Uint8Array, handlers?: StoryHandlers);
|
|
1220
|
+
private live;
|
|
1221
|
+
private text;
|
|
1222
|
+
private dispatch;
|
|
1223
|
+
private queue;
|
|
1224
|
+
start(): void;
|
|
1225
|
+
step(): void;
|
|
1226
|
+
choose(choice: number): void;
|
|
1227
|
+
interact(kind: StoryInteraction, target?: number): void;
|
|
1228
|
+
gift(name: string): void;
|
|
1229
|
+
seek(tick: number): void;
|
|
1230
|
+
available(choice: number): boolean;
|
|
1231
|
+
label(choice: number): string;
|
|
1232
|
+
beatName(beat: number): string;
|
|
1233
|
+
sceneName(scene: number): string;
|
|
1234
|
+
actorName(actor: number): string;
|
|
1235
|
+
keyText(track: number, key: number): string;
|
|
1236
|
+
ruleName(rule: number): string;
|
|
1237
|
+
actionText(action: number): string;
|
|
1238
|
+
nodeId(kind: StoryNodeKind, index: number): string | null;
|
|
1239
|
+
private variable;
|
|
1240
|
+
get(name: string | number): StoryValue;
|
|
1241
|
+
set(name: string | number, value: StoryValue): void;
|
|
1242
|
+
sample(index: number, out: StorySample): StorySample;
|
|
1243
|
+
get sampleCount(): number;
|
|
1244
|
+
get beat(): number;
|
|
1245
|
+
get scene(): number;
|
|
1246
|
+
get beatTick(): number;
|
|
1247
|
+
get sceneTick(): number;
|
|
1248
|
+
get sceneLength(): number;
|
|
1249
|
+
get tickRate(): number;
|
|
1250
|
+
get started(): boolean;
|
|
1251
|
+
get finished(): boolean;
|
|
1252
|
+
digest(): string;
|
|
1253
|
+
dispose(): void;
|
|
1254
|
+
}
|
|
1255
|
+
|
|
1256
|
+
declare const FramePhase: {
|
|
1257
|
+
readonly kernels: 0;
|
|
1258
|
+
readonly input: 1;
|
|
1259
|
+
readonly steps: 2;
|
|
1260
|
+
readonly update: 3;
|
|
1261
|
+
readonly transforms: 4;
|
|
1262
|
+
readonly sync: 5;
|
|
1263
|
+
readonly fluids: 6;
|
|
1264
|
+
readonly audio: 7;
|
|
1265
|
+
readonly ui: 8;
|
|
1266
|
+
readonly render: 9;
|
|
1267
|
+
};
|
|
1268
|
+
type FramePhase = (typeof FramePhase)[keyof typeof FramePhase];
|
|
1269
|
+
declare const FRAME_PHASE_NAMES: readonly string[];
|
|
1270
|
+
declare class FramePhases {
|
|
1271
|
+
readonly current: Float64Array<ArrayBuffer>;
|
|
1272
|
+
readonly slowest: Float64Array<ArrayBuffer>;
|
|
1273
|
+
private readonly now;
|
|
1274
|
+
private mark;
|
|
1275
|
+
private started;
|
|
1276
|
+
slowestMs: number;
|
|
1277
|
+
slowestSteps: number;
|
|
1278
|
+
steps: number;
|
|
1279
|
+
constructor(now: () => number);
|
|
1280
|
+
begin(): void;
|
|
1281
|
+
lap(phase: FramePhase): void;
|
|
1282
|
+
end(): void;
|
|
1283
|
+
reset(): void;
|
|
1284
|
+
describe(digits?: number): string;
|
|
1285
|
+
}
|
|
1286
|
+
|
|
1287
|
+
type BreakCause = "damage" | "impact" | "support" | "overflow" | "lifetime" | "stress" | "joint";
|
|
1288
|
+
interface BreakEvent {
|
|
1289
|
+
readonly kind: "break" | "retire" | "remove" | "intact_lost" | "bond";
|
|
1290
|
+
readonly fragment: number;
|
|
1291
|
+
readonly cause: BreakCause;
|
|
1292
|
+
readonly x: number;
|
|
1293
|
+
readonly y: number;
|
|
1294
|
+
readonly z: number;
|
|
1295
|
+
readonly speed: number;
|
|
1296
|
+
}
|
|
1297
|
+
interface DestructibleDesc {
|
|
1298
|
+
readonly fracture: Uint8Array;
|
|
1299
|
+
readonly position?: Vec3Like;
|
|
1300
|
+
readonly rotation?: readonly [number, number, number, number];
|
|
1301
|
+
readonly scale?: number;
|
|
1302
|
+
readonly health?: number;
|
|
1303
|
+
readonly impactThreshold?: number;
|
|
1304
|
+
readonly impactScale?: number;
|
|
1305
|
+
readonly spread?: number;
|
|
1306
|
+
readonly density?: number;
|
|
1307
|
+
readonly friction?: number;
|
|
1308
|
+
readonly restitution?: number;
|
|
1309
|
+
readonly breakSpeed?: number;
|
|
1310
|
+
readonly maxDebris?: number;
|
|
1311
|
+
readonly lifetime?: number;
|
|
1312
|
+
readonly removeRetired?: boolean;
|
|
1313
|
+
readonly support?: boolean;
|
|
1314
|
+
readonly maxBreaksPerStep?: number;
|
|
1315
|
+
/** Broken pieces collide with each other and pile up. Off by default: debris still lands on the world and on intact pieces, and the physics cost of a 500-piece collapse is about a quarter. */
|
|
1316
|
+
readonly debrisCollide?: boolean;
|
|
1317
|
+
readonly collisionGroups?: {
|
|
1318
|
+
readonly membership: number;
|
|
1319
|
+
readonly filter: number;
|
|
1320
|
+
};
|
|
1321
|
+
readonly chips?: {
|
|
1322
|
+
readonly emitter: EmitterId;
|
|
1323
|
+
readonly entity: Entity;
|
|
1324
|
+
readonly perBreak?: number;
|
|
1325
|
+
};
|
|
1326
|
+
readonly onBreak?: (event: BreakEvent) => void;
|
|
1327
|
+
}
|
|
1328
|
+
declare class Destructible {
|
|
1329
|
+
private readonly port;
|
|
1330
|
+
private readonly world;
|
|
1331
|
+
private readonly transforms;
|
|
1332
|
+
private readonly graphics;
|
|
1333
|
+
private readonly desc;
|
|
1334
|
+
readonly root: Entity;
|
|
1335
|
+
readonly intact: Entity;
|
|
1336
|
+
readonly fragments: readonly Entity[];
|
|
1337
|
+
private readonly event;
|
|
1338
|
+
private chipX;
|
|
1339
|
+
private chipY;
|
|
1340
|
+
private chipZ;
|
|
1341
|
+
private chipCount;
|
|
1342
|
+
private disposed;
|
|
1343
|
+
readonly id: number;
|
|
1344
|
+
constructor(port: DestructionPort, world: World, transforms: Transforms, graphics: Graphics, model: ModelInfo, desc: DestructibleDesc);
|
|
1345
|
+
get attached(): number;
|
|
1346
|
+
damage(point: Vec3Like, radius: number, amount: number): number;
|
|
1347
|
+
configure(structure: StructureDesc): void;
|
|
1348
|
+
handle(words: Uint32Array, floats: Float32Array, at: number): void;
|
|
1349
|
+
flushChips(): void;
|
|
1350
|
+
dispose(): void;
|
|
1351
|
+
}
|
|
1352
|
+
|
|
1353
|
+
interface GameOptions extends LoopOptions {
|
|
1354
|
+
readonly backend: GameBackend;
|
|
1355
|
+
readonly seed?: number;
|
|
1356
|
+
readonly capacity?: number;
|
|
1357
|
+
readonly surface?: GameSurface | null;
|
|
1358
|
+
readonly ui?: GameUiHost | null;
|
|
1359
|
+
readonly physics?: PhysicsOptions;
|
|
1360
|
+
readonly animation?: AnimationOptions;
|
|
1361
|
+
readonly gestures?: GestureOptions;
|
|
1362
|
+
readonly scratch?: ScratchCapacity;
|
|
1363
|
+
readonly maxVoices?: number;
|
|
1364
|
+
readonly maxHudSlots?: number;
|
|
1365
|
+
readonly nature?: NatureOptions;
|
|
1366
|
+
readonly assets?: PrefetchAssets | null;
|
|
1367
|
+
}
|
|
1368
|
+
declare class Game {
|
|
1369
|
+
phases: FramePhases | null;
|
|
1370
|
+
readonly backend: GameBackend;
|
|
1371
|
+
readonly world: World;
|
|
1372
|
+
readonly transforms: Transforms;
|
|
1373
|
+
readonly loop: FixedStepLoop;
|
|
1374
|
+
readonly random: SeededRandom;
|
|
1375
|
+
readonly input: InputActions;
|
|
1376
|
+
readonly physics: Physics;
|
|
1377
|
+
readonly nav: Nav;
|
|
1378
|
+
readonly ai: GameAi | null;
|
|
1379
|
+
readonly graphics: Graphics;
|
|
1380
|
+
readonly animation: Animation;
|
|
1381
|
+
readonly audio: Audio;
|
|
1382
|
+
readonly ui: GameUi;
|
|
1383
|
+
readonly net: GameNet;
|
|
1384
|
+
readonly scratch: ScratchArena;
|
|
1385
|
+
readonly scenes: SceneManager<Game>;
|
|
1386
|
+
readonly prefetch: GamePrefetch;
|
|
1387
|
+
readonly clock: Float64Array;
|
|
1388
|
+
private readonly tables;
|
|
1389
|
+
private chemistryApi;
|
|
1390
|
+
private readonly fluids;
|
|
1391
|
+
private destruction;
|
|
1392
|
+
private softBodySystem;
|
|
1393
|
+
private readonly reactives;
|
|
1394
|
+
private readonly smokes;
|
|
1395
|
+
private readonly stories;
|
|
1396
|
+
private clothSystem;
|
|
1397
|
+
private readonly nature;
|
|
1398
|
+
private readonly kernelRunner;
|
|
1399
|
+
private meters;
|
|
1400
|
+
private meterFrames;
|
|
1401
|
+
private stopMeters;
|
|
1402
|
+
private timeline;
|
|
1403
|
+
private stopTimeline;
|
|
1404
|
+
private disposed;
|
|
1405
|
+
constructor(options: GameOptions);
|
|
1406
|
+
private applyMeters;
|
|
1407
|
+
private meter;
|
|
1408
|
+
get chemistry(): Chemistry;
|
|
1409
|
+
get tick(): number;
|
|
1410
|
+
get alpha(): number;
|
|
1411
|
+
get stepSeconds(): number;
|
|
1412
|
+
get frameSeconds(): number;
|
|
1413
|
+
get time(): FrameTime;
|
|
1414
|
+
fluid(desc: FluidDesc): Fluid;
|
|
1415
|
+
get softBodies(): SoftBodies;
|
|
1416
|
+
softBody(shape: SoftBodyShape, options?: SoftBodyOptions): SoftBody;
|
|
1417
|
+
get cloths(): Cloths;
|
|
1418
|
+
cloth(shape: ClothShape, options?: ClothOptions): ClothSheet;
|
|
1419
|
+
reactiveFluid(desc: ReactiveFluidDesc): ReactiveFluid;
|
|
1420
|
+
smokeVolume(desc: SmokeVolumeDesc): SmokeVolume;
|
|
1421
|
+
story(program: Uint8Array, handlers?: StoryHandlers): StoryPlayer;
|
|
1422
|
+
removeStory(story: StoryPlayer): void;
|
|
1423
|
+
removeSmokeVolume(smoke: SmokeVolume): void;
|
|
1424
|
+
removeReactiveFluid(reactive: ReactiveFluid): void;
|
|
1425
|
+
removeFluid(fluid: Fluid): void;
|
|
1426
|
+
destructible(model: ModelInfo, desc: DestructibleDesc): Destructible;
|
|
1427
|
+
breakable(mesh: FractureMesh, options: FractureOptions, desc?: Omit<DestructibleDesc, "fracture">): Promise<Destructible>;
|
|
1428
|
+
removeDestructible(item: Destructible): void;
|
|
1429
|
+
table<const S extends TableSchema>(schema: S, options: EntityTableOptions): EntityTable<S>;
|
|
1430
|
+
addScene(scene: GameScene<Game>): void;
|
|
1431
|
+
addSystem(system: GameSystem<Game>): void;
|
|
1432
|
+
reload(next: GameReload<Game>): ReloadReport;
|
|
1433
|
+
start(scene: string): void;
|
|
1434
|
+
private studio;
|
|
1435
|
+
private timelineGame;
|
|
1436
|
+
private storyValues;
|
|
1437
|
+
private steps;
|
|
1438
|
+
frame(nowMs: number): void;
|
|
1439
|
+
private governorFrames;
|
|
1440
|
+
private sampleGovernor;
|
|
1441
|
+
runFrame(): void;
|
|
1442
|
+
private profiledFrame;
|
|
1443
|
+
advance(steps: number): void;
|
|
1444
|
+
dispose(): void;
|
|
1445
|
+
private fixedStep;
|
|
1446
|
+
private present;
|
|
1447
|
+
private stream;
|
|
1448
|
+
}
|
|
1449
|
+
declare function createGame(options: GameOptions): Promise<Game>;
|
|
1450
|
+
|
|
1451
|
+
export { Clip as $, type ActionId as A, type RegionStats as B, Chemistry as C, type Delivery as D, groupNames as E, type AgentSpawn as F, Game as G, type ArchetypeHandle as H, InputActions as I, GameAi as J, type SmartObjectSpawn as K, type EaseId as L, MessageReader as M, type NatureOptions as N, type InputTap as O, type PointerFilter as P, Animation as Q, type RoomTransport as R, SeededRandom as S, type TargetSpawn as T, type AnimationOptions as U, type VesselState as V, type AxisBinding as W, type BreakCause as X, type BreakEvent as Y, type ButtonBinding as Z, Channel as _, type GameUiHost as a, drainSource as a$, type ClipDesc as a0, type ClipPlayerId as a1, type ClipTrack as a2, Destructible as a3, type DestructibleDesc as a4, type DrainSource as a5, Ease as a6, FRAME_PHASE_NAMES as a7, FrameInput as a8, FramePhase as a9, type ReactiveMediumLook as aA, type ReactivePlume as aB, type ReactiveSpecies as aC, type ReactiveStats as aD, Repeat as aE, type RepeatMode as aF, STAGE_TIME as aG, STAGE_X as aH, STAGE_Y as aI, STAGE_Z as aJ, ScratchArena as aK, type ScratchCapacity as aL, SnapshotBuffer as aM, SwipeGesture as aN, TapGesture as aO, type TweenId as aP, TweenTarget as aQ, type TweenTargetId as aR, type UiActionId as aS, type UiValue as aT, type ValueSlot as aU, WheelState as aV, type WireField as aW, type WireScalar as aX, createGame as aY, createReactivePlume as aZ, createReactiveStats as a_, FramePhases as aa, type GameOptions as ab, type GestureOptions as ac, type HapticPattern as ad, type HudSlot as ae, type HudSlotKind as af, type HudSlotLayout as ag, InputDevice as ah, type InputDeviceId as ai, LongPressGesture as aj, type LoopbackOptions as ak, LoopbackTransport as al, type MessageSchema as am, MessageWriter as an, NO_UI_ACTION as ao, OrientationState as ap, PinchGesture as aq, PointerDelta as ar, PointerState as as, type QuantizedField as at, REACTIVE_DEFAULTS as au, RECORDED_EVENT_BYTES as av, ReactiveFluid as aw, type ReactiveFluidDesc as ax, type ReactiveGrid as ay, type ReactiveHobDesc as az, type DefineResult as b, ease as b0, easeInPlace as b1, quantized as b2, type PointerPhase as c, MessageType as d, GameNet as e, GameUi as f, ChemistryRegion as g, type ChemistryEvent as h, CELL_CLASSES as i, CHEMISTRY_EVENT_KINDS as j, CHEMISTRY_GROUPS as k, CHEMISTRY_REFUSALS as l, CHEMISTRY_REFUSAL_TEXT as m, type CellBox as n, type CellClass as o, type CellProbe as p, type ChemistryEventKind as q, type ChemistryGroup as r, ChemistryMemory as s, ChemistryParticles as t, type ChemistryRefusal as u, ChemistryVessel as v, type MaterialInfo as w, type ReactionInfo as x, type ReactionTerm as y, type RegionOptions as z };
|