@cimplify/sdk 0.109.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/dist/advanced.d.mts +4 -4
- package/dist/advanced.d.ts +4 -4
- package/dist/{audio-XU2sFNyO.d.mts → audio-DhvyjqdA.d.mts} +2 -2
- package/dist/{audio-8Igdy2WK.d.ts → audio-m0w8cnxq.d.ts} +2 -2
- package/dist/avatars.js +21 -21
- package/dist/avatars.mjs +3 -3
- package/dist/{backend-L4d_Ha0J.d.mts → backend-gUCzs5Kg.d.mts} +16 -2
- package/dist/{backend-L4d_Ha0J.d.ts → backend-gUCzs5Kg.d.ts} +16 -2
- package/dist/{catalogue-BeBFWlHF.d.mts → catalogue-CPTMyBUz.d.mts} +2 -2
- package/dist/{catalogue-DLLsfuNg.d.ts → catalogue-OTuS5zp-.d.ts} +2 -2
- package/dist/{chunk-HF2MZKP2.mjs → chunk-22BD3RHN.mjs} +6 -3
- package/dist/{chunk-B54P6RL2.js → chunk-2AQ237Y4.js} +30 -30
- package/dist/{chunk-W3VVG4NL.js → chunk-2O2CG465.js} +14 -2
- package/dist/{chunk-UPHTPBNQ.mjs → chunk-2QTQ6BUH.mjs} +1 -1
- package/dist/{chunk-BS65NRDW.js → chunk-3S6WPBZL.js} +16 -16
- package/dist/{chunk-PEZYNYJE.js → chunk-3TUOUP5T.js} +3 -3
- package/dist/{chunk-EB6EAOM5.mjs → chunk-3VEH23I5.mjs} +7 -10
- package/dist/{chunk-FB6YH2WW.js → chunk-4C7I3ELN.js} +4 -4
- package/dist/{chunk-UQYO3OM7.js → chunk-4ZDR72SG.js} +1 -2
- package/dist/{chunk-HPKKCUHU.js → chunk-52YS45RR.js} +13 -13
- package/dist/{chunk-6YVELDFK.mjs → chunk-5BYDGGWO.mjs} +1 -1
- package/dist/{chunk-YN24DET4.js → chunk-5HFMY3D7.js} +10 -10
- package/dist/{chunk-4CVB2ZTC.js → chunk-5LH2QN3T.js} +32 -29
- package/dist/{chunk-4A24F4ZV.mjs → chunk-5YFBGGCK.mjs} +4 -1
- package/dist/{chunk-NLAT3DB2.mjs → chunk-6DAEZKIG.mjs} +1 -1
- package/dist/{chunk-F6CHJXXK.mjs → chunk-6DATW7TB.mjs} +3 -3
- package/dist/{chunk-4RYATNVK.mjs → chunk-6H254EVP.mjs} +6 -11
- package/dist/{chunk-32U4BVJA.mjs → chunk-6PJWXIFX.mjs} +1 -1
- package/dist/{chunk-BHAGIIBI.js → chunk-6WUBSMTX.js} +82 -85
- package/dist/{chunk-EPYFN2A3.js → chunk-7AAIAVAA.js} +24 -20
- package/dist/{chunk-HZC27ICH.mjs → chunk-7BHW5GTC.mjs} +3 -3
- package/dist/{chunk-MB425DVA.mjs → chunk-7IQQQENP.mjs} +2 -2
- package/dist/{chunk-DJUUL67Z.js → chunk-7KFTYENS.js} +296 -296
- package/dist/{chunk-XLQSNQMP.js → chunk-7SM6XSPZ.js} +339 -339
- package/dist/{chunk-NBH64BDP.mjs → chunk-A33OORT7.mjs} +13 -1
- package/dist/{chunk-G2SXLGFY.js → chunk-A7BU3BK4.js} +7 -7
- package/dist/{chunk-ZNWS7NOW.mjs → chunk-A7V4L2IT.mjs} +2 -2
- package/dist/{chunk-O3SITS4R.mjs → chunk-AGV33FWC.mjs} +4 -4
- package/dist/{chunk-Z2DE3EHS.js → chunk-AHNR3BXI.js} +7 -7
- package/dist/{chunk-UQ4BHMLS.mjs → chunk-AQ5RLBU2.mjs} +5 -5
- package/dist/{chunk-J4HU2YQB.js → chunk-AQOE6WCG.js} +2 -2
- package/dist/{chunk-X57B7VQC.js → chunk-AYJPHKYV.js} +22 -22
- package/dist/{chunk-6XTWY6MH.js → chunk-AZAXD44P.js} +126 -42
- package/dist/{chunk-QDW4EPWS.mjs → chunk-BBGKQIJJ.mjs} +1 -1
- package/dist/{chunk-NHYTO4VU.js → chunk-BP4JLSUA.js} +111 -120
- package/dist/{chunk-7INQVOHY.mjs → chunk-BU6OK542.mjs} +25 -8
- package/dist/{chunk-W23VX5MY.js → chunk-CVSRWM6W.js} +5 -5
- package/dist/{chunk-A7DK7QAG.mjs → chunk-CYBMFMJD.mjs} +1 -1
- package/dist/{chunk-BOTUAHP2.mjs → chunk-DS2VU4WW.mjs} +5 -20
- package/dist/{chunk-HMMFNLXZ.js → chunk-DSAG7T5P.js} +2 -2
- package/dist/{chunk-7GG4KNTL.mjs → chunk-E65WCTIG.mjs} +8 -4
- package/dist/{chunk-WXDVEXTW.mjs → chunk-ECDK6QBF.mjs} +1 -1
- package/dist/{chunk-5IRV36MS.mjs → chunk-EIB4OWVQ.mjs} +1 -1
- package/dist/{chunk-JLJ4FD5H.js → chunk-EQUZYCGO.js} +18 -18
- package/dist/{chunk-AKTWH3KJ.mjs → chunk-F3UJ6ZRM.mjs} +2 -2
- package/dist/{chunk-J6HRY5EQ.js → chunk-F63N2ZTQ.js} +232 -232
- package/dist/{chunk-MUEFTPNN.js → chunk-FE6VCE4K.js} +34 -34
- package/dist/{chunk-2UYTS7SL.mjs → chunk-GCX7TY4D.mjs} +16 -16
- package/dist/{chunk-QDLMIHUH.js → chunk-GDB6TCSD.js} +7 -7
- package/dist/{chunk-7S7LDFGH.js → chunk-GDZT5LZ5.js} +12 -12
- package/dist/{chunk-TB2LS4CE.mjs → chunk-GHS6MIL6.mjs} +7 -11
- package/dist/{chunk-7OHZ56N7.mjs → chunk-GXKI64OT.mjs} +4 -4
- package/dist/{chunk-HRSIIDOZ.js → chunk-H3OQKK6X.js} +41 -41
- package/dist/{chunk-56BM75QX.js → chunk-H5DFSCJ6.js} +2 -2
- package/dist/{chunk-LMK775I4.mjs → chunk-HAGEIC2L.mjs} +1 -1
- package/dist/{chunk-6FZDMICK.js → chunk-HAJ4JRFO.js} +15 -15
- package/dist/{chunk-AWR2G5QN.js → chunk-HDR72GB6.js} +6 -11
- package/dist/{chunk-PTT6KIM6.js → chunk-HSEO6TPU.js} +9 -9
- package/dist/{chunk-CQSA2D2O.js → chunk-I5FOHCLH.js} +4 -31
- package/dist/{chunk-TMFB55IR.js → chunk-J2U6PJSO.js} +3 -30
- package/dist/{chunk-W77VO6LP.js → chunk-J5AJNY2N.js} +13 -13
- package/dist/{chunk-UKA7LHIT.js → chunk-JR3TNEQC.js} +98 -98
- package/dist/{chunk-P2O34BIO.mjs → chunk-JURRXY2J.mjs} +1 -1
- package/dist/{chunk-PKMVOVUA.mjs → chunk-K3HW5I2A.mjs} +1 -1
- package/dist/{chunk-BXUGKBMK.mjs → chunk-KDQOR4QQ.mjs} +1 -14
- package/dist/{chunk-KVZSYGTX.mjs → chunk-KGHJH5KJ.mjs} +1 -1
- package/dist/{chunk-3AKWZF3X.mjs → chunk-KK6HYVBI.mjs} +1 -1
- package/dist/{chunk-K6GK5B5J.js → chunk-KMKWGXMK.js} +6 -6
- package/dist/{chunk-EH4UG7IL.mjs → chunk-KU7O4IXU.mjs} +4 -4
- package/dist/{chunk-IHRMR3WV.mjs → chunk-KVFNRJOR.mjs} +9 -9
- package/dist/{chunk-HBZQ5HSV.mjs → chunk-LIV3KXJG.mjs} +1 -1
- package/dist/{chunk-S75PBSSL.mjs → chunk-ME6HGG4I.mjs} +92 -8
- package/dist/{chunk-FKYZCXFM.js → chunk-MIPO6F72.js} +3 -3
- package/dist/{chunk-MFWIHTEN.js → chunk-MTIHEW2M.js} +5 -5
- package/dist/{chunk-M53GR3ZV.mjs → chunk-NHJUGZUR.mjs} +43 -5
- package/dist/{chunk-FAYK2MN6.js → chunk-NZTKLY2W.js} +14 -18
- package/dist/{chunk-EQW6PFC2.js → chunk-O2ICABUD.js} +2 -2
- package/dist/{chunk-5PW6DVHF.js → chunk-OIVVQQ22.js} +55 -37
- package/dist/{chunk-GBJ5CW3A.js → chunk-PKOZXD2Q.js} +30 -30
- package/dist/{chunk-NGN3JE5A.js → chunk-PQTQKNKD.js} +16 -7
- package/dist/{chunk-PCVVQNBD.js → chunk-QS6TRHMR.js} +5 -5
- package/dist/{chunk-DXZZ27CV.js → chunk-RKBLPGPV.js} +245 -207
- package/dist/{chunk-765P2G7G.mjs → chunk-RUVGVNOF.mjs} +1 -1
- package/dist/{chunk-NJ7ZWH4U.mjs → chunk-SAFJIGYB.mjs} +1 -1
- package/dist/{chunk-AOPH2IZV.js → chunk-SKQFLBDD.js} +60 -22
- package/dist/{chunk-BUUA5XJV.js → chunk-TWM6DLYF.js} +2 -2
- package/dist/{chunk-YPL5TKI4.mjs → chunk-U6UVWEAK.mjs} +1 -1
- package/dist/{chunk-6YQDHXPL.mjs → chunk-UCEPNO6N.mjs} +46 -9
- package/dist/{chunk-U7RULAEP.mjs → chunk-UG5BTOTF.mjs} +2 -2
- package/dist/{chunk-MITGBWV7.mjs → chunk-UGH37BQW.mjs} +1 -1
- package/dist/{chunk-URRZ2SMI.mjs → chunk-V7ZRH3PY.mjs} +2 -2
- package/dist/{chunk-3H76N7G5.mjs → chunk-VBGHBL3E.mjs} +8 -17
- package/dist/{chunk-AZC2LTUI.js → chunk-VVE3Y76O.js} +2 -2
- package/dist/{chunk-BRAA7U3I.mjs → chunk-W65JIRI4.mjs} +1 -1
- package/dist/{chunk-KU4EDEKA.js → chunk-WKWTDZS7.js} +9 -9
- package/dist/{chunk-NTTHAXHI.js → chunk-X5A5FOWW.js} +11 -8
- package/dist/{chunk-ODL55PYL.mjs → chunk-XD2PMH46.mjs} +16 -7
- package/dist/{chunk-OADW5BSV.js → chunk-XK6UDWJS.js} +2 -2
- package/dist/{chunk-7ZTEVNXO.mjs → chunk-Y65LXQGA.mjs} +8 -8
- package/dist/{chunk-Z3PGQRTX.mjs → chunk-Y66WVMO5.mjs} +3 -30
- package/dist/{chunk-VZAJDN5C.mjs → chunk-Y7JWLB25.mjs} +1 -1
- package/dist/{chunk-ZJGPD42I.js → chunk-YCDXAJKU.js} +3 -3
- package/dist/{chunk-NCTLCSLE.mjs → chunk-Z3A3AFVU.mjs} +1 -1
- package/dist/{chunk-AEEF3T2E.mjs → chunk-ZCY6YKKP.mjs} +3 -3
- package/dist/{chunk-M5FWHML6.js → chunk-ZMIL4ZOA.js} +5 -18
- package/dist/{chunk-D3JMTFOX.mjs → chunk-ZR5ULMN2.mjs} +1 -1
- package/dist/{client-CO8lw80Q.d.mts → client-CX_WR0-J.d.mts} +2 -2
- package/dist/{client-C9hsiaki.d.ts → client-dqOhP9Nc.d.ts} +2 -2
- package/dist/{courier-CJasuxTU.d.ts → courier-Cnn-edJ4.d.ts} +5 -5
- package/dist/{courier-C2Vo2VlH.d.mts → courier-FmGfkvIN.d.mts} +5 -5
- package/dist/{crowd-D1ljcic8.d.ts → crowd-DdHFbqKK.d.ts} +1 -1
- package/dist/{crowd-B37S1apB.d.mts → crowd-hOVSAmA3.d.mts} +1 -1
- package/dist/{danfo-BsaPzhGi.d.mts → danfo-BEBapFlX.d.mts} +3 -3
- package/dist/{danfo-CCv23CPy.d.ts → danfo-UQ_PTIIx.d.ts} +3 -3
- package/dist/{elements-Bsfk7CPw.d.ts → elements-DdsRig-2.d.mts} +20 -0
- package/dist/{elements-Bsfk7CPw.d.mts → elements-DdsRig-2.d.ts} +20 -0
- package/dist/engines/godot.d.mts +1 -1
- package/dist/engines/godot.d.ts +1 -1
- package/dist/engines/wasm.d.mts +1 -1
- package/dist/engines/wasm.d.ts +1 -1
- package/dist/fallback-KDB4Y2CE.mjs +6 -0
- package/dist/fallback-Y26TQENE.js +19 -0
- package/dist/{five-a-side-DP84gMuh.d.mts → five-a-side-Bv1AOUy3.d.mts} +4 -4
- package/dist/{five-a-side-DO8SDqMb.d.ts → five-a-side-EC51SJY1.d.ts} +4 -4
- package/dist/{fluid-BkxNBD2t.d.ts → fluid-ARr0qUIL.d.ts} +168 -4
- package/dist/{fluid-BZ42EMds.d.mts → fluid-DLlEj2cs.d.mts} +168 -4
- package/dist/game/conformance.d.mts +7 -7
- package/dist/game/conformance.d.ts +7 -7
- package/dist/game/conformance.js +39 -41
- package/dist/game/conformance.mjs +17 -19
- package/dist/game/heap.d.mts +3 -3
- package/dist/game/heap.d.ts +3 -3
- package/dist/game/heap.js +13 -15
- package/dist/game/heap.mjs +4 -6
- package/dist/game/kit/canvas.d.mts +33 -34
- package/dist/game/kit/canvas.d.ts +33 -34
- package/dist/game/kit/canvas.js +569 -570
- package/dist/game/kit/canvas.mjs +52 -53
- package/dist/game/kit/courier.d.mts +9 -9
- package/dist/game/kit/courier.d.ts +9 -9
- package/dist/game/kit/courier.js +20 -20
- package/dist/game/kit/courier.mjs +17 -17
- package/dist/game/kit/danfo.d.mts +7 -7
- package/dist/game/kit/danfo.d.ts +7 -7
- package/dist/game/kit/danfo.js +30 -30
- package/dist/game/kit/danfo.mjs +15 -15
- package/dist/game/kit/engine.d.mts +12 -12
- package/dist/game/kit/engine.d.ts +12 -12
- package/dist/game/kit/engine.js +40 -41
- package/dist/game/kit/engine.mjs +11 -12
- package/dist/game/kit/five-a-side.d.mts +7 -7
- package/dist/game/kit/five-a-side.d.ts +7 -7
- package/dist/game/kit/five-a-side.js +24 -24
- package/dist/game/kit/five-a-side.mjs +14 -14
- package/dist/game/kit/frontier.d.mts +7 -7
- package/dist/game/kit/frontier.d.ts +7 -7
- package/dist/game/kit/genesis.d.mts +7 -7
- package/dist/game/kit/genesis.d.ts +7 -7
- package/dist/game/kit/ludo.d.mts +8 -8
- package/dist/game/kit/ludo.d.ts +8 -8
- package/dist/game/kit/ludo.js +24 -24
- package/dist/game/kit/ludo.mjs +14 -14
- package/dist/game/kit/runner.d.mts +8 -8
- package/dist/game/kit/runner.d.ts +8 -8
- package/dist/game/kit/runner.js +22 -22
- package/dist/game/kit/runner.mjs +14 -14
- package/dist/game/kit/shootout.d.mts +9 -9
- package/dist/game/kit/shootout.d.ts +9 -9
- package/dist/game/kit/shootout.js +33 -34
- package/dist/game/kit/shootout.mjs +18 -19
- package/dist/game/kit/tycoon.d.mts +9 -9
- package/dist/game/kit/tycoon.d.ts +9 -9
- package/dist/game/kit/tycoon.js +38 -38
- package/dist/game/kit/tycoon.mjs +14 -14
- package/dist/game/kit/word.d.mts +7 -7
- package/dist/game/kit/word.d.ts +7 -7
- package/dist/game/kit/word.js +22 -22
- package/dist/game/kit/word.mjs +14 -14
- package/dist/game/kit/worlds.d.mts +10 -10
- package/dist/game/kit/worlds.d.ts +10 -10
- package/dist/game/kit/worlds.js +22 -22
- package/dist/game/kit/worlds.mjs +17 -17
- package/dist/game/kit.d.mts +31 -32
- package/dist/game/kit.d.ts +31 -32
- package/dist/game/kit.js +523 -524
- package/dist/game/kit.mjs +38 -39
- package/dist/game/prepared.d.mts +6 -7
- package/dist/game/prepared.d.ts +6 -7
- package/dist/game/prepared.js +23 -24
- package/dist/game/prepared.mjs +12 -13
- package/dist/{game-BZAfgKV6.d.mts → game-Bx8onkhX.d.mts} +5 -97
- package/dist/{game-UoJWopvD.d.ts → game-fgQy2YIm.d.ts} +5 -97
- package/dist/game.d.mts +56 -18
- package/dist/game.d.ts +56 -18
- package/dist/game.js +922 -927
- package/dist/game.mjs +16 -17
- package/dist/{graphics-DNIAV5Mi.d.ts → graphics-C6YjWYvP.d.ts} +1 -1
- package/dist/{graphics-CGJDdtdT.d.mts → graphics-Dk2yQnYN.d.mts} +1 -1
- package/dist/{guest-CMCZeyh5.d.mts → guest-DrsA00XD.d.mts} +2 -7
- package/dist/{guest-CB458Hgw.d.ts → guest-wIdfoT05.d.ts} +2 -7
- package/dist/{hit-stop-D2Ca-i9-.d.mts → hit-stop-BKkVwTq7.d.mts} +1 -1
- package/dist/{hit-stop-Ca1OYk15.d.ts → hit-stop-D-8pPYnM.d.ts} +1 -1
- package/dist/{hot-B9BTmDz6.d.ts → hot-Crn9XpHJ.d.ts} +1 -1
- package/dist/{hot-B_L-GEHZ.d.mts → hot-DH3nOhQD.d.mts} +1 -1
- package/dist/{index-C3KORE2U.d.mts → index-6gkHMGAq.d.mts} +2 -2
- package/dist/{index-DPeyo938.d.ts → index-B8ybCKJI.d.ts} +3 -3
- package/dist/{index-DFDeJxFQ.d.ts → index-B98Xac8e.d.ts} +2 -2
- package/dist/{index-Cv_rL5X0.d.ts → index-B_ByTtIT.d.ts} +2 -2
- package/dist/{index-D8ZDzms9.d.mts → index-DHjNHb1c.d.mts} +3 -3
- package/dist/{index-C76o9Pj4.d.mts → index-DbAN_VQE.d.mts} +2 -2
- package/dist/index.d.mts +8 -8
- package/dist/index.d.ts +8 -8
- package/dist/interactives-authoring.js +12 -1
- package/dist/interactives-authoring.mjs +12 -1
- package/dist/interactives-canvas.global.js +14 -39
- package/dist/interactives-guest.d.mts +2 -2
- package/dist/interactives-guest.d.ts +2 -2
- package/dist/interactives-guest.js +10 -10
- package/dist/interactives-guest.mjs +6 -6
- package/dist/interactives-jsc.global.js +4 -23
- package/dist/interactives-meters.d.mts +11 -11
- package/dist/interactives-meters.d.ts +11 -11
- package/dist/interactives-meters.js +65 -66
- package/dist/interactives-meters.mjs +17 -18
- package/dist/interactives-production.d.mts +5 -5
- package/dist/interactives-production.d.ts +5 -5
- package/dist/interactives-production.js +15 -16
- package/dist/interactives-production.mjs +3 -4
- package/dist/interactives-record.d.mts +3 -9
- package/dist/interactives-record.d.ts +3 -9
- package/dist/interactives-record.js +45 -65
- package/dist/interactives-record.mjs +19 -39
- package/dist/interactives-runtime.d.mts +3 -3
- package/dist/interactives-runtime.d.ts +3 -3
- package/dist/interactives-runtime.js +101 -105
- package/dist/interactives-runtime.mjs +6 -6
- package/dist/interactives-studio-kernel.global.js +1 -1
- package/dist/interactives-studio.d.mts +7 -7
- package/dist/interactives-studio.d.ts +7 -7
- package/dist/interactives-studio.js +136 -82
- package/dist/interactives-studio.mjs +65 -11
- package/dist/interactives-web.d.mts +14 -14
- package/dist/interactives-web.d.ts +14 -14
- package/dist/interactives-web.js +201 -198
- package/dist/interactives-web.mjs +33 -34
- package/dist/interactives.d.mts +7 -28
- package/dist/interactives.d.ts +7 -28
- package/dist/interactives.js +267 -313
- package/dist/interactives.mjs +26 -24
- package/dist/{juice-Dfgc1B1q.d.ts → juice-CoHxlpKA.d.ts} +1 -1
- package/dist/{juice-CsnrmTOk.d.mts → juice-DQztFS43.d.mts} +1 -1
- package/dist/{launch-CCsmv8HC.d.mts → launch-T2f4_Di4.d.mts} +6 -6
- package/dist/{launch-8W_Tojpz.d.ts → launch-d6oreMzR.d.ts} +6 -6
- package/dist/{local-DA_HpPOj.d.mts → local-D8_I6UeL.d.mts} +0 -5
- package/dist/{local-_mD0x-p_.d.ts → local-VZkqsCzR.d.ts} +0 -5
- package/dist/{ludo-BVHycBP-.d.ts → ludo-B8ClkDqr.d.ts} +4 -4
- package/dist/{ludo-BRaTcI3E.d.mts → ludo-BOuohQ-M.d.mts} +4 -4
- package/dist/{native-CcMUV7rL.d.mts → native-BodxSh03.d.mts} +2 -2
- package/dist/{native-3f4Ht82c.d.ts → native-DUHMT8gA.d.ts} +2 -2
- package/dist/{online-CCy8pwOn.d.ts → online-XeymeM9s.d.ts} +1 -1
- package/dist/{online-smW2BO3Y.d.mts → online-d7W_Al9a.d.mts} +1 -1
- package/dist/{play-BhHHX1jD.d.ts → play-BRRlfLhX.d.ts} +5 -5
- package/dist/{play-Bn7NfGNE.d.mts → play-ClrMd_e8.d.mts} +5 -5
- package/dist/{policy-Dvnzg8ki.d.mts → policy-CCw8tXLm.d.mts} +19 -19
- package/dist/{policy-b3MVXMQu.d.ts → policy-CMqOSQIu.d.ts} +19 -19
- package/dist/{ports-CNeZdgVm.d.mts → ports-B_0v_P3A.d.mts} +1 -1
- package/dist/{ports-Vno6MDaR.d.ts → ports-CGU_3e_0.d.ts} +1 -1
- package/dist/{prefetch-BFg6lJyD.d.ts → prefetch-BHnicOQj.d.ts} +3 -3
- package/dist/{prefetch-BOoKX3qx.d.mts → prefetch-CBXgYacv.d.mts} +3 -3
- package/dist/{price-BIKJla_G.d.mts → price-BOzexBww.d.mts} +1 -1
- package/dist/{price-D1gE7Ek6.d.ts → price-C1h9sPxE.d.ts} +1 -1
- package/dist/react.d.mts +16 -16
- package/dist/react.d.ts +16 -16
- package/dist/react.js +29 -18
- package/dist/react.mjs +26 -15
- package/dist/{runner-BAG8EglP.d.ts → runner-CQcLL7By.d.ts} +6 -6
- package/dist/{runner-CKtKtIzc.d.mts → runner-D46Yj-wE.d.mts} +6 -6
- package/dist/{runtime-DfZp1Kwg.d.mts → runtime-BRWfkf_q.d.mts} +1 -8
- package/dist/{runtime-yHPgIJV-.d.ts → runtime-DyuBMkKM.d.ts} +1 -8
- package/dist/{scheduling-CnRAhWQL.d.ts → scheduling-D2ajXpMC.d.ts} +1 -1
- package/dist/{scheduling-lHyYoCa7.d.mts → scheduling-DSRbbaZb.d.mts} +1 -1
- package/dist/{server-DxcxjER1.d.ts → server-D29IIuDV.d.ts} +2 -2
- package/dist/{server-lU3Sznd4.d.mts → server-DQMWPnc8.d.mts} +2 -2
- package/dist/server.d.mts +4 -4
- package/dist/server.d.ts +4 -4
- package/dist/{shootout-rK-oblpb.d.ts → shootout-BJZeX6FG.d.ts} +6 -6
- package/dist/{shootout-D998OWa-.d.mts → shootout-tcZd1Rxt.d.mts} +6 -6
- package/dist/styles.css +1 -1
- package/dist/{template-Byaueo34.d.mts → template-AhCdB1kW.d.mts} +3 -3
- package/dist/{template-BXE2L654.d.ts → template-BkEGVTQj.d.ts} +3 -3
- package/dist/{terrain-vgYkJPNx.d.ts → terrain-BMxEc6Oc.d.ts} +3 -3
- package/dist/{terrain-CR0NQZPl.d.mts → terrain-C-XC1Oui.d.mts} +3 -3
- package/dist/testing/msw.d.mts +3 -3
- package/dist/testing/msw.d.ts +3 -3
- package/dist/testing/suite.d.mts +6 -6
- package/dist/testing/suite.d.ts +6 -6
- package/dist/testing.d.mts +5 -5
- package/dist/testing.d.ts +5 -5
- package/dist/{tick-transport-Q_8syS8J.d.mts → tick-transport-C8QEh8Uw.d.mts} +1 -1
- package/dist/{tick-transport-xpMcMTs2.d.ts → tick-transport-UjHY3xK1.d.ts} +1 -1
- package/dist/{tree-BsXFWKQ6.d.mts → tree-C-Io2Hbx.d.mts} +1 -1
- package/dist/{tree-DW9x29Vv.d.ts → tree-CP_qSW4H.d.ts} +1 -1
- package/dist/{tycoon-BMAE5Wea.d.mts → tycoon-B5KHk2Xx.d.mts} +5 -5
- package/dist/{tycoon-dWvWTbE4.d.ts → tycoon-hmHo-3HX.d.ts} +5 -5
- package/dist/{types-AkQEePZo.d.mts → types-BQkxPwZP.d.mts} +1 -1
- package/dist/{types-BWaZJDla.d.ts → types-D_f6UUxM.d.ts} +1 -1
- package/dist/utils.d.mts +3 -3
- package/dist/utils.d.ts +3 -3
- package/dist/{weave-delivery-3G03LdMM.d.mts → weave-delivery-CW-Kstut.d.mts} +10 -1
- package/dist/{weave-delivery-3G03LdMM.d.ts → weave-delivery-CW-Kstut.d.ts} +10 -1
- package/dist/{web-C8B9uVx_.d.ts → web-Dss74a7v.d.ts} +7 -7
- package/dist/{web-BqSEfX2o.d.mts → web-f9ZQPoyw.d.mts} +7 -7
- package/dist/{weight-BDABC8cN.d.ts → weight-CPGjsgjV.d.ts} +3 -3
- package/dist/{weight-Cee73u3d.d.mts → weight-tF1ODR1p.d.mts} +3 -3
- package/dist/{word-DB2CcI9q.d.mts → word-BcX9Jcmv.d.mts} +3 -3
- package/dist/{word-C1Q8oXuy.d.ts → word-C7sVPLHm.d.ts} +3 -3
- package/dist/{world-Bmh7K4tQ.d.ts → world-PvILHDR1.d.ts} +1 -1
- package/dist/{world-CPEjuctH.d.mts → world-qekkXjJv.d.mts} +1 -1
- package/dist/{worlds-ShY5h6Z_.d.ts → worlds-Br2Pb0Cs.d.ts} +6 -6
- package/dist/{worlds-CQgN3GnR.d.mts → worlds-D5ydYr7d.d.mts} +6 -6
- package/package.json +1 -1
- package/dist/chunk-2LKAOU3L.mjs +0 -96
- package/dist/chunk-UWPQL2IQ.js +0 -104
- package/dist/fallback-Q5YYIMVJ.js +0 -20
- package/dist/fallback-XGBE3RXC.mjs +0 -7
- package/dist/split-Di9wBpNx.d.mts +0 -68
- package/dist/split-Di9wBpNx.d.ts +0 -68
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
'use strict';
|
|
2
2
|
|
|
3
|
-
var
|
|
4
|
-
var
|
|
5
|
-
var
|
|
6
|
-
var
|
|
3
|
+
var chunkSKQFLBDD_js = require('./chunk-SKQFLBDD.js');
|
|
4
|
+
var chunk7AAIAVAA_js = require('./chunk-7AAIAVAA.js');
|
|
5
|
+
var chunkX5A5FOWW_js = require('./chunk-X5A5FOWW.js');
|
|
6
|
+
var chunk2O2CG465_js = require('./chunk-2O2CG465.js');
|
|
7
7
|
var chunk2V7IL4HC_js = require('./chunk-2V7IL4HC.js');
|
|
8
8
|
|
|
9
9
|
// src/game/backends/engine/vector-surfaces.ts
|
|
@@ -33,12 +33,12 @@ function engineVectorSurfaceExports(symbols) {
|
|
|
33
33
|
var VECTOR_SURFACE_PHASES = { down: 0, move: 1, up: 2, cancel: 3 }, VECTOR_SURFACE_PLAYS = { machine: 0, animation: 1, stop: 2 }, VECTOR_SURFACE_SEEKS = { machine: 0, animation: 1 }, VECTOR_SURFACE_DATA_KINDS = { number: 0, bool: 1, color: 2, id: 3, fire: 4 }, VECTOR_SURFACE_EVENT_BYTES = 32, VECTOR_SURFACE_EVENT_KIND = 14, VECTOR_SURFACE_STATS_WORDS = 8, VECTOR_SURFACE_RAY_WORDS = 7, EVENT_KIND_OFFSET = 0, EVENT_NODE_OFFSET = 4, EVENT_VALUE_OFFSET = 24, STAT_CAP = 0, STAT_LIVE = 1, STAT_ENCODED = 2, STAT_UNCHANGED = 3, STAT_OFFSCREEN = 4, STAT_OCCLUDED = 5, STAT_OVER_CAP = 6, STAT_DROPPED = 7, NO_NODE = 0, NO_SURFACE = 0, CONSUMED = 1, MICROS_PER_SECOND = 1e6, RAY_FAR = 6, UTF8 = new TextEncoder();
|
|
34
34
|
function failure(code, what) {
|
|
35
35
|
switch (code) {
|
|
36
|
-
case
|
|
36
|
+
case chunk2O2CG465_js.ERROR_CAPACITY_EXCEEDED:
|
|
37
37
|
return new chunk2V7IL4HC_js.GameError("capacity_exceeded", `${what}: capacity exceeded`);
|
|
38
|
-
case
|
|
39
|
-
case
|
|
38
|
+
case chunk2O2CG465_js.ERROR_DEAD_ENTITY:
|
|
39
|
+
case chunk2O2CG465_js.ERROR_UNKNOWN_RESOURCE:
|
|
40
40
|
return new chunk2V7IL4HC_js.GameError("unknown_resource", `${what}: unknown resource`);
|
|
41
|
-
case
|
|
41
|
+
case chunk2O2CG465_js.ERROR_UNSUPPORTED:
|
|
42
42
|
return new chunk2V7IL4HC_js.GameError("unsupported_feature", `${what}: unsupported`);
|
|
43
43
|
default:
|
|
44
44
|
return new chunk2V7IL4HC_js.GameError("invalid_argument", `${what}: invalid argument`);
|
|
@@ -58,7 +58,7 @@ var EngineVectorSurfaces = class {
|
|
|
58
58
|
this.rayBytes = new Uint8Array(this.ray.buffer);
|
|
59
59
|
}
|
|
60
60
|
get cap() {
|
|
61
|
-
return
|
|
61
|
+
return chunk7AAIAVAA_js.VECTOR_SURFACE_CAPS[this.tier];
|
|
62
62
|
}
|
|
63
63
|
get handle() {
|
|
64
64
|
return this.host.handle;
|
|
@@ -145,7 +145,7 @@ var EngineVectorSurfaces = class {
|
|
|
145
145
|
out.cap = words[(0)], out.live = words[(1)], out.encoded = words[(2)], out.unchanged = words[(3)], out.offscreen = words[(4)], out.occluded = words[(5)], out.overCap = words[(6)], out.droppedEvents = words[(7)];
|
|
146
146
|
}
|
|
147
147
|
setTier(tier) {
|
|
148
|
-
checked(this.exports.engine_render_vector_surface_tier(this.handle,
|
|
148
|
+
checked(this.exports.engine_render_vector_surface_tier(this.handle, chunk7AAIAVAA_js.VECTOR_SURFACE_TIERS[tier]), "vector surface tier"), this.tier = tier;
|
|
149
149
|
}
|
|
150
150
|
frame(seconds) {
|
|
151
151
|
this.surfaces !== 0 && checked(this.exports.engine_render_vector_frame(this.handle, Math.round(seconds * (1e6))), "vector surface frame");
|
|
@@ -200,13 +200,13 @@ var EngineMemory = class {
|
|
|
200
200
|
return array.buffer === this.runtime.memory.buffer;
|
|
201
201
|
}
|
|
202
202
|
allocate(scalar, length) {
|
|
203
|
-
let bytes = Math.max(length * SCALAR_BYTES[scalar],
|
|
203
|
+
let bytes = Math.max(length * SCALAR_BYTES[scalar], chunk2O2CG465_js.COLUMN_ALIGN), pointer = this.runtime.exports.engine_alloc(bytes, chunk2O2CG465_js.COLUMN_ALIGN);
|
|
204
204
|
if (pointer === (0)) throw new chunk2V7IL4HC_js.GameError("capacity_exceeded", `engine memory cannot hold ${bytes} more bytes${arenaDetail(this.runtime.symbols)}`);
|
|
205
205
|
return this.pointers.push(pointer), this.sizes.push(bytes), view(this.runtime.memory.buffer, scalar, pointer, length);
|
|
206
206
|
}
|
|
207
207
|
release() {
|
|
208
208
|
for (let i = 0; i < this.pointers.length; i++)
|
|
209
|
-
this.runtime.exports.engine_free(this.pointers[i], this.sizes[i],
|
|
209
|
+
this.runtime.exports.engine_free(this.pointers[i], this.sizes[i], chunk2O2CG465_js.COLUMN_ALIGN);
|
|
210
210
|
this.pointers.length = 0, this.sizes.length = 0;
|
|
211
211
|
}
|
|
212
212
|
};
|
|
@@ -479,7 +479,7 @@ var MUSIC_EXPORTS = [
|
|
|
479
479
|
"engine_audio_music_stinger",
|
|
480
480
|
"engine_audio_music_stop",
|
|
481
481
|
"engine_audio_music_position"
|
|
482
|
-
], WORD_BYTES = 4, DOUBLE_WORD_BYTES = 8, MUSIC_POSITION_OFFSET = 2 *
|
|
482
|
+
], WORD_BYTES = 4, DOUBLE_WORD_BYTES = 8, MUSIC_POSITION_OFFSET = 2 * chunkX5A5FOWW_js.MAX_STEMS * (4), MUSIC_OCCLUSION_OFFSET = MUSIC_POSITION_OFFSET + chunkX5A5FOWW_js.MUSIC_POSITION_WORDS * (8), MUSIC_STAGING_BYTES = MUSIC_OCCLUSION_OFFSET + chunkX5A5FOWW_js.OCCLUSION_WORDS * (4), ENGINE_SAMPLE_RATE = 48e3, ENGINE_AUDIO_EXPORT_NAMES = [
|
|
483
483
|
"engine_audio_bound",
|
|
484
484
|
"engine_audio_load_pcm",
|
|
485
485
|
"engine_audio_load_wav",
|
|
@@ -601,10 +601,10 @@ var NO_HANDLE = 0, NO_VOICE = -1, SILENT = -1, MASTER_BUS = 0, MASTER_PARENT = -
|
|
|
601
601
|
this.musicStaging === 0 && (this.musicStaging = this.host.allocate(MUSIC_STAGING_BYTES));
|
|
602
602
|
let buffer = this.host.memory.buffer, base = this.musicStaging;
|
|
603
603
|
return {
|
|
604
|
-
sounds: new Int32Array(buffer, base,
|
|
605
|
-
gains: new Float32Array(buffer, base +
|
|
606
|
-
position: new Float64Array(buffer, base + MUSIC_POSITION_OFFSET,
|
|
607
|
-
occlusion: new Float32Array(buffer, base + MUSIC_OCCLUSION_OFFSET,
|
|
604
|
+
sounds: new Int32Array(buffer, base, chunkX5A5FOWW_js.MAX_STEMS),
|
|
605
|
+
gains: new Float32Array(buffer, base + chunkX5A5FOWW_js.MAX_STEMS * (4), chunkX5A5FOWW_js.MAX_STEMS),
|
|
606
|
+
position: new Float64Array(buffer, base + MUSIC_POSITION_OFFSET, chunkX5A5FOWW_js.MUSIC_POSITION_WORDS),
|
|
607
|
+
occlusion: new Float32Array(buffer, base + MUSIC_OCCLUSION_OFFSET, chunkX5A5FOWW_js.OCCLUSION_WORDS)
|
|
608
608
|
};
|
|
609
609
|
}
|
|
610
610
|
nowFrame() {
|
|
@@ -619,7 +619,7 @@ var NO_HANDLE = 0, NO_VOICE = -1, SILENT = -1, MASTER_BUS = 0, MASTER_PARENT = -
|
|
|
619
619
|
if (!playAt) throw unsupported("sample-accurate scheduling");
|
|
620
620
|
let sound = this.refined.get(previewed) ?? previewed;
|
|
621
621
|
if (sound === (-1)) return (-1);
|
|
622
|
-
let flags = (loop ? (1) : 0) | (spatial ? (2) : 0) | (priority &
|
|
622
|
+
let flags = (loop ? (1) : 0) | (spatial ? (2) : 0) | (priority & chunkX5A5FOWW_js.PRIORITY_MASK) << chunkX5A5FOWW_js.PLAY_PRIORITY_SHIFT, voice = playAt(this.handle, sound, bus, gain, rate, flags, frame);
|
|
623
623
|
return voice < 0 ? (-1) : voice;
|
|
624
624
|
}
|
|
625
625
|
stopOn(voice, frame, fadeSeconds) {
|
|
@@ -639,7 +639,7 @@ var NO_HANDLE = 0, NO_VOICE = -1, SILENT = -1, MASTER_BUS = 0, MASTER_PARENT = -
|
|
|
639
639
|
return;
|
|
640
640
|
}
|
|
641
641
|
let view2 = this.musicView().occlusion;
|
|
642
|
-
view2.set(params.subarray(0,
|
|
642
|
+
view2.set(params.subarray(0, chunkX5A5FOWW_js.OCCLUSION_WORDS)), set(this.handle, voice, view2.byteOffset);
|
|
643
643
|
}
|
|
644
644
|
musicTempo(bpm, beatsPerBar, quantize) {
|
|
645
645
|
return this.host.exports.engine_audio_music_tempo?.(this.handle, bpm, beatsPerBar, quantize) ?? -1;
|
|
@@ -650,7 +650,7 @@ var NO_HANDLE = 0, NO_VOICE = -1, SILENT = -1, MASTER_BUS = 0, MASTER_PARENT = -
|
|
|
650
650
|
let view2 = this.musicView();
|
|
651
651
|
for (let i = 0; i < sounds.length; i++) view2.sounds[i] = this.refined.get(sounds[i]) ?? sounds[i];
|
|
652
652
|
view2.gains.set(gains);
|
|
653
|
-
let phrase = bars | quantize <<
|
|
653
|
+
let phrase = bars | quantize << chunkX5A5FOWW_js.PHRASE_QUANTIZE_SHIFT;
|
|
654
654
|
return play(this.handle, view2.sounds.byteOffset, view2.gains.byteOffset, sounds.length, phrase, bus, fadeSeconds);
|
|
655
655
|
}
|
|
656
656
|
musicLayer(layer, gain, rampSeconds) {
|
|
@@ -700,21 +700,21 @@ var NO_HANDLE = 0, NO_VOICE = -1, SILENT = -1, MASTER_BUS = 0, MASTER_PARENT = -
|
|
|
700
700
|
if (!create) throw unsupported("emitter tables");
|
|
701
701
|
let pointer = 0;
|
|
702
702
|
if (params !== null) {
|
|
703
|
-
for (let i = 0; i <
|
|
703
|
+
for (let i = 0; i < chunkX5A5FOWW_js.SPATIAL_WORDS; i++) this.listener[i] = params[i];
|
|
704
704
|
pointer = this.listener.byteOffset;
|
|
705
705
|
}
|
|
706
706
|
return create(this.handle, sound, bus, capacity, pointer);
|
|
707
707
|
}
|
|
708
708
|
feedEmitters(bank, table, columns) {
|
|
709
709
|
let feed = this.host.exports.engine_audio_feed_emitters;
|
|
710
|
-
return feed ? (this.emitterColumns === 0 && (this.emitterColumns = this.host.allocate(
|
|
710
|
+
return feed ? (this.emitterColumns === 0 && (this.emitterColumns = this.host.allocate(chunkX5A5FOWW_js.EMITTER_COLUMNS * (4))), new Uint32Array(this.host.memory.buffer, this.emitterColumns, chunkX5A5FOWW_js.EMITTER_COLUMNS).set(columns), feed(this.handle, bank, table, this.emitterColumns)) : 0;
|
|
711
711
|
}
|
|
712
712
|
releaseEmitters(bank) {
|
|
713
713
|
this.host.exports.engine_audio_release_emitters?.(this.handle, bank);
|
|
714
714
|
}
|
|
715
715
|
meter(bus, out) {
|
|
716
716
|
let pointer = this.listener.byteOffset;
|
|
717
|
-
this.host.exports.engine_audio_meter(this.handle, bus, pointer), out[
|
|
717
|
+
this.host.exports.engine_audio_meter(this.handle, bus, pointer), out[chunkX5A5FOWW_js.METER_PEAK] = this.listener[0], out[chunkX5A5FOWW_js.METER_RMS] = this.listener[1];
|
|
718
718
|
}
|
|
719
719
|
get capabilities() {
|
|
720
720
|
return this.caps;
|
|
@@ -732,11 +732,11 @@ var NO_HANDLE = 0, NO_VOICE = -1, SILENT = -1, MASTER_BUS = 0, MASTER_PARENT = -
|
|
|
732
732
|
voice !== (-1) && this.host.exports.engine_audio_set_voice_gain(this.handle, voice, gain, rampSeconds);
|
|
733
733
|
}
|
|
734
734
|
setVoiceRate(voice, rate, detuneCents) {
|
|
735
|
-
voice !== (-1) && this.host.exports.engine_audio_set_voice_rate(this.handle, voice,
|
|
735
|
+
voice !== (-1) && this.host.exports.engine_audio_set_voice_rate(this.handle, voice, chunkX5A5FOWW_js.detuneRate(rate, detuneCents));
|
|
736
736
|
}
|
|
737
737
|
setVoiceSpatial(voice, params) {
|
|
738
738
|
if (voice !== (-1)) {
|
|
739
|
-
for (let i = 0; i <
|
|
739
|
+
for (let i = 0; i < chunkX5A5FOWW_js.SPATIAL_WORDS; i++) this.listener[i] = params[i];
|
|
740
740
|
this.host.exports.engine_audio_set_voice_spatial(this.handle, voice, this.listener.byteOffset);
|
|
741
741
|
}
|
|
742
742
|
}
|
|
@@ -751,13 +751,13 @@ var NO_HANDLE = 0, NO_VOICE = -1, SILENT = -1, MASTER_BUS = 0, MASTER_PARENT = -
|
|
|
751
751
|
createAnalyser(bus, settings) {
|
|
752
752
|
if (!this.host.exports.engine_audio_capture) throw unsupported("the analyser");
|
|
753
753
|
let bytes = settings.fftSize * (4);
|
|
754
|
-
return bytes > this.captureBytes && (this.capture !== 0 && this.host.release(this.capture, this.captureBytes), this.capture = this.host.allocate(bytes), this.captureBytes = bytes), this.analysers.push(new
|
|
754
|
+
return bytes > this.captureBytes && (this.capture !== 0 && this.host.release(this.capture, this.captureBytes), this.capture = this.host.allocate(bytes), this.captureBytes = bytes), this.analysers.push(new chunk7AAIAVAA_js.FftAnalyser(settings)), this.analyserBus.push(bus), this.analysers.length - 1;
|
|
755
755
|
}
|
|
756
756
|
readAnalyser(analyser, mode, out) {
|
|
757
757
|
let capture = this.host.exports.engine_audio_capture, found = this.analysers[analyser];
|
|
758
758
|
if (!capture || !found) throw new chunk2V7IL4HC_js.GameError("unknown_resource", `analyser ${analyser} does not exist`);
|
|
759
759
|
let frames = capture(this.handle, this.analyserBus[analyser], this.capture, found.fftSize);
|
|
760
|
-
frames > 0 && found.push(this.captureView(), 0, Math.min(frames, found.fftSize)), mode ===
|
|
760
|
+
frames > 0 && found.push(this.captureView(), 0, Math.min(frames, found.fftSize)), mode === chunkX5A5FOWW_js.ANALYSER_FREQUENCY ? found.frequency(out) : found.timeDomain(out);
|
|
761
761
|
}
|
|
762
762
|
captureView() {
|
|
763
763
|
let buffer = this.host.memory.buffer, view2 = this.captureFloats;
|
|
@@ -892,8 +892,8 @@ var NO_HANDLE = 0, NO_VOICE = -1, SILENT = -1, MASTER_BUS = 0, MASTER_PARENT = -
|
|
|
892
892
|
}
|
|
893
893
|
async decode(source) {
|
|
894
894
|
let assets = this.host.assets;
|
|
895
|
-
if ("url" in source && assets?.has?.(source.url +
|
|
896
|
-
let preview = await this.decodeBytes(await assets.take(source.url +
|
|
895
|
+
if ("url" in source && assets?.has?.(source.url + chunkX5A5FOWW_js.AUDIO_PREVIEW_SUFFIX) === true) {
|
|
896
|
+
let preview = await this.decodeBytes(await assets.take(source.url + chunkX5A5FOWW_js.AUDIO_PREVIEW_SUFFIX));
|
|
897
897
|
return this.refine(preview, assets, source.url), preview;
|
|
898
898
|
}
|
|
899
899
|
return this.decodeBytes(await this.bytes(source));
|
|
@@ -953,10 +953,10 @@ var NO_HANDLE = 0, NO_VOICE = -1, SILENT = -1, MASTER_BUS = 0, MASTER_PARENT = -
|
|
|
953
953
|
setBusGain(bus, gain, rampSeconds) {
|
|
954
954
|
this.host.exports.engine_audio_set_bus_gain(this.handle, bus, gain, rampSeconds);
|
|
955
955
|
}
|
|
956
|
-
play(previewed, bus, gain, rate, loop, spatial, priority =
|
|
956
|
+
play(previewed, bus, gain, rate, loop, spatial, priority = chunkX5A5FOWW_js.DEFAULT_PRIORITY) {
|
|
957
957
|
let sound = this.refined.get(previewed) ?? previewed;
|
|
958
958
|
if (sound === (-1)) return (-1);
|
|
959
|
-
let flags = (loop ? (1) : 0) | (spatial ? (2) : 0) | (priority &
|
|
959
|
+
let flags = (loop ? (1) : 0) | (spatial ? (2) : 0) | (priority & chunkX5A5FOWW_js.PRIORITY_MASK) << chunkX5A5FOWW_js.PLAY_PRIORITY_SHIFT, voice = this.host.exports.engine_audio_play(this.handle, sound, bus, gain, rate, flags);
|
|
960
960
|
return voice < 0 ? (-1) : voice;
|
|
961
961
|
}
|
|
962
962
|
stop(voice, fadeSeconds) {
|
|
@@ -990,7 +990,7 @@ var NO_HANDLE = 0, NO_VOICE = -1, SILENT = -1, MASTER_BUS = 0, MASTER_PARENT = -
|
|
|
990
990
|
this.host.exports.engine_audio_resume(this.handle), this.host.relay?.resume?.(), this.host.relay?.pump();
|
|
991
991
|
}
|
|
992
992
|
dispose() {
|
|
993
|
-
this.host.exports.engine_audio_reset(this.handle), this.host.release(this.staging, this.stagingBytes), this.capture !== 0 && this.host.release(this.capture, this.captureBytes), this.streamPointer !== 0 && this.host.release(this.streamPointer, this.streamBytes), this.emitterColumns !== 0 && this.host.release(this.emitterColumns,
|
|
993
|
+
this.host.exports.engine_audio_reset(this.handle), this.host.release(this.staging, this.stagingBytes), this.capture !== 0 && this.host.release(this.capture, this.captureBytes), this.streamPointer !== 0 && this.host.release(this.streamPointer, this.streamBytes), this.emitterColumns !== 0 && this.host.release(this.emitterColumns, chunkX5A5FOWW_js.EMITTER_COLUMNS * (4)), this.musicStaging !== 0 && this.host.release(this.musicStaging, MUSIC_STAGING_BYTES), this.musicStaging = 0, this.emitterColumns = 0, this.capture = 0, this.captureBytes = 0, this.streamPointer = 0, this.streamBytes = 0, this.streams.clear(), this.streamList.length = 0;
|
|
994
994
|
}
|
|
995
995
|
};
|
|
996
996
|
function unsupported(feature) {
|
|
@@ -1078,10 +1078,10 @@ var EngineRagdoll = class {
|
|
|
1078
1078
|
}
|
|
1079
1079
|
setDrive(joint, axis, drive) {
|
|
1080
1080
|
let world = this.world(), floats = this.session.registerFloats;
|
|
1081
|
-
floats[(0)] = drive.targetPosition ?? 0, floats[(1)] = drive.targetVelocity ?? 0, floats[(2)] = drive.stiffness, floats[(3)] = drive.damping, floats[(4)] = drive.maxForce ?? UNLIMITED, this.session.check(this.exports.engine_joint_drive(world, joint,
|
|
1081
|
+
floats[(0)] = drive.targetPosition ?? 0, floats[(1)] = drive.targetVelocity ?? 0, floats[(2)] = drive.stiffness, floats[(3)] = drive.damping, floats[(4)] = drive.maxForce ?? UNLIMITED, this.session.check(this.exports.engine_joint_drive(world, joint, chunkSKQFLBDD_js.JOINT_AXES[axis]), "joint drive");
|
|
1082
1082
|
}
|
|
1083
1083
|
clearDrive(joint, axis) {
|
|
1084
|
-
this.session.check(this.exports.engine_joint_drive_clear(this.world(), joint,
|
|
1084
|
+
this.session.check(this.exports.engine_joint_drive_clear(this.world(), joint, chunkSKQFLBDD_js.JOINT_AXES[axis]), "clear joint drive");
|
|
1085
1085
|
}
|
|
1086
1086
|
setTarget(joint, rotation, drive) {
|
|
1087
1087
|
let world = this.world(), floats = this.session.registerFloats;
|
|
@@ -1114,26 +1114,26 @@ var EngineRagdoll = class {
|
|
|
1114
1114
|
}
|
|
1115
1115
|
createRagdoll(desc) {
|
|
1116
1116
|
let joints = desc.parents.length;
|
|
1117
|
-
if (desc.pose.length < joints *
|
|
1118
|
-
let bones = desc.bones.length, words = (16) + joints + joints *
|
|
1117
|
+
if (desc.pose.length < joints * chunkSKQFLBDD_js.POSE_STRIDE) throw new chunk2V7IL4HC_js.GameError("invalid_argument", `a ragdoll pose needs ${chunkSKQFLBDD_js.POSE_STRIDE} floats per joint`);
|
|
1118
|
+
let bones = desc.bones.length, words = (16) + joints + joints * chunkSKQFLBDD_js.POSE_STRIDE + bones * (11), s = this.session, scratch = s.memory.allocate("u32", words), floats = new Float32Array(scratch.buffer, scratch.byteOffset, words);
|
|
1119
1119
|
scratch[(0)] = bones, scratch[(1)] = joints, writeRoot(floats, (2), desc.root ?? {}), floats[(12)] = desc.linearDamping ?? 0, floats[(13)] = desc.angularDamping ?? 0, floats[(14)] = desc.friction ?? Number.NaN;
|
|
1120
1120
|
let entities = desc.bones.some((bone) => bone.entity !== void 0);
|
|
1121
1121
|
scratch[(15)] = entities ? (1) : 0;
|
|
1122
1122
|
for (let j = 0; j < joints; j++) {
|
|
1123
1123
|
let parent = desc.parents[j];
|
|
1124
|
-
scratch[(16) + j] = parent ===
|
|
1124
|
+
scratch[(16) + j] = parent === chunkSKQFLBDD_js.NO_PARENT ? (4294967295) : parent;
|
|
1125
1125
|
}
|
|
1126
1126
|
let poseAt = (16) + joints;
|
|
1127
|
-
floats.set(desc.pose.subarray(0, joints *
|
|
1128
|
-
let bonesAt = poseAt + joints *
|
|
1127
|
+
floats.set(desc.pose.subarray(0, joints * chunkSKQFLBDD_js.POSE_STRIDE), poseAt);
|
|
1128
|
+
let bonesAt = poseAt + joints * chunkSKQFLBDD_js.POSE_STRIDE;
|
|
1129
1129
|
for (let b = 0; b < bones; b++) {
|
|
1130
1130
|
let bone = desc.bones[b], at = bonesAt + b * (11), axis = bone.axis ?? DEFAULT_AXIS, twist = bone.twist ?? DEFAULT_TWIST;
|
|
1131
1131
|
scratch[at + (0)] = bone.joint;
|
|
1132
1132
|
for (let k = 0; k < (3); k++) floats[at + (1) + k] = axis[k];
|
|
1133
1133
|
floats[at + (4)] = bone.length, floats[at + (5)] = bone.radius, floats[at + (6)] = bone.density ?? (1e3), floats[at + (7)] = bone.swing ?? DEFAULT_SWING, floats[at + (8)] = twist[0], floats[at + (8) + 1] = twist[1], scratch[at + (10)] = bone.entity ?? (4294967295);
|
|
1134
1134
|
}
|
|
1135
|
-
let world = this.world(), id = s.check(this.exports.engine_ragdoll_create(world, scratch.byteOffset, words), "create ragdoll"), pose = s.memory.allocate("f32", joints *
|
|
1136
|
-
return pose.set(desc.pose.subarray(0, joints *
|
|
1135
|
+
let world = this.world(), id = s.check(this.exports.engine_ragdoll_create(world, scratch.byteOffset, words), "create ragdoll"), pose = s.memory.allocate("f32", joints * chunkSKQFLBDD_js.POSE_STRIDE);
|
|
1136
|
+
return pose.set(desc.pose.subarray(0, joints * chunkSKQFLBDD_js.POSE_STRIDE)), new EngineRagdoll(s, this.exports, id, pose, bones);
|
|
1137
1137
|
}
|
|
1138
1138
|
};
|
|
1139
1139
|
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
'use strict';
|
|
2
2
|
|
|
3
|
-
var
|
|
3
|
+
var chunk7KFTYENS_js = require('./chunk-7KFTYENS.js');
|
|
4
4
|
var chunkYXGZQPUD_js = require('./chunk-YXGZQPUD.js');
|
|
5
5
|
|
|
6
6
|
// src/game/kit/templates/template.ts
|
|
@@ -9,7 +9,7 @@ function templateFrameStamp(frame) {
|
|
|
9
9
|
return frame * (50) / (3) | 0;
|
|
10
10
|
}
|
|
11
11
|
async function createTemplateHarness(template, backend, seed, ui = null) {
|
|
12
|
-
let game = await
|
|
12
|
+
let game = await chunk7KFTYENS_js.createGame({ backend, seed, ui }), scene = template.scene();
|
|
13
13
|
game.addScene(scene), game.start(scene.name);
|
|
14
14
|
let bot = template.bot();
|
|
15
15
|
return {
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { MessageTag } from './chunk-
|
|
1
|
+
import { MessageTag } from './chunk-V7ZRH3PY.mjs';
|
|
2
2
|
|
|
3
3
|
// src/interactives/runtime/studio.ts
|
|
4
4
|
var STUDIO_GRANT_TOPIC = "studio.grant", STUDIO_FRAME_HEADER_BYTES = 9, STUDIO_PART_BYTES = 1 << 20, STUDIO_MESSAGE_MAX_BYTES = 16 << 20, STUDIO_MAX_PARTS = STUDIO_MESSAGE_MAX_BYTES / STUDIO_PART_BYTES, STUDIO_MAX_TOPIC_BYTES = 64, STUDIO_HELD_MESSAGES = 8, SEQ_OFFSET = 1, INDEX_OFFSET = 5, COUNT_OFFSET = 7, TOPIC_LENGTH_BYTES = 1, JSON_LENGTH_BYTES = 4, PAYLOAD_HEAD_BYTES = (1) + (4), NULL_JSON = "null", STUDIO_CHANNEL_KEY = "__cimplify_studio", encoder = new TextEncoder(), decoder = new TextDecoder(), StudioFrameError = class extends Error {
|
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
'use strict';
|
|
2
2
|
|
|
3
|
-
var
|
|
3
|
+
var chunk2AQ237Y4_js = require('./chunk-2AQ237Y4.js');
|
|
4
4
|
var chunkWHYKAT7G_js = require('./chunk-WHYKAT7G.js');
|
|
5
|
-
var
|
|
6
|
-
var
|
|
5
|
+
var chunkH5DFSCJ6_js = require('./chunk-H5DFSCJ6.js');
|
|
6
|
+
var chunk52YS45RR_js = require('./chunk-52YS45RR.js');
|
|
7
7
|
var chunk3O47ZFW3_js = require('./chunk-3O47ZFW3.js');
|
|
8
|
-
var
|
|
9
|
-
var
|
|
8
|
+
var chunk7KFTYENS_js = require('./chunk-7KFTYENS.js');
|
|
9
|
+
var chunk5LH2QN3T_js = require('./chunk-5LH2QN3T.js');
|
|
10
10
|
var chunkYXGZQPUD_js = require('./chunk-YXGZQPUD.js');
|
|
11
11
|
var chunkJGBCIKJV_js = require('./chunk-JGBCIKJV.js');
|
|
12
12
|
|
|
@@ -109,7 +109,7 @@ var BuildersPlaza = class {
|
|
|
109
109
|
this.placeOps = new Uint32Array((16));
|
|
110
110
|
this.placeHead = 0;
|
|
111
111
|
this.boxes = null;
|
|
112
|
-
this.actions = new Int32Array((16)).fill(
|
|
112
|
+
this.actions = new Int32Array((16)).fill(chunk7KFTYENS_js.NO_UI_ACTION);
|
|
113
113
|
this.transform = new Float64Array(chunk3O47ZFW3_js.TRANSFORM_WORDS);
|
|
114
114
|
this.rotation = new Float64Array(4);
|
|
115
115
|
this.nearest = new Uint32Array(1);
|
|
@@ -128,7 +128,7 @@ var BuildersPlaza = class {
|
|
|
128
128
|
let lighting = this.mirror.settings.lighting, sun = game.world.spawn();
|
|
129
129
|
game.transforms.add(sun, (3), (10), (4)), game.graphics.create(sun, { kind: "light", light: "directional", intensity: SUN_INTENSITY[lighting] ?? SUN_INTENSITY[chunk3O47ZFW3_js.Lighting.Day] });
|
|
130
130
|
let sky = game.world.spawn();
|
|
131
|
-
game.transforms.add(sky), game.graphics.create(sky, { kind: "light", light: "hemisphere", intensity: SKY_INTENSITY[lighting] ?? SKY_INTENSITY[chunk3O47ZFW3_js.Lighting.Day] }), this.rig =
|
|
131
|
+
game.transforms.add(sky), game.graphics.create(sky, { kind: "light", light: "hemisphere", intensity: SKY_INTENSITY[lighting] ?? SKY_INTENSITY[chunk3O47ZFW3_js.Lighting.Day] }), this.rig = chunk2AQ237Y4_js.thirdPersonCharacter(game, { position: [0, 0, 0], register: false }), this.boxes = new chunkWHYKAT7G_js.BoxBatch(game, (512));
|
|
132
132
|
for (let i = 0; i < (16); i++) this.actions[i] = game.ui.defineAction(ACTION_NAMES[i]);
|
|
133
133
|
this.objectsSlot = game.ui.hudNumber("objects"), this.modeSlot = game.ui.hudText("mode", MODE_WALK);
|
|
134
134
|
}
|
|
@@ -137,7 +137,7 @@ var BuildersPlaza = class {
|
|
|
137
137
|
if (rig !== null) {
|
|
138
138
|
for (rig.fixedUpdate(game); ; ) {
|
|
139
139
|
let id = game.ui.pollAction();
|
|
140
|
-
if (id ===
|
|
140
|
+
if (id === chunk7KFTYENS_js.NO_UI_ACTION) break;
|
|
141
141
|
this.handle(game, rig, id);
|
|
142
142
|
}
|
|
143
143
|
this.observeResults();
|
|
@@ -169,7 +169,7 @@ var BuildersPlaza = class {
|
|
|
169
169
|
}
|
|
170
170
|
}
|
|
171
171
|
target(game, rig) {
|
|
172
|
-
let p = game.transforms.store.fields.position, o = game.transforms.row(rig.entity) * 3, yaw = rig.camera.state[
|
|
172
|
+
let p = game.transforms.store.fields.position, o = game.transforms.row(rig.entity) * 3, yaw = rig.camera.state[chunk52YS45RR_js.FOLLOW_YAW], t = chunk3O47ZFW3_js.identityTransform(this.transform);
|
|
173
173
|
t[chunk3O47ZFW3_js.POSITION] = millimetres(p[o] - Math.sin(yaw) * WORLDS.reach), t[chunk3O47ZFW3_js.POSITION + 1] = 0, t[chunk3O47ZFW3_js.POSITION + 2] = millimetres(p[o + 2] - Math.cos(yaw) * WORLDS.reach);
|
|
174
174
|
}
|
|
175
175
|
nearestObject(game, rig, skipSelected) {
|
|
@@ -182,7 +182,7 @@ var BuildersPlaza = class {
|
|
|
182
182
|
return best;
|
|
183
183
|
}
|
|
184
184
|
handle(game, rig, id) {
|
|
185
|
-
let builder = this.builder, yaw = rig.camera.state[
|
|
185
|
+
let builder = this.builder, yaw = rig.camera.state[chunk52YS45RR_js.FOLLOW_YAW], forwardX = -Math.sin(yaw), forwardZ = -Math.cos(yaw), identity = this.rotation;
|
|
186
186
|
if (identity[0] = 0, identity[1] = 0, identity[2] = 0, identity[3] = 32767, id === this.actions[(0)]) {
|
|
187
187
|
this.buildMode = !this.buildMode;
|
|
188
188
|
return;
|
|
@@ -219,7 +219,7 @@ var BuildersPlaza = class {
|
|
|
219
219
|
let p = game.transforms.store.fields.position, o = game.transforms.row(rig.entity) * 3, dx = p[o] - this.lastX, dz = p[o + 2] - this.lastZ;
|
|
220
220
|
this.lastX = p[o], this.lastZ = p[o + 2];
|
|
221
221
|
let length = Math.sqrt(dx * dx + dz * dz), ax = length > 0 ? dx / length : 0, az = length > 0 ? dz / length : 0;
|
|
222
|
-
client.setInput(ax, az, rig.camera.state[
|
|
222
|
+
client.setInput(ax, az, rig.camera.state[chunk52YS45RR_js.FOLLOW_YAW], 0, now), client.update(now);
|
|
223
223
|
}
|
|
224
224
|
draw(game, player) {
|
|
225
225
|
let boxes = this.boxes;
|
|
@@ -254,11 +254,11 @@ var BuildersPlaza = class {
|
|
|
254
254
|
let rig = scene.rig;
|
|
255
255
|
if (rig === null) return;
|
|
256
256
|
let input = game.input;
|
|
257
|
-
this.slotX === (-1) && (this.slotX = input.virtualControl(
|
|
257
|
+
this.slotX === (-1) && (this.slotX = input.virtualControl(chunk2AQ237Y4_js.TOUCH_CONTROLS.moveX), this.slotY = input.virtualControl(chunk2AQ237Y4_js.TOUCH_CONTROLS.moveY), this.pickGoal(game)), frame > 0 && frame % (20) === 0 && (game.ui.dispatch(ACTION_NAMES[BOT_SCRIPT[this.step % BOT_SCRIPT.length]]), this.step++);
|
|
258
258
|
let p = game.transforms.store.fields.position, o = game.transforms.row(rig.entity) * 3, wx = this.goal[0] - p[o], wz = this.goal[1] - p[o + 2], length = Math.sqrt(wx * wx + wz * wz);
|
|
259
259
|
length > (0.6) ? (wx /= length, wz /= length) : (this.pickGoal(game), wx = 0, wz = 0);
|
|
260
|
-
let yaw = rig.camera.state[
|
|
261
|
-
stage[
|
|
260
|
+
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);
|
|
261
|
+
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);
|
|
262
262
|
}
|
|
263
263
|
pickGoal(game) {
|
|
264
264
|
game.random.rangeInto(this.goal, 0, -(9), (9)), game.random.rangeInto(this.goal, 1, -(9), (9));
|
|
@@ -277,7 +277,7 @@ var BuildersPlaza = class {
|
|
|
277
277
|
let p = game.transforms.store.fields.position, o = game.transforms.row(rig.entity) * 3;
|
|
278
278
|
d[4] = p[o], d[5] = p[o + 2];
|
|
279
279
|
}
|
|
280
|
-
return
|
|
280
|
+
return chunkH5DFSCJ6_js.digestFloats(d, (6));
|
|
281
281
|
}
|
|
282
282
|
};
|
|
283
283
|
async function joinBuildersPlaza(ctx, request) {
|
|
@@ -1,25 +1,20 @@
|
|
|
1
1
|
'use strict';
|
|
2
2
|
|
|
3
|
-
var
|
|
4
|
-
var chunkCQSA2D2O_js = require('./chunk-CQSA2D2O.js');
|
|
3
|
+
var chunkNZTKLY2W_js = require('./chunk-NZTKLY2W.js');
|
|
5
4
|
|
|
6
5
|
// src/game/conformance/engine-platform.ts
|
|
7
6
|
var FS_MODULE = "node:fs/promises";
|
|
8
7
|
async function load(file) {
|
|
9
|
-
let
|
|
8
|
+
let bytes = await (await import(
|
|
10
9
|
/* @vite-ignore */
|
|
11
10
|
FS_MODULE
|
|
12
|
-
)
|
|
13
|
-
return
|
|
11
|
+
)).readFile(file);
|
|
12
|
+
return chunkNZTKLY2W_js.enginePlatformOf(await chunkNZTKLY2W_js.loadEngineRuntime(bytes));
|
|
14
13
|
}
|
|
15
|
-
|
|
16
|
-
let runtime = await chunkFAYK2MN6_js.loadEngineRuntime(bytes, rest === null ? {} : { deferred: { rest: Promise.resolve(rest) } });
|
|
17
|
-
return await runtime.deferred?.linking, chunkFAYK2MN6_js.enginePlatformOf(runtime);
|
|
18
|
-
}
|
|
19
|
-
function bytesFramePlatform(bytes, rest = null) {
|
|
14
|
+
function bytesFramePlatform(bytes) {
|
|
20
15
|
let platform = null;
|
|
21
16
|
return {
|
|
22
|
-
engine: () => (platform ?? (platform =
|
|
17
|
+
engine: () => (platform ?? (platform = chunkNZTKLY2W_js.loadEngineRuntime(bytes).then(chunkNZTKLY2W_js.enginePlatformOf)), platform)
|
|
23
18
|
};
|
|
24
19
|
}
|
|
25
20
|
function engineFramePlatform(file) {
|
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
'use strict';
|
|
2
2
|
|
|
3
|
-
var
|
|
3
|
+
var chunkPQTQKNKD_js = require('./chunk-PQTQKNKD.js');
|
|
4
4
|
|
|
5
5
|
// src/game/kit/identity/fit.ts
|
|
6
6
|
var FIT_ITERATIONS = 12, LANDMARK_NOISE = 0.01, RIDGE = 1e-9, PLANE = 2;
|
|
7
7
|
function fittedTone(skin, stylise) {
|
|
8
|
-
let tone =
|
|
9
|
-
return stylise >= 1 ?
|
|
8
|
+
let tone = chunkPQTQKNKD_js.toneFromColour(skin);
|
|
9
|
+
return stylise >= 1 ? chunkPQTQKNKD_js.snapTone(tone) : tone;
|
|
10
10
|
}
|
|
11
11
|
var IdentityFitError = class extends Error {
|
|
12
12
|
constructor(message) {
|
|
@@ -48,9 +48,9 @@ var IdentityFitter = class {
|
|
|
48
48
|
this.base = base, this.anchors = base.anchors.names.length;
|
|
49
49
|
let k = base.components, cage = new Float64Array(base.basis.cage.length), unit = new Float32Array(k), at = new Float64Array(3), all = new Float64Array(this.anchors * k * 3);
|
|
50
50
|
for (let c = 0; c < k; c++) {
|
|
51
|
-
unit.fill(0), unit[c] = 1,
|
|
51
|
+
unit.fill(0), unit[c] = 1, chunkPQTQKNKD_js.cageDisplacement(base, unit, cage);
|
|
52
52
|
for (let l = 0; l < this.anchors; l++) {
|
|
53
|
-
|
|
53
|
+
chunkPQTQKNKD_js.blendCage(cage, base.anchors.cageIndex, base.anchors.cageWeight, l, at);
|
|
54
54
|
for (let a = 0; a < 3; a++) all[(l * k + c) * 3 + a] = at[a];
|
|
55
55
|
}
|
|
56
56
|
}
|
|
@@ -155,8 +155,8 @@ var IdentityFitter = class {
|
|
|
155
155
|
if (residual !== null)
|
|
156
156
|
for (let a = 0; a < 3; a++) residual[l * 3 + a] = (rows[a] * projected[0] + rows[3 + a] * projected[1]) / scale;
|
|
157
157
|
}
|
|
158
|
-
let stylise = options.stylise ?? 1, colours =
|
|
159
|
-
return { params:
|
|
158
|
+
let stylise = options.stylise ?? 1, colours = chunkPQTQKNKD_js.styliseColours(capture.colours, base.palettes, stylise), tone = options.continuousTone === true && capture.colours !== null ? fittedTone(capture.colours.skin, stylise) : null;
|
|
159
|
+
return { params: chunkPQTQKNKD_js.quantiseIdentity({
|
|
160
160
|
basis: base.id,
|
|
161
161
|
face: Float32Array.from(face),
|
|
162
162
|
body: Float32Array.from(body),
|
|
@@ -169,11 +169,11 @@ var IdentityFitter = class {
|
|
|
169
169
|
hairTip: colours.hair,
|
|
170
170
|
eye: colours.eye,
|
|
171
171
|
hairStyle: options.hairStyle ?? 0,
|
|
172
|
-
hairBlock:
|
|
172
|
+
hairBlock: chunkPQTQKNKD_js.NEUTRAL_HAIR,
|
|
173
173
|
brows: options.brows ?? 0,
|
|
174
174
|
facialHair: options.facialHair ?? 0,
|
|
175
175
|
stylise,
|
|
176
|
-
height:
|
|
176
|
+
height: chunkPQTQKNKD_js.NEUTRAL_LEVEL,
|
|
177
177
|
assistive: [],
|
|
178
178
|
fromPhoto: true,
|
|
179
179
|
residual
|
|
@@ -1,23 +1,8 @@
|
|
|
1
1
|
'use strict';
|
|
2
2
|
|
|
3
3
|
// src/interactives/engine-variants.ts
|
|
4
|
-
var GATED_ENGINE_FEATURES = ["physics", "models", "images"], TEXT_DICTIONARIES_ASSET = "runtime/text-dictionaries.bin", TEXT_DICTIONARIES_FILE = "text-dictionaries.bin",
|
|
5
|
-
|
|
6
|
-
return `${core}${ENGINE_REST_UNIT_SUFFIX}`;
|
|
7
|
-
}
|
|
8
|
-
function coreOfRest(unit) {
|
|
9
|
-
return unit.startsWith(ENGINE_CORE_UNIT_PREFIX) && unit.endsWith(ENGINE_REST_UNIT_SUFFIX) ? unit.slice(0, -ENGINE_REST_UNIT_SUFFIX.length) : null;
|
|
10
|
-
}
|
|
11
|
-
function restGroupOf(core, plain) {
|
|
12
|
-
return core === plain ? ENGINE_REST_GROUP : `${ENGINE_REST_GROUP}:${core.slice(core.lastIndexOf("/") + 1)}`;
|
|
13
|
-
}
|
|
14
|
-
function isEngineRestGroup(group) {
|
|
15
|
-
return group === ENGINE_REST_GROUP || (group?.startsWith(`${ENGINE_REST_GROUP}:`) ?? false);
|
|
16
|
-
}
|
|
17
|
-
function restFileOf(file) {
|
|
18
|
-
return file.replace(/\.wasm$/, ENGINE_REST_SUFFIX);
|
|
19
|
-
}
|
|
20
|
-
var ENGINE_CORE_GL_UNIT = "@cimplify/engine-core-gl", GL_CORE_GROUP = "gpu:webgl2", GL_CORE_PATH = "runtime/engine-core-gl.wasm", GL_SUFFIX = ".gl", WASM_EXTENSION = /\.wasm$/, BASE_ENGINE_VARIANT = { name: "base", features: [], file: "engine_wasm.base.wasm" }, PHYSICS_ENGINE_VARIANT = { name: "physics", features: ["physics"], file: "engine_wasm.physics.wasm" }, CONTENT_ENGINE_VARIANT = { name: "content", features: ["models", "images"], file: "engine_wasm.content.wasm" }, FULL_ENGINE_VARIANT = { name: "full", features: ["physics", "models", "images"], file: "engine_wasm.wasm" }, THREADED_ENGINE_VARIANT = { name: "threads", features: ["physics", "models", "images"], file: "engine_wasm.threads.wasm", threaded: true }, ENGINE_VARIANTS = [BASE_ENGINE_VARIANT, PHYSICS_ENGINE_VARIANT, CONTENT_ENGINE_VARIANT, FULL_ENGINE_VARIANT], THREADED_ENGINE_VARIANTS = [
|
|
4
|
+
var GATED_ENGINE_FEATURES = ["physics", "models", "images"], TEXT_DICTIONARIES_ASSET = "runtime/text-dictionaries.bin", TEXT_DICTIONARIES_FILE = "text-dictionaries.bin", ENGINE_CORE_GL_UNIT = "@cimplify/engine-core-gl", GL_CORE_GROUP = "gpu:webgl2", GL_CORE_PATH = "runtime/engine-core-gl.wasm";
|
|
5
|
+
var WASM_EXTENSION = /\.wasm$/, BASE_ENGINE_VARIANT = { name: "base", features: [], file: "engine_wasm.base.wasm" }, PHYSICS_ENGINE_VARIANT = { name: "physics", features: ["physics"], file: "engine_wasm.physics.wasm" }, CONTENT_ENGINE_VARIANT = { name: "content", features: ["models", "images"], file: "engine_wasm.content.wasm" }, FULL_ENGINE_VARIANT = { name: "full", features: ["physics", "models", "images"], file: "engine_wasm.wasm" }, THREADED_ENGINE_VARIANT = { name: "threads", features: ["physics", "models", "images"], file: "engine_wasm.threads.wasm", threaded: true }, ENGINE_VARIANTS = [BASE_ENGINE_VARIANT, PHYSICS_ENGINE_VARIANT, CONTENT_ENGINE_VARIANT, FULL_ENGINE_VARIANT], THREADED_ENGINE_VARIANTS = [
|
|
21
6
|
{ name: "threads-base", features: [], file: "engine_wasm.threads.base.wasm", threaded: true },
|
|
22
7
|
{ name: "threads-physics", features: ["physics"], file: "engine_wasm.threads.physics.wasm", threaded: true },
|
|
23
8
|
{ name: "threads-content", features: ["models", "images"], file: "engine_wasm.threads.content.wasm", threaded: true },
|
|
@@ -40,7 +25,7 @@ var ENGINE_CORE_GL_UNIT = "@cimplify/engine-core-gl", GL_CORE_GROUP = "gpu:webgl
|
|
|
40
25
|
SCRIPTS_SHADERS_ENGINE_VARIANT
|
|
41
26
|
];
|
|
42
27
|
function glOf(variant) {
|
|
43
|
-
return { ...variant, name: `${variant.name}-gl`, file: variant.file.replace(WASM_EXTENSION,
|
|
28
|
+
return { ...variant, name: `${variant.name}-gl`, file: variant.file.replace(WASM_EXTENSION, ".gl.wasm"), gl: true };
|
|
44
29
|
}
|
|
45
30
|
var GL_ENGINE_VARIANTS = [...ENGINE_VARIANTS, ...SCRIPTS_ENGINE_VARIANTS, ...SCRIPTS_SHADERS_ENGINE_VARIANTS].map(glOf);
|
|
46
31
|
function isGlVariant(variant) {
|
|
@@ -51,7 +36,7 @@ function glVariantOf(variant) {
|
|
|
51
36
|
}
|
|
52
37
|
function webGpuVariantOf(variant) {
|
|
53
38
|
if (!isGlVariant(variant)) return variant;
|
|
54
|
-
let file = variant.file.replace(
|
|
39
|
+
let file = variant.file.replace(".gl.wasm", ".wasm");
|
|
55
40
|
return [...ENGINE_VARIANTS, ...SCRIPTS_ENGINE_VARIANTS, ...SCRIPTS_SHADERS_ENGINE_VARIANTS].find((candidate) => candidate.file === file) ?? FULL_ENGINE_VARIANT;
|
|
56
41
|
}
|
|
57
42
|
function gated(feature) {
|
|
@@ -119,13 +104,7 @@ function isThreadedVariant(variant) {
|
|
|
119
104
|
exports.BASE_ENGINE_VARIANT = BASE_ENGINE_VARIANT;
|
|
120
105
|
exports.CONTENT_ENGINE_VARIANT = CONTENT_ENGINE_VARIANT;
|
|
121
106
|
exports.ENGINE_CORE_GL_UNIT = ENGINE_CORE_GL_UNIT;
|
|
122
|
-
exports.ENGINE_CORE_REST_UNIT = ENGINE_CORE_REST_UNIT;
|
|
123
|
-
exports.ENGINE_CORE_UNIT_PREFIX = ENGINE_CORE_UNIT_PREFIX;
|
|
124
107
|
exports.ENGINE_FEATURE_CARGO = ENGINE_FEATURE_CARGO;
|
|
125
|
-
exports.ENGINE_REST_GROUP = ENGINE_REST_GROUP;
|
|
126
|
-
exports.ENGINE_REST_PATH = ENGINE_REST_PATH;
|
|
127
|
-
exports.ENGINE_REST_SUFFIX = ENGINE_REST_SUFFIX;
|
|
128
|
-
exports.ENGINE_REST_UNIT_SUFFIX = ENGINE_REST_UNIT_SUFFIX;
|
|
129
108
|
exports.ENGINE_VARIANTS = ENGINE_VARIANTS;
|
|
130
109
|
exports.FULL_ENGINE_VARIANT = FULL_ENGINE_VARIANT;
|
|
131
110
|
exports.GATED_ENGINE_FEATURES = GATED_ENGINE_FEATURES;
|
|
@@ -137,22 +116,16 @@ exports.SCRIPTS_ENGINE_VARIANT = SCRIPTS_ENGINE_VARIANT;
|
|
|
137
116
|
exports.SCRIPTS_ENGINE_VARIANTS = SCRIPTS_ENGINE_VARIANTS;
|
|
138
117
|
exports.SCRIPTS_SHADERS_ENGINE_VARIANT = SCRIPTS_SHADERS_ENGINE_VARIANT;
|
|
139
118
|
exports.SCRIPTS_SHADERS_ENGINE_VARIANTS = SCRIPTS_SHADERS_ENGINE_VARIANTS;
|
|
140
|
-
exports.SPLIT_PROFILE_ENV = SPLIT_PROFILE_ENV;
|
|
141
119
|
exports.TEXT_DICTIONARIES_ASSET = TEXT_DICTIONARIES_ASSET;
|
|
142
120
|
exports.TEXT_DICTIONARIES_FILE = TEXT_DICTIONARIES_FILE;
|
|
143
121
|
exports.THREADED_ENGINE_VARIANT = THREADED_ENGINE_VARIANT;
|
|
144
122
|
exports.THREADED_ENGINE_VARIANTS = THREADED_ENGINE_VARIANTS;
|
|
145
|
-
exports.coreOfRest = coreOfRest;
|
|
146
123
|
exports.engineVariantFor = engineVariantFor;
|
|
147
124
|
exports.glVariantOf = glVariantOf;
|
|
148
|
-
exports.isEngineRestGroup = isEngineRestGroup;
|
|
149
125
|
exports.isGlVariant = isGlVariant;
|
|
150
126
|
exports.isScriptsVariant = isScriptsVariant;
|
|
151
127
|
exports.isShadersVariant = isShadersVariant;
|
|
152
128
|
exports.isThreadedVariant = isThreadedVariant;
|
|
153
|
-
exports.restFileOf = restFileOf;
|
|
154
|
-
exports.restGroupOf = restGroupOf;
|
|
155
|
-
exports.restUnitOf = restUnitOf;
|
|
156
129
|
exports.scriptsShadersVariantOf = scriptsShadersVariantOf;
|
|
157
130
|
exports.scriptsVariantOf = scriptsVariantOf;
|
|
158
131
|
exports.threadedVariantOf = threadedVariantOf;
|
|
@@ -1,7 +1,5 @@
|
|
|
1
1
|
'use strict';
|
|
2
2
|
|
|
3
|
-
var chunkUWPQL2IQ_js = require('./chunk-UWPQL2IQ.js');
|
|
4
|
-
|
|
5
3
|
// src/game/backends/engine/threads.ts
|
|
6
4
|
var STACK_POINTER_EXPORT = "__stack_pointer", INIT_TLS_EXPORT = "__wasm_init_tls", TLS_SIZE_EXPORT = "__tls_size", TLS_ALIGN_EXPORT = "__tls_align";
|
|
7
5
|
var WORKER_STACK_BYTES = 1 << 20, STACK_ALIGN = 16, MIN_LANES = 2, MAX_ENGINE_WORKERS = 15, RESERVED_CORES = 1, WORKER_START_TIMEOUT_MS = 5e3, POLL_MS = 1, MEMORY_MODULE = "env", MEMORY_FIELD = "memory", FUNCTION_KIND = "function", SHARED_MEMORY_PROBE = new Uint8Array([0, 97, 115, 109, 1, 0, 0, 0, 2, 9, 1, 1, 101, 1, 109, 2, 3, 1, 1]);
|
|
@@ -28,33 +26,8 @@ self.onmessage = (event) => {
|
|
|
28
26
|
imports[module] = imports[module] || {};
|
|
29
27
|
imports[module][name] = () => { throw new Error("engine lane " + boot.index + " called the host import " + module + "." + name); };
|
|
30
28
|
}
|
|
31
|
-
const lanes = boot.deferred;
|
|
32
|
-
let core = null;
|
|
33
|
-
let table = null;
|
|
34
|
-
const link = () => {
|
|
35
|
-
const deadline = Date.now() + ${chunkUWPQL2IQ_js.LANE_LINK_WAIT_MS};
|
|
36
|
-
while (Atomics.load(lanes.header, ${chunkUWPQL2IQ_js.LANE_STATE}) === 0) {
|
|
37
|
-
const left = deadline - Date.now();
|
|
38
|
-
if (left <= 0) throw new Error("engine lane " + boot.index + " reached deferred engine code before the rest of the engine arrived");
|
|
39
|
-
Atomics.wait(lanes.header, ${chunkUWPQL2IQ_js.LANE_STATE}, 0, left);
|
|
40
|
-
}
|
|
41
|
-
const rest = new WebAssembly.Module(new Uint8Array(lanes.bytes, 0, Atomics.load(lanes.header, ${chunkUWPQL2IQ_js.LANE_LENGTH})).slice());
|
|
42
|
-
new WebAssembly.Instance(rest, { ${JSON.stringify(chunkUWPQL2IQ_js.PRIMARY_NAMESPACE)}: core });
|
|
43
|
-
for (const value of Object.values(core)) if (value instanceof WebAssembly.Table && value.length === lanes.slots) table = value;
|
|
44
|
-
};
|
|
45
|
-
if (lanes !== null) {
|
|
46
|
-
const deferred = {};
|
|
47
|
-
for (let slot = 0; slot < lanes.slots; slot++) {
|
|
48
|
-
deferred[slot] = (...args) => {
|
|
49
|
-
if (table === null) link();
|
|
50
|
-
return table.get(slot)(...args);
|
|
51
|
-
};
|
|
52
|
-
}
|
|
53
|
-
imports[${JSON.stringify(chunkUWPQL2IQ_js.PLACEHOLDER_NAMESPACE)}] = deferred;
|
|
54
|
-
}
|
|
55
29
|
WebAssembly.instantiate(boot.module, imports).then((instance) => {
|
|
56
30
|
const exports = instance.exports;
|
|
57
|
-
core = exports;
|
|
58
31
|
exports[${JSON.stringify(STACK_POINTER_EXPORT)}].value = boot.stack;
|
|
59
32
|
exports[${JSON.stringify(INIT_TLS_EXPORT)}](boot.tls);
|
|
60
33
|
self.postMessage(boot.index);
|
|
@@ -65,7 +38,7 @@ self.onmessage = (event) => {
|
|
|
65
38
|
function hostImportStubs(module) {
|
|
66
39
|
let stubs = [];
|
|
67
40
|
for (let entry of WebAssembly.Module.imports(module))
|
|
68
|
-
entry.
|
|
41
|
+
entry.kind === FUNCTION_KIND && !(entry.module === MEMORY_MODULE && entry.name === MEMORY_FIELD) && stubs.push([entry.module, entry.name]);
|
|
69
42
|
return stubs;
|
|
70
43
|
}
|
|
71
44
|
function aligned(bytes, align) {
|
|
@@ -78,7 +51,7 @@ function delay(ms) {
|
|
|
78
51
|
return new Promise((resolve) => setTimeout(resolve, ms));
|
|
79
52
|
}
|
|
80
53
|
var BROWSER_WORKERS = { create: (url) => new Worker(url) };
|
|
81
|
-
async function startEngineThreads(module, memory, exports, workers, factory = BROWSER_WORKERS
|
|
54
|
+
async function startEngineThreads(module, memory, exports, workers, factory = BROWSER_WORKERS) {
|
|
82
55
|
if (workers <= 0 || exports.engine_jobs_init(workers) < 0) return null;
|
|
83
56
|
let tlsAlign = Math.max((16), globalValue(exports[TLS_ALIGN_EXPORT])), tlsBytes = aligned(Math.max(globalValue(exports[TLS_SIZE_EXPORT]), 1), tlsAlign), stubs = hostImportStubs(module), url = URL.createObjectURL(new Blob([WORKER_SOURCE], { type: "text/javascript" })), spawned = [], started = [];
|
|
84
57
|
try {
|
|
@@ -91,7 +64,7 @@ async function startEngineThreads(module, memory, exports, workers, factory = BR
|
|
|
91
64
|
worker.onmessage = (event) => resolve(event.data === index), worker.onerror = () => resolve(!1);
|
|
92
65
|
})
|
|
93
66
|
);
|
|
94
|
-
let boot = { module, memory, index, stack: stack + WORKER_STACK_BYTES, tls, stubs
|
|
67
|
+
let boot = { module, memory, index, stack: stack + WORKER_STACK_BYTES, tls, stubs };
|
|
95
68
|
worker.postMessage(boot);
|
|
96
69
|
}
|
|
97
70
|
let ok = (await Promise.all(started)).every(Boolean), wanted = spawned.length + 1, deadline = Date.now() + (5e3);
|