@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,17 +1,17 @@
|
|
|
1
1
|
'use strict';
|
|
2
2
|
|
|
3
3
|
var chunkYV52DGSA_js = require('./chunk-YV52DGSA.js');
|
|
4
|
-
var
|
|
5
|
-
var
|
|
4
|
+
var chunkPKOZXD2Q_js = require('./chunk-PKOZXD2Q.js');
|
|
5
|
+
var chunk3S6WPBZL_js = require('./chunk-3S6WPBZL.js');
|
|
6
6
|
var chunkRCQ2MPBV_js = require('./chunk-RCQ2MPBV.js');
|
|
7
7
|
var chunk3C4C654I_js = require('./chunk-3C4C654I.js');
|
|
8
8
|
var chunkYXGZQPUD_js = require('./chunk-YXGZQPUD.js');
|
|
9
|
-
var
|
|
10
|
-
var
|
|
11
|
-
var
|
|
12
|
-
var
|
|
13
|
-
var
|
|
14
|
-
var
|
|
9
|
+
var chunkH3OQKK6X_js = require('./chunk-H3OQKK6X.js');
|
|
10
|
+
var chunkSKQFLBDD_js = require('./chunk-SKQFLBDD.js');
|
|
11
|
+
var chunk7AAIAVAA_js = require('./chunk-7AAIAVAA.js');
|
|
12
|
+
var chunkX5A5FOWW_js = require('./chunk-X5A5FOWW.js');
|
|
13
|
+
var chunkNZTKLY2W_js = require('./chunk-NZTKLY2W.js');
|
|
14
|
+
var chunk2O2CG465_js = require('./chunk-2O2CG465.js');
|
|
15
15
|
var chunkPDOELNNQ_js = require('./chunk-PDOELNNQ.js');
|
|
16
16
|
var chunkPTRNO5UD_js = require('./chunk-PTRNO5UD.js');
|
|
17
17
|
var chunk2V7IL4HC_js = require('./chunk-2V7IL4HC.js');
|
|
@@ -39,17 +39,17 @@ var WORD = 4, DEFAULT_WORKGROUP = 1, ENTRY_BYTES = 52 * (4), MAX_TARGETS = 4, PA
|
|
|
39
39
|
rgba16f: 8,
|
|
40
40
|
rgba32f: 16
|
|
41
41
|
}, FACTOR = {
|
|
42
|
-
zero:
|
|
43
|
-
one:
|
|
44
|
-
src:
|
|
45
|
-
"one-minus-src":
|
|
46
|
-
"src-alpha":
|
|
47
|
-
"one-minus-src-alpha":
|
|
48
|
-
dst:
|
|
49
|
-
"one-minus-dst":
|
|
50
|
-
"dst-alpha":
|
|
51
|
-
"one-minus-dst-alpha":
|
|
52
|
-
"src-alpha-saturated":
|
|
42
|
+
zero: chunk7AAIAVAA_js.BLEND_FACTORS.indexOf("zero"),
|
|
43
|
+
one: chunk7AAIAVAA_js.BLEND_FACTORS.indexOf("one"),
|
|
44
|
+
src: chunk7AAIAVAA_js.BLEND_FACTORS.indexOf("srcColor"),
|
|
45
|
+
"one-minus-src": chunk7AAIAVAA_js.BLEND_FACTORS.indexOf("oneMinusSrcColor"),
|
|
46
|
+
"src-alpha": chunk7AAIAVAA_js.BLEND_FACTORS.indexOf("srcAlpha"),
|
|
47
|
+
"one-minus-src-alpha": chunk7AAIAVAA_js.BLEND_FACTORS.indexOf("oneMinusSrcAlpha"),
|
|
48
|
+
dst: chunk7AAIAVAA_js.BLEND_FACTORS.indexOf("dstColor"),
|
|
49
|
+
"one-minus-dst": chunk7AAIAVAA_js.BLEND_FACTORS.indexOf("oneMinusDstColor"),
|
|
50
|
+
"dst-alpha": chunk7AAIAVAA_js.BLEND_FACTORS.indexOf("dstAlpha"),
|
|
51
|
+
"one-minus-dst-alpha": chunk7AAIAVAA_js.BLEND_FACTORS.indexOf("oneMinusDstAlpha"),
|
|
52
|
+
"src-alpha-saturated": chunk7AAIAVAA_js.BLEND_FACTORS.indexOf("srcAlphaSaturate")
|
|
53
53
|
}, TOPOLOGY = {
|
|
54
54
|
"triangle-list": 0,
|
|
55
55
|
"triangle-strip": 1,
|
|
@@ -68,12 +68,12 @@ var WORD = 4, DEFAULT_WORKGROUP = 1, ENTRY_BYTES = 52 * (4), MAX_TARGETS = 4, PA
|
|
|
68
68
|
};
|
|
69
69
|
function failure(code, what) {
|
|
70
70
|
switch (code) {
|
|
71
|
-
case
|
|
71
|
+
case chunk2O2CG465_js.ERROR_CAPACITY_EXCEEDED:
|
|
72
72
|
return new chunk2V7IL4HC_js.GameError("capacity_exceeded", `${what}: capacity exceeded`);
|
|
73
|
-
case
|
|
74
|
-
case
|
|
73
|
+
case chunk2O2CG465_js.ERROR_DEAD_ENTITY:
|
|
74
|
+
case chunk2O2CG465_js.ERROR_UNKNOWN_RESOURCE:
|
|
75
75
|
return new chunk2V7IL4HC_js.GameError("unknown_resource", `${what}: unknown resource`);
|
|
76
|
-
case
|
|
76
|
+
case chunk2O2CG465_js.ERROR_UNSUPPORTED:
|
|
77
77
|
return new chunk2V7IL4HC_js.GameError("unsupported_feature", `${what}: unsupported`);
|
|
78
78
|
default:
|
|
79
79
|
return new chunk2V7IL4HC_js.GameError("invalid_argument", `${what}: invalid argument`);
|
|
@@ -111,7 +111,7 @@ var EngineRaw = class {
|
|
|
111
111
|
let size = this.size(buffer);
|
|
112
112
|
if (offset < 0 || offset % (4) !== 0 || offset + data.byteLength > size)
|
|
113
113
|
throw new chunk2V7IL4HC_js.GameError("invalid_argument", `write of ${data.byteLength} bytes at ${offset} overflows gpu buffer ${buffer}`);
|
|
114
|
-
this.host.flush(), this.host.bytes(10, buffer, 0).set(new Uint8Array(data.buffer, data.byteOffset, data.byteLength), offset), this.host.command(
|
|
114
|
+
this.host.flush(), this.host.bytes(10, buffer, 0).set(new Uint8Array(data.buffer, data.byteOffset, data.byteLength), offset), this.host.command(chunk7AAIAVAA_js.OP_RAW_MARK_BUFFER, buffer);
|
|
115
115
|
}
|
|
116
116
|
createTexture(desc) {
|
|
117
117
|
let d = this.host.clearDesc();
|
|
@@ -126,7 +126,7 @@ var EngineRaw = class {
|
|
|
126
126
|
let info = this.texture(texture), bytes = info.width * info.height * TEXEL_BYTES[info.format];
|
|
127
127
|
if (data.byteLength !== bytes)
|
|
128
128
|
throw new chunk2V7IL4HC_js.GameError("invalid_argument", `texture ${texture} takes exactly ${bytes} bytes`);
|
|
129
|
-
this.host.flush(), this.host.bytes(11, texture, 0).set(new Uint8Array(data.buffer, data.byteOffset, data.byteLength)), this.host.command(
|
|
129
|
+
this.host.flush(), this.host.bytes(11, texture, 0).set(new Uint8Array(data.buffer, data.byteOffset, data.byteLength)), this.host.command(chunk7AAIAVAA_js.OP_RAW_MARK_TEXTURE, texture);
|
|
130
130
|
}
|
|
131
131
|
readTexture(texture, rect, out) {
|
|
132
132
|
let info = this.texture(texture), bytes = rect.width * rect.height * TEXEL_BYTES[info.format];
|
|
@@ -141,11 +141,11 @@ var EngineRaw = class {
|
|
|
141
141
|
});
|
|
142
142
|
}
|
|
143
143
|
copyTexture(source, target, copy) {
|
|
144
|
-
let info = this.texture(source), a = this.host.command(
|
|
144
|
+
let info = this.texture(source), a = this.host.command(chunk7AAIAVAA_js.OP_RAW_COPY_TEXTURE, source), w = this.host.commandWords;
|
|
145
145
|
w[a] = target, w[a + 1] = pack(copy?.from ?? [0, 0]), w[a + 2] = pack(copy?.to ?? [0, 0]), w[a + 3] = pack(copy?.size ?? [info.width, info.height]), w[a + 4] = HOOK_ORDER.indexOf(copy?.hook ?? "beforeScene");
|
|
146
146
|
}
|
|
147
147
|
destroyTexture(texture) {
|
|
148
|
-
this.host.command(
|
|
148
|
+
this.host.command(chunk7AAIAVAA_js.OP_RAW_DESTROY_TEXTURE, texture), this.textures.delete(texture), this.reject((read) => read.texture === texture, `gpu texture ${texture} was destroyed`);
|
|
149
149
|
}
|
|
150
150
|
createSampler(desc) {
|
|
151
151
|
let d = this.host.clearDesc();
|
|
@@ -192,7 +192,7 @@ var EngineRaw = class {
|
|
|
192
192
|
}), this.check(this.host.call("engine_render_raw_bindings"), "create bind group");
|
|
193
193
|
}
|
|
194
194
|
dispatch(pipeline, bindGroup, x, y = (1), z = (1), options) {
|
|
195
|
-
let a = this.host.command(
|
|
195
|
+
let a = this.host.command(chunk7AAIAVAA_js.OP_RAW_DISPATCH, pipeline), w = this.host.commandWords;
|
|
196
196
|
w[a + 0] = bindGroup, w[a + 1] = x, w[a + 1 + 1] = y, w[a + 1 + 2] = z, w[a + 4] = HOOK_ORDER.indexOf(options?.hook ?? "beforeScene"), w[a + 5] = options?.indirect ?? 0;
|
|
197
197
|
}
|
|
198
198
|
draw(pipeline, bindGroup, vertexCount, options) {
|
|
@@ -203,11 +203,11 @@ var EngineRaw = class {
|
|
|
203
203
|
if (this.targetFormats.get(pipeline) !== SCENE_COLOR_FORMAT)
|
|
204
204
|
throw new chunk2V7IL4HC_js.GameError("invalid_argument", `scene colour draws need a ${SCENE_COLOR_FORMAT} target`);
|
|
205
205
|
}
|
|
206
|
-
let a = this.host.command(
|
|
206
|
+
let a = this.host.command(chunk7AAIAVAA_js.OP_RAW_DRAW, pipeline), w = this.host.commandWords;
|
|
207
207
|
w[a + 0] = bindGroup, w[a + 1] = vertexCount, w[a + 2] = options?.instances ?? 1, w[a + 3] = target === "color" ? 4294967282 : target, w[a + 4] = HOOK_ORDER.indexOf(hook), w[a + 5] = 0;
|
|
208
208
|
}
|
|
209
209
|
copyBuffer(source, sourceOffset, target, targetOffset, size) {
|
|
210
|
-
let a = this.host.command(
|
|
210
|
+
let a = this.host.command(chunk7AAIAVAA_js.OP_RAW_COPY, source), w = this.host.commandWords;
|
|
211
211
|
w[a] = sourceOffset, w[a + 1] = target, w[a + 2] = targetOffset, w[a + 3] = size;
|
|
212
212
|
}
|
|
213
213
|
submit() {
|
|
@@ -224,11 +224,11 @@ var EngineRaw = class {
|
|
|
224
224
|
});
|
|
225
225
|
}
|
|
226
226
|
destroyBuffer(buffer) {
|
|
227
|
-
this.host.command(
|
|
227
|
+
this.host.command(chunk7AAIAVAA_js.OP_RAW_DESTROY_BUFFER, buffer), this.sizes.delete(buffer), this.reject((read) => read.buffer === buffer, `gpu buffer ${buffer} was destroyed`);
|
|
228
228
|
}
|
|
229
229
|
dispose() {
|
|
230
|
-
for (let id of this.sizes.keys()) this.host.command(
|
|
231
|
-
for (let id of this.textures.keys()) this.host.command(
|
|
230
|
+
for (let id of this.sizes.keys()) this.host.command(chunk7AAIAVAA_js.OP_RAW_DESTROY_BUFFER, id);
|
|
231
|
+
for (let id of this.textures.keys()) this.host.command(chunk7AAIAVAA_js.OP_RAW_DESTROY_TEXTURE, id);
|
|
232
232
|
this.host.flush(), this.sizes.clear(), this.textures.clear(), this.reject(() => true, "gpu was disposed");
|
|
233
233
|
}
|
|
234
234
|
pipeline(shader, entry, configure) {
|
|
@@ -297,7 +297,7 @@ var NO_JOINT = 4294967295, IK_HEADER = 8, BLEND_MEMBER_WORDS = 3, CLIP_INFO_WORD
|
|
|
297
297
|
return this.bits[0] = value, this.bitWords[0];
|
|
298
298
|
}
|
|
299
299
|
op(target, sub) {
|
|
300
|
-
let at = this.host.command(
|
|
300
|
+
let at = this.host.command(chunk7AAIAVAA_js.OP_ANIMATION, target);
|
|
301
301
|
return this.host.commandWords[at] = sub, at + 1;
|
|
302
302
|
}
|
|
303
303
|
joint(root, bone) {
|
|
@@ -342,7 +342,7 @@ var NO_JOINT = 4294967295, IK_HEADER = 8, BLEND_MEMBER_WORDS = 3, CLIP_INFO_WORD
|
|
|
342
342
|
header[0] = (0), header[1] = 24, header[2] = target.chain, header[3] = 2, template[0] = target.effect, template[1] = this.host.postParam(target.chain, target.effect, target.name);
|
|
343
343
|
return;
|
|
344
344
|
case "emitterRate":
|
|
345
|
-
header[0] = (0), header[1] =
|
|
345
|
+
header[0] = (0), header[1] = chunk7AAIAVAA_js.OP_SET_EMITTER_RATE, header[2] = target.emitter, header[3] = 0;
|
|
346
346
|
return;
|
|
347
347
|
}
|
|
348
348
|
}
|
|
@@ -360,43 +360,43 @@ var NO_JOINT = 4294967295, IK_HEADER = 8, BLEND_MEMBER_WORDS = 3, CLIP_INFO_WORD
|
|
|
360
360
|
this.host.animation((42), 0, Uint32Array.of(clip));
|
|
361
361
|
}
|
|
362
362
|
setClipTime(action, seconds) {
|
|
363
|
-
this.host.commandFloats[this.op(action,
|
|
363
|
+
this.host.commandFloats[this.op(action, chunk7AAIAVAA_js.ANIM_SET_TIME)] = seconds;
|
|
364
364
|
}
|
|
365
365
|
setClipSpeed(action, speed) {
|
|
366
|
-
this.host.commandFloats[this.op(action,
|
|
366
|
+
this.host.commandFloats[this.op(action, chunk7AAIAVAA_js.ANIM_SET_SPEED)] = speed;
|
|
367
367
|
}
|
|
368
368
|
setClipLoop(action, loop, repetitions, clampWhenFinished) {
|
|
369
|
-
let at = this.op(action,
|
|
369
|
+
let at = this.op(action, chunk7AAIAVAA_js.ANIM_SET_LOOP), w = this.host.commandWords;
|
|
370
370
|
w[at] = chunkYV52DGSA_js.LOOP_CODES[loop], w[at + 1] = Number.isFinite(repetitions) ? Math.max(0, repetitions | 0) : 0, w[at + 2] = clampWhenFinished ? 1 : 0;
|
|
371
371
|
}
|
|
372
372
|
setClipPaused(action, paused) {
|
|
373
|
-
this.host.commandWords[this.op(action,
|
|
373
|
+
this.host.commandWords[this.op(action, chunk7AAIAVAA_js.ANIM_SET_PAUSED)] = paused ? 1 : 0;
|
|
374
374
|
}
|
|
375
375
|
setClipRange(action, start, end) {
|
|
376
|
-
let at = this.op(action,
|
|
376
|
+
let at = this.op(action, chunk7AAIAVAA_js.ANIM_SET_RANGE);
|
|
377
377
|
this.host.commandFloats[at] = start, this.host.commandFloats[at + 1] = end;
|
|
378
378
|
}
|
|
379
379
|
setClipSync(action, group) {
|
|
380
|
-
this.host.commandWords[this.op(action,
|
|
380
|
+
this.host.commandWords[this.op(action, chunk7AAIAVAA_js.ANIM_SET_SYNC)] = group === null ? 0 : (group & 2147483647) + 1;
|
|
381
381
|
}
|
|
382
382
|
setClipSyncMode(action, mode) {
|
|
383
|
-
this.host.commandWords[this.op(action,
|
|
383
|
+
this.host.commandWords[this.op(action, chunk7AAIAVAA_js.ANIM_SET_SYNC_MODE)] = chunkYV52DGSA_js.SYNC_MODE_CODES[mode];
|
|
384
384
|
}
|
|
385
385
|
setClipSyncMarkers(root, clip, markers) {
|
|
386
386
|
chunkYV52DGSA_js.checkSyncMarkers(markers, Number.POSITIVE_INFINITY);
|
|
387
387
|
let words = new Uint32Array(1 + markers.length * 2);
|
|
388
388
|
words[0] = this.clipIndex(root, clip), markers.forEach((marker, i) => {
|
|
389
389
|
words[1 + i * 2] = this.floatBits(marker.time), words[2 + i * 2] = marker.id >>> 0;
|
|
390
|
-
}), this.host.animation(
|
|
390
|
+
}), this.host.animation(chunk7AAIAVAA_js.ANIM_SET_SYNC_MARKERS, root, words);
|
|
391
391
|
}
|
|
392
392
|
inertialize(from, to, seconds) {
|
|
393
|
-
let at = this.op(from,
|
|
393
|
+
let at = this.op(from, chunk7AAIAVAA_js.ANIM_INERTIALIZE);
|
|
394
394
|
this.host.commandWords[at] = to, this.host.commandFloats[at + 1] = seconds;
|
|
395
395
|
}
|
|
396
396
|
bakeRetarget(target, source, clip, options) {
|
|
397
397
|
let maps = options?.maps, words = new Uint32Array((4) + (maps === void 0 ? 0 : chunkYV52DGSA_js.HUMAN_BONES.length * 2)).fill((4294967295));
|
|
398
398
|
words[0] = source, words[1] = this.clipIndex(source, clip), words[2] = this.floatBits(chunkYV52DGSA_js.bakeRate(options)), words[3] = maps === void 0 ? 0 : (1), maps !== void 0 && this.writeMaps(words, (4), target, source, maps);
|
|
399
|
-
let index = this.host.animation(
|
|
399
|
+
let index = this.host.animation(chunk7AAIAVAA_js.ANIM_BAKE_RETARGET, target, words), name = this.host.refreshModel(target).clipNames[index];
|
|
400
400
|
if (name === void 0) throw new chunk2V7IL4HC_js.GameError("unknown_resource", `baked clip ${index} is missing on the target model`);
|
|
401
401
|
return name;
|
|
402
402
|
}
|
|
@@ -407,86 +407,86 @@ var NO_JOINT = 4294967295, IK_HEADER = 8, BLEND_MEMBER_WORDS = 3, CLIP_INFO_WORD
|
|
|
407
407
|
});
|
|
408
408
|
}
|
|
409
409
|
setClipEventsEnabled(action, enabled) {
|
|
410
|
-
this.host.commandWords[this.op(action,
|
|
410
|
+
this.host.commandWords[this.op(action, chunk7AAIAVAA_js.ANIM_SET_EVENTS)] = enabled ? 1 : 0;
|
|
411
411
|
}
|
|
412
412
|
setClipAdditive(action, referenceTime) {
|
|
413
|
-
this.host.commandFloats[this.host.command(
|
|
413
|
+
this.host.commandFloats[this.host.command(chunk7AAIAVAA_js.OP_SET_CLIP_ADDITIVE, action)] = referenceTime ?? Number.POSITIVE_INFINITY;
|
|
414
414
|
}
|
|
415
415
|
crossFade(from, to, seconds, warp) {
|
|
416
|
-
let at = this.op(from,
|
|
416
|
+
let at = this.op(from, chunk7AAIAVAA_js.ANIM_CROSSFADE);
|
|
417
417
|
this.host.commandWords[at] = to, this.host.commandFloats[at + 1] = seconds, this.host.commandWords[at + 2] = warp ? 1 : 0;
|
|
418
418
|
}
|
|
419
419
|
fadeClip(action, weight, seconds) {
|
|
420
|
-
let at = this.op(action,
|
|
420
|
+
let at = this.op(action, chunk7AAIAVAA_js.ANIM_FADE);
|
|
421
421
|
this.host.commandFloats[at] = weight, this.host.commandFloats[at + 1] = seconds;
|
|
422
422
|
}
|
|
423
423
|
fadeClipFrom(action, values, offset) {
|
|
424
|
-
let at = this.op(action,
|
|
424
|
+
let at = this.op(action, chunk7AAIAVAA_js.ANIM_FADE), f = this.host.commandFloats;
|
|
425
425
|
f[at] = values[offset], f[at + 1] = values[offset + 1];
|
|
426
426
|
}
|
|
427
427
|
createClipMask(root, weights) {
|
|
428
428
|
let names = this.host.model(root).nodeNames, words = new Uint32Array(names.length);
|
|
429
429
|
for (let [bone, weight] of Object.entries(weights)) words[this.joint(root, bone)] = this.floatBits(weight);
|
|
430
|
-
return this.host.animation(
|
|
430
|
+
return this.host.animation(chunk7AAIAVAA_js.ANIM_CREATE_MASK, root, words);
|
|
431
431
|
}
|
|
432
432
|
setClipMask(action, mask) {
|
|
433
|
-
this.host.commandWords[this.host.command(
|
|
433
|
+
this.host.commandWords[this.host.command(chunk7AAIAVAA_js.OP_SET_CLIP_MASK, action)] = mask ?? 0;
|
|
434
434
|
}
|
|
435
435
|
destroyClipMask(root, mask) {
|
|
436
|
-
this.host.animation(
|
|
436
|
+
this.host.animation(chunk7AAIAVAA_js.ANIM_DESTROY, root, Uint32Array.of(chunk7AAIAVAA_js.ANIM_KIND_MASK, mask));
|
|
437
437
|
}
|
|
438
438
|
setClipEvents(root, clip, events) {
|
|
439
439
|
let words = new Uint32Array(1 + events.length * 2);
|
|
440
440
|
words[0] = this.clipIndex(root, clip), events.forEach((event, i) => {
|
|
441
441
|
words[1 + i * 2] = this.floatBits(event.time), words[2 + i * 2] = event.id >>> 0;
|
|
442
|
-
}), this.host.animation(
|
|
442
|
+
}), this.host.animation(chunk7AAIAVAA_js.ANIM_SET_CLIP_EVENTS, root, words);
|
|
443
443
|
}
|
|
444
444
|
clipInfo(root, clip) {
|
|
445
445
|
let words = new Uint32Array((4));
|
|
446
|
-
return words[0] = this.clipIndex(root, clip), this.host.animation(
|
|
446
|
+
return words[0] = this.clipIndex(root, clip), this.host.animation(chunk7AAIAVAA_js.ANIM_CLIP_INFO, root, words), this.bitWords[0] = words[0], { duration: this.bits[0], tracks: words[1], morphWeights: words[2], events: words[3] };
|
|
447
447
|
}
|
|
448
448
|
createBlendSpace(root, desc) {
|
|
449
449
|
let words = new Uint32Array(2 + desc.members.length * (3));
|
|
450
450
|
return words[0] = chunkYV52DGSA_js.BLEND_SPACE_CODES[desc.kind], words[1] = desc.members.length, desc.members.forEach((member, i) => {
|
|
451
451
|
let at = 2 + i * (3);
|
|
452
452
|
words[at] = member.action, words[at + 1] = this.floatBits(member.x), words[at + 2] = this.floatBits(member.y ?? 0);
|
|
453
|
-
}), this.host.animation(
|
|
453
|
+
}), this.host.animation(chunk7AAIAVAA_js.ANIM_CREATE_BLEND, root, words);
|
|
454
454
|
}
|
|
455
455
|
setBlendParameter(space, x, y, weight) {
|
|
456
|
-
let at = this.op(space,
|
|
456
|
+
let at = this.op(space, chunk7AAIAVAA_js.ANIM_SET_BLEND);
|
|
457
457
|
this.host.commandFloats[at] = x, this.host.commandFloats[at + 1] = y, this.host.commandFloats[at + 2] = weight;
|
|
458
458
|
}
|
|
459
459
|
setBlendParameterFrom(space, values, offset) {
|
|
460
|
-
let at = this.op(space,
|
|
460
|
+
let at = this.op(space, chunk7AAIAVAA_js.ANIM_SET_BLEND), f = this.host.commandFloats;
|
|
461
461
|
f[at] = values[offset], f[at + 1] = values[offset + 1], f[at + 2] = values[offset + 2];
|
|
462
462
|
}
|
|
463
463
|
destroyBlendSpace(root, space) {
|
|
464
|
-
this.host.animation(
|
|
464
|
+
this.host.animation(chunk7AAIAVAA_js.ANIM_DESTROY, root, Uint32Array.of(chunk7AAIAVAA_js.ANIM_KIND_BLEND, space));
|
|
465
465
|
}
|
|
466
466
|
createIk(root, desc) {
|
|
467
467
|
let words = new Uint32Array((8) + desc.bones.length), forward = desc.forward ?? [0, 0, 1];
|
|
468
468
|
return words[0] = chunkYV52DGSA_js.IK_CODES[desc.solver], words[1] = desc.iterations ?? chunkYV52DGSA_js.DEFAULT_IK_ITERATIONS, words[2] = this.floatBits(desc.tolerance ?? chunkYV52DGSA_js.DEFAULT_IK_TOLERANCE), words[3] = this.floatBits(desc.maxAngle ?? FULL_TURN), words[4] = this.floatBits(forward[0]), words[5] = this.floatBits(forward[1]), words[6] = this.floatBits(forward[2]), words[7] = desc.bones.length, desc.bones.forEach((bone, i) => {
|
|
469
469
|
words[(8) + i] = this.joint(root, bone);
|
|
470
|
-
}), this.host.animation(
|
|
470
|
+
}), this.host.animation(chunk7AAIAVAA_js.ANIM_CREATE_IK, root, words);
|
|
471
471
|
}
|
|
472
472
|
setIkTarget(chain, x, y, z, weight) {
|
|
473
|
-
let at = this.op(chain,
|
|
473
|
+
let at = this.op(chain, chunk7AAIAVAA_js.ANIM_SET_IK_TARGET), f = this.host.commandFloats;
|
|
474
474
|
f[at] = x, f[at + 1] = y, f[at + 2] = z, f[at + 3] = weight;
|
|
475
475
|
}
|
|
476
476
|
setIkTargetFrom(chain, values, offset) {
|
|
477
|
-
let at = this.op(chain,
|
|
477
|
+
let at = this.op(chain, chunk7AAIAVAA_js.ANIM_SET_IK_TARGET), f = this.host.commandFloats;
|
|
478
478
|
f[at] = values[offset], f[at + 1] = values[offset + 1], f[at + 2] = values[offset + 2], f[at + 3] = values[offset + 3];
|
|
479
479
|
}
|
|
480
480
|
setIkPole(chain, x, y, z) {
|
|
481
|
-
let at = this.op(chain,
|
|
481
|
+
let at = this.op(chain, chunk7AAIAVAA_js.ANIM_SET_IK_POLE), f = this.host.commandFloats;
|
|
482
482
|
f[at] = x, f[at + 1] = y, f[at + 2] = z;
|
|
483
483
|
}
|
|
484
484
|
destroyIk(root, chain) {
|
|
485
|
-
this.host.animation(
|
|
485
|
+
this.host.animation(chunk7AAIAVAA_js.ANIM_DESTROY, root, Uint32Array.of(chunk7AAIAVAA_js.ANIM_KIND_IK, chain));
|
|
486
486
|
}
|
|
487
487
|
humanoid(root) {
|
|
488
488
|
let words = new Uint32Array(chunkYV52DGSA_js.HUMAN_BONES.length);
|
|
489
|
-
this.host.animation(
|
|
489
|
+
this.host.animation(chunk7AAIAVAA_js.ANIM_HUMANOID, root, words);
|
|
490
490
|
let names = this.host.model(root).nodeNames, map = {};
|
|
491
491
|
return chunkYV52DGSA_js.HUMAN_BONES.forEach((bone, i) => {
|
|
492
492
|
words[i] !== (4294967295) && (map[bone] = names[words[i]]);
|
|
@@ -494,14 +494,14 @@ var NO_JOINT = 4294967295, IK_HEADER = 8, BLEND_MEMBER_WORDS = 3, CLIP_INFO_WORD
|
|
|
494
494
|
}
|
|
495
495
|
retarget(target, source, maps) {
|
|
496
496
|
if (maps === void 0) {
|
|
497
|
-
this.host.animation(
|
|
497
|
+
this.host.animation(chunk7AAIAVAA_js.ANIM_RETARGET, target, Uint32Array.of(source, 0));
|
|
498
498
|
return;
|
|
499
499
|
}
|
|
500
500
|
let words = new Uint32Array((2) + chunkYV52DGSA_js.HUMAN_BONES.length * 2).fill((4294967295));
|
|
501
|
-
words[0] = source, words[1] = (1), this.writeMaps(words, (2), target, source, maps), this.host.animation(
|
|
501
|
+
words[0] = source, words[1] = (1), this.writeMaps(words, (2), target, source, maps), this.host.animation(chunk7AAIAVAA_js.ANIM_RETARGET, target, words);
|
|
502
502
|
}
|
|
503
503
|
stopRetarget(target) {
|
|
504
|
-
this.host.animation(
|
|
504
|
+
this.host.animation(chunk7AAIAVAA_js.ANIM_DESTROY, target, Uint32Array.of(chunk7AAIAVAA_js.ANIM_KIND_RETARGET, 0));
|
|
505
505
|
}
|
|
506
506
|
createBoneSet(root, bones) {
|
|
507
507
|
let nodes = new Uint32Array(bones.length);
|
|
@@ -518,31 +518,31 @@ var NO_JOINT = 4294967295, IK_HEADER = 8, BLEND_MEMBER_WORDS = 3, CLIP_INFO_WORD
|
|
|
518
518
|
this.host.destroyPoseReader(set);
|
|
519
519
|
}
|
|
520
520
|
setAnimationLod(root, interval) {
|
|
521
|
-
this.host.animation(
|
|
521
|
+
this.host.animation(chunk7AAIAVAA_js.ANIM_SET_LOD, root, Uint32Array.of(chunkYV52DGSA_js.animationLodInterval(interval)));
|
|
522
522
|
}
|
|
523
523
|
enableRootMotion(root, desc) {
|
|
524
|
-
let flags = (desc.horizontal ?? true ?
|
|
525
|
-
if (flags === 0 || flags ===
|
|
524
|
+
let flags = (desc.horizontal ?? true ? chunk7AAIAVAA_js.ROOT_MOTION_XZ : 0) | (desc.vertical ? chunk7AAIAVAA_js.ROOT_MOTION_Y : 0) | (desc.yaw ? chunk7AAIAVAA_js.ROOT_MOTION_YAW : 0) | (desc.apply ? chunk7AAIAVAA_js.ROOT_MOTION_APPLY : 0);
|
|
525
|
+
if (flags === 0 || flags === chunk7AAIAVAA_js.ROOT_MOTION_APPLY)
|
|
526
526
|
throw new chunk2V7IL4HC_js.GameError("invalid_argument", "root motion needs at least one extracted axis");
|
|
527
|
-
return this.host.animation(
|
|
527
|
+
return this.host.animation(chunk7AAIAVAA_js.ANIM_ROOT_MOTION, root, Uint32Array.of(flags, this.joint(root, desc.bone)));
|
|
528
528
|
}
|
|
529
529
|
disableRootMotion(root) {
|
|
530
|
-
this.host.animation(
|
|
530
|
+
this.host.animation(chunk7AAIAVAA_js.ANIM_DESTROY, root, Uint32Array.of(chunk7AAIAVAA_js.ANIM_KIND_ROOT_MOTION, 0));
|
|
531
531
|
}
|
|
532
532
|
readRootMotion(motion, out, offset) {
|
|
533
|
-
let words = this.host.floats(
|
|
533
|
+
let words = this.host.floats(chunk7AAIAVAA_js.ANIMATION_BUFFER_ROOT_MOTION);
|
|
534
534
|
out.set(words.subarray(motion * chunkYV52DGSA_js.ROOT_MOTION_WORDS, (motion + 1) * chunkYV52DGSA_js.ROOT_MOTION_WORDS), offset);
|
|
535
535
|
}
|
|
536
536
|
readClipState(action, out) {
|
|
537
|
-
let floats = this.host.floats(
|
|
537
|
+
let floats = this.host.floats(chunk7AAIAVAA_js.ANIMATION_BUFFER_ACTIONS), at = action * chunk7AAIAVAA_js.ANIM_ACTION_WORDS;
|
|
538
538
|
this.bits[0] = floats[at + 3];
|
|
539
539
|
let flags = this.bitWords[0];
|
|
540
|
-
out.time = floats[at], out.weight = floats[at + 1], out.speed = floats[at + 2], out.running = (flags &
|
|
540
|
+
out.time = floats[at], out.weight = floats[at + 1], out.speed = floats[at + 2], out.running = (flags & chunk7AAIAVAA_js.ANIM_ACTION_RUNNING) !== 0, out.paused = (flags & chunk7AAIAVAA_js.ANIM_ACTION_PAUSED) !== 0, out.finished = (flags & chunk7AAIAVAA_js.ANIM_ACTION_FINISHED) !== 0;
|
|
541
541
|
}
|
|
542
542
|
readClipEvents(out) {
|
|
543
|
-
let words = this.host.words(
|
|
543
|
+
let words = this.host.words(chunk7AAIAVAA_js.ANIMATION_BUFFER_EVENTS), count = Math.min(words[0], chunk7AAIAVAA_js.ANIM_MAX_EVENTS);
|
|
544
544
|
for (let i = 0; i < count; i++) {
|
|
545
|
-
let at = 1 + i *
|
|
545
|
+
let at = 1 + i * chunk7AAIAVAA_js.ANIM_EVENT_WORDS, event = out[i] ?? chunkYV52DGSA_js.emptyClipEvent();
|
|
546
546
|
event.action = words[at], event.kind = chunkYV52DGSA_js.CLIP_EVENT_KINDS[words[at + 1]] ?? "event", event.id = words[at + 2], this.bitWords[0] = words[at + 3], event.time = this.bits[0], out[i] = event;
|
|
547
547
|
}
|
|
548
548
|
return count;
|
|
@@ -557,7 +557,7 @@ function pair(d, at, value, fallback) {
|
|
|
557
557
|
function writeEmitterDesc(d, f, desc) {
|
|
558
558
|
d[0] = desc.capacity, f[1] = desc.rate ?? 0, d[2] = desc.burst ?? 0, pair(f, 3, desc.lifetime, (1)), pair(f, 5, desc.speed, (1)), pair(f, 7, desc.size, (0.1)), d[9] = desc.color?.[0] ?? (16777215), d[10] = desc.color?.[1] ?? desc.color?.[0] ?? (16777215), f[11] = desc.alpha?.[0] ?? 1, f[12] = desc.alpha?.[1] ?? 1, f.set(desc.gravity ?? [0, 0, 0], 13), f[16] = desc.drag ?? 0, f[17] = desc.noise?.strength ?? 0, f[18] = desc.noise?.scale ?? 1;
|
|
559
559
|
let shape = desc.shape ?? { kind: "point" };
|
|
560
|
-
switch (d[19] =
|
|
560
|
+
switch (d[19] = chunk7AAIAVAA_js.EMITTER_SHAPES.indexOf(shape.kind), shape.kind) {
|
|
561
561
|
case "sphere":
|
|
562
562
|
case "disc":
|
|
563
563
|
f[20] = shape.radius;
|
|
@@ -570,7 +570,7 @@ function writeEmitterDesc(d, f, desc) {
|
|
|
570
570
|
break;
|
|
571
571
|
}
|
|
572
572
|
let collision = desc.collision ?? { kind: "none" };
|
|
573
|
-
d[24] =
|
|
573
|
+
d[24] = chunk7AAIAVAA_js.EMITTER_COLLISIONS.indexOf(collision.kind), collision.kind === "plane" && f.set(collision.plane, 25), collision.kind !== "none" && (f[29] = collision.bounce ?? 0), d[30] = desc.material ?? 0, d[31] = (desc.soft ? 1 : 0) | (desc.sorted ? 2 : 0) | (desc.localSpace ? 4 : 0) | (desc.deterministic ? 8 : 0) | (desc.additive ? 16 : 0) | (desc.stretch ? 32 : 0) | (desc.oit ? 64 : 0) | (desc.velocityAligned ? 128 : 0), d[32] = desc.seed ?? 0, f[33] = desc.spread ?? 0, f[34] = desc.spin ?? 0, d[36] = desc.sizeCurve || desc.colorCurve ? 32 : 0;
|
|
574
574
|
}
|
|
575
575
|
function channel(point, c) {
|
|
576
576
|
return typeof point.value == "number" ? point.value : point.value[c];
|
|
@@ -721,21 +721,21 @@ var ENGINE_GRAPHICS_NAME = "cimplify-render", NO_HANDLE = 0, GOVERNOR_TIER_MASK
|
|
|
721
721
|
rgba8: [0, 4],
|
|
722
722
|
rgba16f: [2, 8],
|
|
723
723
|
rgba32f: [1, 16],
|
|
724
|
-
r8: [
|
|
725
|
-
rg8: [
|
|
726
|
-
r16f: [
|
|
727
|
-
rg16f: [
|
|
728
|
-
r32f: [
|
|
729
|
-
rg32f: [
|
|
730
|
-
r8ui: [
|
|
731
|
-
r16ui: [
|
|
732
|
-
r32ui: [
|
|
733
|
-
rg32ui: [
|
|
734
|
-
rgba8ui: [
|
|
735
|
-
rgba16ui: [
|
|
736
|
-
rgba32ui: [
|
|
737
|
-
r32i: [
|
|
738
|
-
rgba32i: [
|
|
724
|
+
r8: [chunk7AAIAVAA_js.TEXTURE_FORMAT_R8, 1],
|
|
725
|
+
rg8: [chunk7AAIAVAA_js.TEXTURE_FORMAT_RG8, 2],
|
|
726
|
+
r16f: [chunk7AAIAVAA_js.TEXTURE_FORMAT_R16F, 2],
|
|
727
|
+
rg16f: [chunk7AAIAVAA_js.TEXTURE_FORMAT_RG16F, 4],
|
|
728
|
+
r32f: [chunk7AAIAVAA_js.TEXTURE_FORMAT_R32F, 4],
|
|
729
|
+
rg32f: [chunk7AAIAVAA_js.TEXTURE_FORMAT_RG32F, 8],
|
|
730
|
+
r8ui: [chunk7AAIAVAA_js.TEXTURE_FORMAT_R8UI, 1],
|
|
731
|
+
r16ui: [chunk7AAIAVAA_js.TEXTURE_FORMAT_R16UI, 2],
|
|
732
|
+
r32ui: [chunk7AAIAVAA_js.TEXTURE_FORMAT_R32UI, 4],
|
|
733
|
+
rg32ui: [chunk7AAIAVAA_js.TEXTURE_FORMAT_RG32UI, 8],
|
|
734
|
+
rgba8ui: [chunk7AAIAVAA_js.TEXTURE_FORMAT_RGBA8UI, 4],
|
|
735
|
+
rgba16ui: [chunk7AAIAVAA_js.TEXTURE_FORMAT_RGBA16UI, 8],
|
|
736
|
+
rgba32ui: [chunk7AAIAVAA_js.TEXTURE_FORMAT_RGBA32UI, 16],
|
|
737
|
+
r32i: [chunk7AAIAVAA_js.TEXTURE_FORMAT_R32I, 4],
|
|
738
|
+
rgba32i: [chunk7AAIAVAA_js.TEXTURE_FORMAT_RGBA32I, 16]
|
|
739
739
|
}, EFFECT_KINDS = {
|
|
740
740
|
bloom: 0,
|
|
741
741
|
fxaa: 1,
|
|
@@ -757,7 +757,7 @@ var ENGINE_GRAPHICS_NAME = "cimplify-render", NO_HANDLE = 0, GOVERNOR_TIER_MASK
|
|
|
757
757
|
chromatic: 17,
|
|
758
758
|
mask: 18,
|
|
759
759
|
weather: 19,
|
|
760
|
-
lens_flare:
|
|
760
|
+
lens_flare: chunk7AAIAVAA_js.EFFECT_LENS_FLARE
|
|
761
761
|
}, SCALAR_PARAMS = {
|
|
762
762
|
opacity: 3,
|
|
763
763
|
emissiveIntensity: 7,
|
|
@@ -794,7 +794,7 @@ var ENGINE_GRAPHICS_NAME = "cimplify-render", NO_HANDLE = 0, GOVERNOR_TIER_MASK
|
|
|
794
794
|
type: 50
|
|
795
795
|
}, SHADOW_INTEGERS = /* @__PURE__ */ new Set(["cascades", "blurSamples"]);
|
|
796
796
|
function shadowWord(key, value) {
|
|
797
|
-
return typeof value == "string" ?
|
|
797
|
+
return typeof value == "string" ? chunkPKOZXD2Q_js.SHADOW_TYPES[value] : SHADOW_INTEGERS.has(key) ? value >>> 0 : chunkPKOZXD2Q_js.floatBits(value);
|
|
798
798
|
}
|
|
799
799
|
function linear(channel3) {
|
|
800
800
|
return channel3 <= (0.04045) ? channel3 / (12.92) : ((channel3 + (0.055)) / (1.055)) ** (2.4);
|
|
@@ -804,12 +804,12 @@ function scalarOf(data) {
|
|
|
804
804
|
}
|
|
805
805
|
function failure2(code, what) {
|
|
806
806
|
switch (code) {
|
|
807
|
-
case
|
|
807
|
+
case chunk2O2CG465_js.ERROR_CAPACITY_EXCEEDED:
|
|
808
808
|
return new chunk2V7IL4HC_js.GameError("capacity_exceeded", `${what}: capacity exceeded`);
|
|
809
|
-
case
|
|
810
|
-
case
|
|
809
|
+
case chunk2O2CG465_js.ERROR_DEAD_ENTITY:
|
|
810
|
+
case chunk2O2CG465_js.ERROR_UNKNOWN_RESOURCE:
|
|
811
811
|
return new chunk2V7IL4HC_js.GameError("unknown_resource", `${what}: unknown resource`);
|
|
812
|
-
case
|
|
812
|
+
case chunk2O2CG465_js.ERROR_UNSUPPORTED:
|
|
813
813
|
return new chunk2V7IL4HC_js.GameError("unsupported_feature", `${what}: unsupported`);
|
|
814
814
|
default:
|
|
815
815
|
return new chunk2V7IL4HC_js.GameError("invalid_argument", `${what}: invalid argument`);
|
|
@@ -817,19 +817,19 @@ function failure2(code, what) {
|
|
|
817
817
|
}
|
|
818
818
|
function bindRenderExports(symbols) {
|
|
819
819
|
let bound = {};
|
|
820
|
-
for (let name of
|
|
820
|
+
for (let name of chunk7AAIAVAA_js.RENDER_CORE_EXPORTS) {
|
|
821
821
|
let value = symbols[name];
|
|
822
822
|
if (typeof value != "function") throw new chunk2V7IL4HC_js.GameError("not_initialized", `engine module is missing ${name}`);
|
|
823
823
|
bound[name] = value;
|
|
824
824
|
}
|
|
825
|
-
for (let name of Object.keys(
|
|
825
|
+
for (let name of Object.keys(chunk7AAIAVAA_js.RENDER_FEATURE_EXPORTS)) {
|
|
826
826
|
let value = symbols[name];
|
|
827
827
|
typeof value == "function" && (bound[name] = value);
|
|
828
828
|
}
|
|
829
829
|
return bound;
|
|
830
830
|
}
|
|
831
831
|
function featureAvailable(exports, caps, name) {
|
|
832
|
-
return exports[name] !== void 0 && (caps &
|
|
832
|
+
return exports[name] !== void 0 && (caps & chunk7AAIAVAA_js.RENDER_FEATURE_EXPORTS[name]) !== 0;
|
|
833
833
|
}
|
|
834
834
|
function graphicsCapabilities(render, caps) {
|
|
835
835
|
return {
|
|
@@ -856,16 +856,16 @@ function graphicsCapabilities(render, caps) {
|
|
|
856
856
|
fatLines: (caps & 524288) !== 0,
|
|
857
857
|
text: featuresAvailable(render, caps, 1048576),
|
|
858
858
|
picking: featuresAvailable(render, caps, 2097152),
|
|
859
|
-
pointShadows: (caps &
|
|
859
|
+
pointShadows: (caps & chunkPKOZXD2Q_js.CAP_POINT_SHADOWS) !== 0,
|
|
860
860
|
sky: (caps & 4096) !== 0,
|
|
861
|
-
customProjection: (caps &
|
|
861
|
+
customProjection: (caps & chunkPKOZXD2Q_js.CAP_CUSTOM_PROJECTION) !== 0,
|
|
862
862
|
gpuTiming: (caps & 8388608) !== 0,
|
|
863
863
|
globalIllumination: (caps & 33554432) !== 0,
|
|
864
864
|
rayTracing: (caps & 67108864) !== 0
|
|
865
865
|
};
|
|
866
866
|
}
|
|
867
867
|
function featuresAvailable(exports, caps, cap) {
|
|
868
|
-
return (caps & cap) === 0 ? false : Object.keys(
|
|
868
|
+
return (caps & cap) === 0 ? false : Object.keys(chunk7AAIAVAA_js.RENDER_FEATURE_EXPORTS).filter((name) => chunk7AAIAVAA_js.RENDER_FEATURE_EXPORTS[name] === cap).every((name) => exports[name] !== void 0);
|
|
869
869
|
}
|
|
870
870
|
function concat(a, b) {
|
|
871
871
|
let out = new Uint8Array(a.byteLength + b.byteLength);
|
|
@@ -938,20 +938,20 @@ var EngineGraphics = class {
|
|
|
938
938
|
let force = runtime.symbols.engine_render_force_tier;
|
|
939
939
|
this.forceTierCall = typeof force == "function" ? force : null;
|
|
940
940
|
let quality = runtime.symbols.engine_render_quality_tier;
|
|
941
|
-
if (this.qualityTierCall = typeof quality == "function" ? quality : null, this.handle =
|
|
941
|
+
if (this.qualityTierCall = typeof quality == "function" ? quality : null, this.handle = chunkPKOZXD2Q_js.createWithDescriptor(runtime, options, (desc2) => render.engine_render_create(desc2 === 0 ? (0) : desc2)), this.handle === (0)) throw chunkNZTKLY2W_js.engineSessionFailure(runtime.symbols) ?? new chunk2V7IL4HC_js.GameError("capacity_exceeded", "engine renderer could not be created");
|
|
942
942
|
let buffer = this.buffer, desc = render.engine_render_desc(this.handle);
|
|
943
943
|
this.desc = new Uint32Array(buffer, desc, 64), this.descFloats = new Float32Array(buffer, desc, 64);
|
|
944
944
|
let registers = render.engine_render_registers(this.handle);
|
|
945
945
|
this.registers = new Uint32Array(buffer, registers, 34), this.registerFloats = new Float32Array(buffer, registers, 34);
|
|
946
946
|
let commands = render.engine_render_commands(this.handle);
|
|
947
947
|
this.commandWords = new Uint32Array(buffer, commands, 1024 * 8), this.commandFloats = new Float32Array(buffer, commands, 1024 * 8), this.sync = this.u32(5, 0, 0), this.params = this.f32(3, 0, 0);
|
|
948
|
-
let caps = render.engine_render_capabilities(this.handle), surfaces =
|
|
949
|
-
this.vectorSurfaces = surfaces === null ? null : new
|
|
948
|
+
let caps = render.engine_render_capabilities(this.handle), surfaces = chunkH3OQKK6X_js.engineVectorSurfaceExports(runtime.symbols);
|
|
949
|
+
this.vectorSurfaces = surfaces === null ? null : new chunkH3OQKK6X_js.EngineVectorSurfaces(surfaces, {
|
|
950
950
|
handle: this.handle,
|
|
951
951
|
buffer: () => this.buffer,
|
|
952
952
|
stage: (bytes) => this.stage(bytes),
|
|
953
953
|
flush: () => this.flush()
|
|
954
|
-
}), this.capabilities = { ...graphicsCapabilities(render, caps), vectorSurfaces: this.vectorSurfaces?.cap ?? 0 }, this.caps = caps, this.features = new
|
|
954
|
+
}), this.capabilities = { ...graphicsCapabilities(render, caps), vectorSurfaces: this.vectorSurfaces?.cap ?? 0 }, this.caps = caps, this.features = new chunkPKOZXD2Q_js.EngineFeatures({
|
|
955
955
|
caps: () => this.caps,
|
|
956
956
|
command: (op, target) => this.command(op, target),
|
|
957
957
|
words: this.commandWords,
|
|
@@ -1050,7 +1050,7 @@ var EngineGraphics = class {
|
|
|
1050
1050
|
return code;
|
|
1051
1051
|
}
|
|
1052
1052
|
owns(owner) {
|
|
1053
|
-
let required =
|
|
1053
|
+
let required = chunk7AAIAVAA_js.BUFFER_OWNER_CAPABILITIES[owner];
|
|
1054
1054
|
return required === void 0 || (this.caps & required) !== 0;
|
|
1055
1055
|
}
|
|
1056
1056
|
view(owner, id, slot) {
|
|
@@ -1071,7 +1071,7 @@ var EngineGraphics = class {
|
|
|
1071
1071
|
return this.desc.fill(0), this.desc;
|
|
1072
1072
|
}
|
|
1073
1073
|
stage(bytes) {
|
|
1074
|
-
if (bytes.byteLength > this.scratchBytes && (this.scratch !== 0 && this.runtime.exports.engine_free(this.scratch, this.scratchBytes,
|
|
1074
|
+
if (bytes.byteLength > this.scratchBytes && (this.scratch !== 0 && this.runtime.exports.engine_free(this.scratch, this.scratchBytes, chunk2O2CG465_js.COLUMN_ALIGN), this.scratchBytes = Math.max(bytes.byteLength, chunk2O2CG465_js.COLUMN_ALIGN), this.scratch = this.runtime.exports.engine_alloc(this.scratchBytes, chunk2O2CG465_js.COLUMN_ALIGN), this.scratch === 0))
|
|
1075
1075
|
throw new chunk2V7IL4HC_js.GameError("capacity_exceeded", "engine memory cannot stage asset bytes");
|
|
1076
1076
|
return new Uint8Array(this.buffer, this.scratch, bytes.byteLength).set(bytes), this.scratch;
|
|
1077
1077
|
}
|
|
@@ -1156,7 +1156,7 @@ var EngineGraphics = class {
|
|
|
1156
1156
|
createTexture(desc) {
|
|
1157
1157
|
if (desc.source.kind === "video") {
|
|
1158
1158
|
let d2 = this.clearDesc();
|
|
1159
|
-
return d2[0] = desc.source.width, d2[1] = desc.source.height, d2[8] =
|
|
1159
|
+
return d2[0] = desc.source.width, d2[1] = desc.source.height, d2[8] = chunk7AAIAVAA_js.TEXTURE_KIND_EXTERNAL, this.check(this.abi.engine_render_create_texture(this.handle), "create video texture");
|
|
1160
1160
|
}
|
|
1161
1161
|
if (desc.source.kind !== "pixels")
|
|
1162
1162
|
throw new chunk2V7IL4HC_js.GameError("unsupported_feature", "the Cimplify renderer takes pixel or encoded textures; decode images with loadTexture");
|
|
@@ -1166,7 +1166,7 @@ var EngineGraphics = class {
|
|
|
1166
1166
|
if (data.byteLength !== width * height * depth * texelBytes)
|
|
1167
1167
|
throw new chunk2V7IL4HC_js.GameError("invalid_argument", `a ${format} texture of ${width}x${height}x${depth} takes ${width * height * depth * texelBytes} bytes`);
|
|
1168
1168
|
let d = this.clearDesc();
|
|
1169
|
-
d[0] = width, d[1] = height, d[2] = formatWord, d[8] = desc.kind === "cube" ? 1 : desc.kind === "equirect" ? 2 : desc.kind === "2d-array" ?
|
|
1169
|
+
d[0] = width, d[1] = height, d[2] = formatWord, d[8] = desc.kind === "cube" ? 1 : desc.kind === "equirect" ? 2 : desc.kind === "2d-array" ? chunk7AAIAVAA_js.TEXTURE_KIND_2D_ARRAY : desc.kind === "3d" ? chunk7AAIAVAA_js.TEXTURE_KIND_3D : 0, d[9] = depth, d[3] = desc.colorSpace === "linear" ? 1 : 0, d[4] = desc.wrap === "clamp" ? 1 : desc.wrap === "mirror" ? 2 : 0, d[5] = desc.filter === "nearest" ? 1 : 0, d[6] = desc.mipmaps === false ? 0 : 1, d[7] = desc.flipY ? 1 : 0;
|
|
1170
1170
|
let id = this.check(this.abi.engine_render_create_texture(this.handle), "create texture");
|
|
1171
1171
|
return this.textures.set(id, { data, width, height, depth, texelBytes }), this.copyTexture(id, data), this.requestEncode(id, desc.encode), id;
|
|
1172
1172
|
}
|
|
@@ -1174,7 +1174,7 @@ var EngineGraphics = class {
|
|
|
1174
1174
|
if (encode === void 0 || encode === "none" || !featureAvailable(this.abi, this.caps, "engine_render_encode_texture")) return;
|
|
1175
1175
|
let encodeTexture = this.abi.engine_render_encode_texture;
|
|
1176
1176
|
if (!encodeTexture) return;
|
|
1177
|
-
let mode = encode === "astc" ?
|
|
1177
|
+
let mode = encode === "astc" ? chunk7AAIAVAA_js.TEXTURE_ENCODE_ASTC_4X4 : encode === "bc7" ? chunk7AAIAVAA_js.TEXTURE_ENCODE_BC7 : chunk7AAIAVAA_js.TEXTURE_ENCODE_AUTO;
|
|
1178
1178
|
encodeTexture(this.handle, id, mode);
|
|
1179
1179
|
}
|
|
1180
1180
|
copyTexture(id, data) {
|
|
@@ -1199,7 +1199,7 @@ var EngineGraphics = class {
|
|
|
1199
1199
|
this.flush();
|
|
1200
1200
|
let code = reload(this.handle, texture, this.stage(bytes), bytes.byteLength, (1));
|
|
1201
1201
|
if (code >= 0) return { texture, inPlace: true };
|
|
1202
|
-
if (code !==
|
|
1202
|
+
if (code !== chunk2O2CG465_js.ERROR_INVALID_ARGUMENT) throw failure2(code, "reload texture");
|
|
1203
1203
|
}
|
|
1204
1204
|
let pointer = this.stage(bytes);
|
|
1205
1205
|
return { texture: this.check(this.abi.engine_render_decode_texture(this.handle, pointer, bytes.byteLength, (1)), "decode texture"), inPlace: false };
|
|
@@ -1214,16 +1214,16 @@ var EngineGraphics = class {
|
|
|
1214
1214
|
return;
|
|
1215
1215
|
}
|
|
1216
1216
|
mirror && this.copyRegion(texture, mirror, region);
|
|
1217
|
-
let a = this.command(
|
|
1217
|
+
let a = this.command(chunk7AAIAVAA_js.OP_MARK_TEXTURE_REGION, texture), w = this.commandWords;
|
|
1218
1218
|
w[a] = region.x, w[a + 1] = region.y, w[a + 2] = region.z ?? 0, w[a + 3] = region.width, w[a + 4] = region.height, w[a + 5] = region.depth ?? 1;
|
|
1219
1219
|
}
|
|
1220
1220
|
destroyTexture(texture) {
|
|
1221
1221
|
this.command(20, texture), this.textures.delete(texture);
|
|
1222
1222
|
}
|
|
1223
1223
|
createMaterial(desc) {
|
|
1224
|
-
|
|
1224
|
+
chunkPKOZXD2Q_js.refuseUndrawnPhysicalFields(desc);
|
|
1225
1225
|
let d = this.clearDesc(), f = this.descFloats;
|
|
1226
|
-
d[0] =
|
|
1226
|
+
d[0] = chunkPKOZXD2Q_js.MATERIAL_KINDS[desc.kind];
|
|
1227
1227
|
let color = "color" in desc && desc.color !== void 0 ? desc.color : 16777215;
|
|
1228
1228
|
this.writeHex(f, 1, color), f[4] = desc.opacity ?? 1, f[11] = desc.alphaTest ?? 0, f[25] = (1.5), f[6] = (1), f[21] = (1);
|
|
1229
1229
|
let flags = 0;
|
|
@@ -1231,10 +1231,10 @@ var EngineGraphics = class {
|
|
|
1231
1231
|
let write = (word, value) => {
|
|
1232
1232
|
d[word] = value;
|
|
1233
1233
|
};
|
|
1234
|
-
|
|
1235
|
-
let extras =
|
|
1234
|
+
chunkPKOZXD2Q_js.writeMaterialExtension(desc, write);
|
|
1235
|
+
let extras = chunkPKOZXD2Q_js.extraTextures(desc);
|
|
1236
1236
|
for (let i = 0; i < 8; i++) d[51 + i] = extras[i] ?? 0;
|
|
1237
|
-
|
|
1237
|
+
chunkPKOZXD2Q_js.writeMaterialFeatures(desc, d, f), flags |= chunkPKOZXD2Q_js.materialFeatureFlags(desc), flags |= chunkPKOZXD2Q_js.writeMaterialTint(desc, d);
|
|
1238
1238
|
let fragment = null, uniforms = null;
|
|
1239
1239
|
switch (desc.kind) {
|
|
1240
1240
|
case "standard":
|
|
@@ -1249,7 +1249,7 @@ var EngineGraphics = class {
|
|
|
1249
1249
|
case "hair": {
|
|
1250
1250
|
flags |= 64, desc.flatShading && (flags |= 32), f[6] = desc.roughness ?? (1), this.writeHex(f, 7, desc.emissive ?? 0), f[10] = desc.emissiveIntensity ?? 1, [desc.map, desc.normalMap, desc.roughnessMap, void 0, desc.emissiveMap, desc.aoMap].forEach((texture, i) => {
|
|
1251
1251
|
d[15 + i] = texture ?? 0;
|
|
1252
|
-
}),
|
|
1252
|
+
}), chunkPKOZXD2Q_js.writeCharacterWords(desc, write);
|
|
1253
1253
|
break;
|
|
1254
1254
|
}
|
|
1255
1255
|
case "unlit":
|
|
@@ -1273,7 +1273,7 @@ var EngineGraphics = class {
|
|
|
1273
1273
|
}
|
|
1274
1274
|
}
|
|
1275
1275
|
d[12] = flags;
|
|
1276
|
-
let transforms = desc.textureTransforms ? new Float32Array(
|
|
1276
|
+
let transforms = desc.textureTransforms ? new Float32Array(chunk7AAIAVAA_js.MATERIAL_SLOTS.length * 8) : null, transformed = transforms !== null && chunkPKOZXD2Q_js.writeTextureTransforms(desc, transforms, write), vertex = desc.kind === "shader" && desc.shader.wgsl.vertex ? UTF8.encode(desc.shader.wgsl.vertex) : null, staged = fragment && vertex ? concat(fragment, vertex) : fragment, pointer = staged ? this.stage(staged) : 0, fragmentBytes = fragment?.byteLength ?? 0, id = this.check(
|
|
1277
1277
|
this.abi.engine_render_create_material(
|
|
1278
1278
|
this.handle,
|
|
1279
1279
|
pointer,
|
|
@@ -1282,7 +1282,7 @@ var EngineGraphics = class {
|
|
|
1282
1282
|
vertex?.byteLength ?? 0
|
|
1283
1283
|
),
|
|
1284
1284
|
"create material"
|
|
1285
|
-
), clipped = (desc.clippingPlanes?.length ?? 0) > 0 &&
|
|
1285
|
+
), clipped = (desc.clippingPlanes?.length ?? 0) > 0 && chunkPKOZXD2Q_js.writePlanes(desc, this.f32(7, id, 0));
|
|
1286
1286
|
if (transforms && transformed && this.f32(8, id, 0).set(transforms), (clipped || transformed) && this.command(13, id), uniforms && desc.kind === "shader") {
|
|
1287
1287
|
this.uniforms.set(id, uniforms);
|
|
1288
1288
|
for (let [name, uniform] of Object.entries(desc.uniforms ?? {}))
|
|
@@ -1302,7 +1302,7 @@ var EngineGraphics = class {
|
|
|
1302
1302
|
}
|
|
1303
1303
|
setMaterialTexture(material, slot, texture) {
|
|
1304
1304
|
let a = this.command(14, material);
|
|
1305
|
-
this.commandWords[a] =
|
|
1305
|
+
this.commandWords[a] = chunkPKOZXD2Q_js.materialSlotIndex(slot), this.commandWords[a + 1] = texture ?? 0;
|
|
1306
1306
|
}
|
|
1307
1307
|
uniform(material, name) {
|
|
1308
1308
|
let slots = this.uniforms.get(material);
|
|
@@ -1334,10 +1334,10 @@ var EngineGraphics = class {
|
|
|
1334
1334
|
this.u32(2, material, 0)[slot.offset] = texture, this.command(13, material);
|
|
1335
1335
|
}
|
|
1336
1336
|
setMaterialState(material, state) {
|
|
1337
|
-
|
|
1338
|
-
let a = this.command(
|
|
1337
|
+
chunkPKOZXD2Q_js.writeMaterialState(state, (word, value) => {
|
|
1338
|
+
let a = this.command(chunk7AAIAVAA_js.OP_SET_MATERIAL_WORD, material);
|
|
1339
1339
|
this.commandWords[a] = word, this.commandWords[a + 1] = value;
|
|
1340
|
-
}), (state.clippingPlanes?.length ?? 0) > 0 &&
|
|
1340
|
+
}), (state.clippingPlanes?.length ?? 0) > 0 && chunkPKOZXD2Q_js.writePlanes(state, this.f32(7, material, 0)) && this.command(13, material);
|
|
1341
1341
|
}
|
|
1342
1342
|
destroyMaterial(material) {
|
|
1343
1343
|
this.command(15, material), this.uniforms.delete(material), this.features.forgetMaterial(material);
|
|
@@ -1346,28 +1346,28 @@ var EngineGraphics = class {
|
|
|
1346
1346
|
if (!this.capabilities.particles) throw new chunk2V7IL4HC_js.GameError("unsupported_feature", "this engine build has no particles");
|
|
1347
1347
|
this.flush(), writeEmitterDesc(this.clearDesc(), this.descFloats, desc);
|
|
1348
1348
|
let id = this.check(this.feature("engine_render_create_emitter")(this.handle), "create emitter");
|
|
1349
|
-
return desc.sizeCurve && sampleCurve(desc.sizeCurve, this.f32(9, id, 0)), desc.colorCurve && sampleCurve(desc.colorCurve, this.f32(9, id, 1)), (desc.sizeCurve || desc.colorCurve) && this.command(
|
|
1349
|
+
return desc.sizeCurve && sampleCurve(desc.sizeCurve, this.f32(9, id, 0)), desc.colorCurve && sampleCurve(desc.colorCurve, this.f32(9, id, 1)), (desc.sizeCurve || desc.colorCurve) && this.command(chunk7AAIAVAA_js.OP_MARK_EMITTER, id), id;
|
|
1350
1350
|
}
|
|
1351
1351
|
emit(emitter, count) {
|
|
1352
|
-
this.commandWords[this.command(
|
|
1352
|
+
this.commandWords[this.command(chunk7AAIAVAA_js.OP_EMIT, emitter)] = count;
|
|
1353
1353
|
}
|
|
1354
1354
|
setEmitterRate(emitter, rate) {
|
|
1355
|
-
this.commandFloats[this.command(
|
|
1355
|
+
this.commandFloats[this.command(chunk7AAIAVAA_js.OP_SET_EMITTER_RATE, emitter)] = rate;
|
|
1356
1356
|
}
|
|
1357
1357
|
clearEmitter(emitter) {
|
|
1358
|
-
this.command(
|
|
1358
|
+
this.command(chunk7AAIAVAA_js.OP_CLEAR_EMITTER, emitter);
|
|
1359
1359
|
}
|
|
1360
1360
|
destroyEmitter(emitter) {
|
|
1361
|
-
this.command(
|
|
1361
|
+
this.command(chunk7AAIAVAA_js.OP_DESTROY_EMITTER, emitter);
|
|
1362
1362
|
}
|
|
1363
1363
|
setRenderOrder(node, order) {
|
|
1364
|
-
this.commandWords[this.command(
|
|
1364
|
+
this.commandWords[this.command(chunk7AAIAVAA_js.OP_SET_RENDER_ORDER, node)] = order | 0;
|
|
1365
1365
|
}
|
|
1366
1366
|
setShadow(light, shadow) {
|
|
1367
1367
|
let room = 6, a = 0, used = room;
|
|
1368
1368
|
for (let key of Object.keys(shadow)) {
|
|
1369
1369
|
let value = shadow[key];
|
|
1370
|
-
value !== void 0 && (used === room && (a = this.command(
|
|
1370
|
+
value !== void 0 && (used === room && (a = this.command(chunk7AAIAVAA_js.OP_SET_SHADOW, light), used = 0), this.commandWords[a + used] = SHADOW_WORDS[key], this.commandWords[a + used + 1] = shadowWord(key, value), used += 2);
|
|
1371
1371
|
}
|
|
1372
1372
|
used < room && (this.commandWords[a + used] = 0);
|
|
1373
1373
|
}
|
|
@@ -1391,7 +1391,7 @@ var EngineGraphics = class {
|
|
|
1391
1391
|
d[0] = 2, d[1] = desc.geometry, d[2] = desc.material, d[3] = this.shadowFlags(desc.castShadow, desc.receiveShadow, desc.giExclude);
|
|
1392
1392
|
let { parents, bindPose, inverseBindMatrices } = desc.skeleton;
|
|
1393
1393
|
if (bindPose.length !== parents.length * (10)) throw new chunk2V7IL4HC_js.GameError("invalid_argument", "bind pose needs ten floats per bone");
|
|
1394
|
-
let parentBytes = Math.ceil(parents.byteLength /
|
|
1394
|
+
let parentBytes = Math.ceil(parents.byteLength / chunk2O2CG465_js.COLUMN_ALIGN) * chunk2O2CG465_js.COLUMN_ALIGN, poseBytes = Math.ceil(bindPose.byteLength / chunk2O2CG465_js.COLUMN_ALIGN) * chunk2O2CG465_js.COLUMN_ALIGN, total = new Uint8Array(parentBytes + poseBytes + (inverseBindMatrices?.byteLength ?? 0));
|
|
1395
1395
|
total.set(new Uint8Array(parents.buffer, parents.byteOffset, parents.byteLength), 0), total.set(new Uint8Array(bindPose.buffer, bindPose.byteOffset, bindPose.byteLength), parentBytes), inverseBindMatrices && total.set(new Uint8Array(inverseBindMatrices.buffer, inverseBindMatrices.byteOffset, inverseBindMatrices.byteLength), parentBytes + poseBytes);
|
|
1396
1396
|
let base = this.stage(total);
|
|
1397
1397
|
d[18] = parents.length, d[19] = base, d[20] = base + parentBytes, d[21] = inverseBindMatrices ? base + parentBytes + poseBytes : 0;
|
|
@@ -1412,7 +1412,7 @@ var EngineGraphics = class {
|
|
|
1412
1412
|
case "decal":
|
|
1413
1413
|
break;
|
|
1414
1414
|
case "light": {
|
|
1415
|
-
d[0] = 7, d[5] =
|
|
1415
|
+
d[0] = 7, d[5] = chunkPKOZXD2Q_js.LIGHT_KINDS[desc.light], d[6] = desc.color ?? 16777215, d[12] = desc.groundColor ?? (4473924), d[3] = desc.castShadow ? 1 : 0, d[13] = desc.shadowMapSize ?? 0, f[7] = desc.intensity ?? 1, f[8] = desc.distance ?? 0, f[9] = desc.decay ?? (2), f[10] = desc.angle ?? DEFAULT_SPOT_ANGLE, f[11] = desc.penumbra ?? 0, this.writeShadow(d, desc.shadow);
|
|
1416
1416
|
break;
|
|
1417
1417
|
}
|
|
1418
1418
|
case "particles":
|
|
@@ -1431,7 +1431,7 @@ var EngineGraphics = class {
|
|
|
1431
1431
|
return this.textNodes.set(node2, { font, mode }), desc.text && this.setNodeText(node2, desc.text), node2;
|
|
1432
1432
|
}
|
|
1433
1433
|
}
|
|
1434
|
-
|
|
1434
|
+
chunkPKOZXD2Q_js.writeNodeFeatures(desc, d, f, desc.kind === "sprite" ? this.features.spriteRotation(desc.material) : 0);
|
|
1435
1435
|
let node = this.check(this.abi.engine_render_create_node(this.handle), `create ${desc.kind} node`);
|
|
1436
1436
|
return this.features.node(node, desc), node;
|
|
1437
1437
|
}
|
|
@@ -1519,19 +1519,19 @@ var EngineGraphics = class {
|
|
|
1519
1519
|
}
|
|
1520
1520
|
governorPressure() {
|
|
1521
1521
|
this.check(this.abi.engine_render_stats(this.handle), "stats");
|
|
1522
|
-
let word = this.registers[
|
|
1522
|
+
let word = this.registers[chunk7AAIAVAA_js.STAT_THERMAL_TIER];
|
|
1523
1523
|
return Math.max(word & (255), word >>> (28) & (15));
|
|
1524
1524
|
}
|
|
1525
1525
|
raycast(origin, direction, far, layers, out) {
|
|
1526
1526
|
let pointer = this.pickScratch(), ray = new Float32Array(this.buffer, pointer, 7);
|
|
1527
1527
|
ray[0] = origin[0], ray[1] = origin[1], ray[2] = origin[2], ray[3] = direction[0], ray[4] = direction[1], ray[5] = direction[2], ray[6] = far;
|
|
1528
|
-
let result = pointer + 7 *
|
|
1528
|
+
let result = pointer + 7 * chunk2O2CG465_js.WORD_BYTES;
|
|
1529
1529
|
if (this.check(this.feature("engine_render_raycast")(this.handle, pointer, layers >>> 0, result), "raycast") !== (1)) return false;
|
|
1530
1530
|
let words = new Uint32Array(this.buffer, result, 11), floats = new Float32Array(this.buffer, result, 11);
|
|
1531
1531
|
return out.node = words[0], out.instance = words[1], out.triangle = words[2], out.distance = floats[3], out.point.set(floats.subarray(4, 7)), out.barycentric.set(floats.subarray(7, 9)), out.uv.set(floats.subarray(9, 11)), true;
|
|
1532
1532
|
}
|
|
1533
1533
|
pickScratch() {
|
|
1534
|
-
if (this.pickPointer === 0 && (this.pickPointer = this.runtime.exports.engine_alloc(18 *
|
|
1534
|
+
if (this.pickPointer === 0 && (this.pickPointer = this.runtime.exports.engine_alloc(18 * chunk2O2CG465_js.WORD_BYTES, chunk2O2CG465_js.COLUMN_ALIGN), this.pickPointer === 0))
|
|
1535
1535
|
throw new chunk2V7IL4HC_js.GameError("capacity_exceeded", "engine memory cannot hold the pick scratch");
|
|
1536
1536
|
return this.pickPointer;
|
|
1537
1537
|
}
|
|
@@ -1551,8 +1551,8 @@ var EngineGraphics = class {
|
|
|
1551
1551
|
this.commandWords[this.command(4, node)] = material;
|
|
1552
1552
|
}
|
|
1553
1553
|
setNodeText(node, text) {
|
|
1554
|
-
let needed = Math.max(text.length * (3),
|
|
1555
|
-
if (needed > this.textBytes && (this.textPointer !== 0 && this.runtime.exports.engine_free(this.textPointer, this.textBytes,
|
|
1554
|
+
let needed = Math.max(text.length * (3), chunk2O2CG465_js.COLUMN_ALIGN);
|
|
1555
|
+
if (needed > this.textBytes && (this.textPointer !== 0 && this.runtime.exports.engine_free(this.textPointer, this.textBytes, chunk2O2CG465_js.COLUMN_ALIGN), this.textBytes = needed, this.textPointer = this.runtime.exports.engine_alloc(needed, chunk2O2CG465_js.COLUMN_ALIGN), this.textPointer === 0))
|
|
1556
1556
|
throw new chunk2V7IL4HC_js.GameError("capacity_exceeded", "engine memory cannot stage text");
|
|
1557
1557
|
let written = UTF8.encodeInto(text, new Uint8Array(this.buffer, this.textPointer, this.textBytes)).written;
|
|
1558
1558
|
this.check(this.feature("engine_render_set_text")(this.handle, node, this.textPointer, written), "set text");
|
|
@@ -1571,10 +1571,10 @@ var EngineGraphics = class {
|
|
|
1571
1571
|
for (let i = 0; i < 16; i++) out[offset + i] = scratch[i];
|
|
1572
1572
|
}
|
|
1573
1573
|
createPoseReader(nodes) {
|
|
1574
|
-
let count = nodes.length, bytes = count *
|
|
1574
|
+
let count = nodes.length, bytes = count * chunk2O2CG465_js.WORD_BYTES * (1 + chunk7AAIAVAA_js.NODE_POSE_FLOATS), pointer = count === 0 ? 0 : this.runtime.exports.engine_alloc(bytes, chunk2O2CG465_js.COLUMN_ALIGN);
|
|
1575
1575
|
if (count > 0 && pointer === 0) throw new chunk2V7IL4HC_js.GameError("capacity_exceeded", "engine memory cannot hold a bone set");
|
|
1576
1576
|
count > 0 && new Uint32Array(this.buffer, pointer, count).set(nodes);
|
|
1577
|
-
let reader = { pointer, bytes, count, out: pointer + count *
|
|
1577
|
+
let reader = { pointer, bytes, count, out: pointer + count * chunk2O2CG465_js.WORD_BYTES, view: null }, free = this.poseReaders.indexOf(null, 1);
|
|
1578
1578
|
return free > 0 ? (this.poseReaders[free] = reader, free) : (this.poseReaders.length === 0 && this.poseReaders.push(null), this.poseReaders.push(reader), this.poseReaders.length - 1);
|
|
1579
1579
|
}
|
|
1580
1580
|
poseReader(reader) {
|
|
@@ -1587,16 +1587,16 @@ var EngineGraphics = class {
|
|
|
1587
1587
|
if (reader.count === 0) return;
|
|
1588
1588
|
this.flush(), this.check(this.feature("engine_render_node_poses")(this.handle, reader.pointer, reader.count, reader.out), "read bone poses");
|
|
1589
1589
|
let view = reader.view;
|
|
1590
|
-
(view === null || view.buffer !== this.buffer) && (view = new Float32Array(this.buffer, reader.out, reader.count *
|
|
1590
|
+
(view === null || view.buffer !== this.buffer) && (view = new Float32Array(this.buffer, reader.out, reader.count * chunk7AAIAVAA_js.NODE_POSE_FLOATS), reader.view = view);
|
|
1591
1591
|
for (let i = 0; i < view.length; i++) out[offset + i] = view[i];
|
|
1592
1592
|
}
|
|
1593
1593
|
destroyPoseReader(id) {
|
|
1594
1594
|
let reader = this.poseReader(id);
|
|
1595
|
-
reader.pointer !== 0 && this.runtime.exports.engine_free(reader.pointer, reader.bytes,
|
|
1595
|
+
reader.pointer !== 0 && this.runtime.exports.engine_free(reader.pointer, reader.bytes, chunk2O2CG465_js.COLUMN_ALIGN), this.poseReaders[id] = null;
|
|
1596
1596
|
}
|
|
1597
1597
|
nodeMatrixScratch() {
|
|
1598
1598
|
if (!this.matrixScratch) {
|
|
1599
|
-
let pointer = this.runtime.exports.engine_alloc(16 *
|
|
1599
|
+
let pointer = this.runtime.exports.engine_alloc(16 * chunk2O2CG465_js.WORD_BYTES, chunk2O2CG465_js.COLUMN_ALIGN);
|
|
1600
1600
|
if (pointer === 0) throw new chunk2V7IL4HC_js.GameError("capacity_exceeded", "engine memory cannot hold a matrix");
|
|
1601
1601
|
this.matrixScratch = new Float32Array(this.buffer, pointer, 16);
|
|
1602
1602
|
}
|
|
@@ -1625,7 +1625,7 @@ var EngineGraphics = class {
|
|
|
1625
1625
|
this.command(6, node);
|
|
1626
1626
|
}
|
|
1627
1627
|
setInstanceFeed(node, table, columns, hostReads, pose) {
|
|
1628
|
-
if (this.feedSupport === null && (this.feedSupport = engineAdvertises(this.runtime,
|
|
1628
|
+
if (this.feedSupport === null && (this.feedSupport = engineAdvertises(this.runtime, chunk7AAIAVAA_js.RENDER_KERNEL_INSTANCES_FEATURE)), !this.feedSupport || columns.length !== 4 || pose !== void 0 && (pose.length !== 2 || !this.posesSupported())) return false;
|
|
1629
1629
|
let at = this.command(64, node);
|
|
1630
1630
|
this.commandWords[at] = table;
|
|
1631
1631
|
for (let k = 0; k < 4; k++) this.commandWords[at + 1 + k] = columns[k];
|
|
@@ -1641,10 +1641,10 @@ var EngineGraphics = class {
|
|
|
1641
1641
|
return this.commandWords[at] = model, this.commandWords[at + 1] = skin, this.commandWords[at + 2] = firstClip, this.commandWords[at + 3] = clips, this.commandWords[at + 4] = frames, true;
|
|
1642
1642
|
}
|
|
1643
1643
|
posesSupported() {
|
|
1644
|
-
return this.poseSupport === null && (this.poseSupport = engineAdvertises(this.runtime,
|
|
1644
|
+
return this.poseSupport === null && (this.poseSupport = engineAdvertises(this.runtime, chunk7AAIAVAA_js.RENDER_FEED_POSE_FEATURE)), this.poseSupport;
|
|
1645
1645
|
}
|
|
1646
1646
|
requireMedia() {
|
|
1647
|
-
if (this.mediaSupport === null && (this.mediaSupport = engineAdvertises(this.runtime,
|
|
1647
|
+
if (this.mediaSupport === null && (this.mediaSupport = engineAdvertises(this.runtime, chunk7AAIAVAA_js.MEDIA_VOLUME_FEATURE)), !this.mediaSupport) throw new chunk2V7IL4HC_js.GameError("unsupported_feature", `this engine build has no media volumes (feature ${chunk7AAIAVAA_js.MEDIA_VOLUME_FEATURE}); update the app to use them`);
|
|
1648
1648
|
}
|
|
1649
1649
|
liveMedium(medium) {
|
|
1650
1650
|
let id = medium;
|
|
@@ -1652,7 +1652,7 @@ var EngineGraphics = class {
|
|
|
1652
1652
|
return id;
|
|
1653
1653
|
}
|
|
1654
1654
|
sendMedium(op, id, desc) {
|
|
1655
|
-
chunk3C4C654I_js.writeMediumDesc(this.mediumWords, desc), this.flush(), this.f32(
|
|
1655
|
+
chunk3C4C654I_js.writeMediumDesc(this.mediumWords, desc), this.flush(), this.f32(chunkPKOZXD2Q_js.OWNER_STAGING, 0, 0).set(this.mediumWords), this.command(op, id), this.flush(), this.mediaViews[id] = null;
|
|
1656
1656
|
}
|
|
1657
1657
|
createMedium(desc) {
|
|
1658
1658
|
this.requireMedia();
|
|
@@ -1715,11 +1715,11 @@ var EngineGraphics = class {
|
|
|
1715
1715
|
let d = this.clearDesc(), f = this.descFloats, background = desc.background;
|
|
1716
1716
|
d[2] = 0, background && "color" in background ? (d[0] = 1, d[1] = background.color) : background && "texture" in background ? (d[0] = 2, d[2] = background.texture) : background ? d[0] = 3 : d[0] = 1, d[3] = desc.environment ?? 0, f[15] = desc.environmentIntensity ?? 1, f[16] = desc.environmentRotation ?? 0, f[17] = desc.backgroundBlurriness ?? 0, f[18] = desc.backgroundIntensity ?? 1;
|
|
1717
1717
|
let fog = desc.fog;
|
|
1718
|
-
fog && (d[4] = 1, d[5] = fog.color, d[11] =
|
|
1718
|
+
fog && (d[4] = 1, d[5] = fog.color, d[11] = chunk7AAIAVAA_js.FOG_MODES.indexOf(fog.mode ?? "linear"), fog.mode === "exp2" || fog.mode === "height" ? f[12] = fog.density : (f[6] = fog.near, f[7] = fog.far), fog.mode === "height" && (f[13] = fog.height, f[14] = fog.falloff)), d[8] = Math.max(0, chunk7AAIAVAA_js.TONE_MAPPINGS.indexOf(desc.toneMapping ?? "aces")), d[chunk7AAIAVAA_js.ENV_TONE_CURVE] = desc.toneCurve ?? 0, f[9] = desc.exposure ?? 1, d[10] = desc.shadows === false ? 0 : 1;
|
|
1719
1719
|
let gi = desc.gi;
|
|
1720
|
-
if (gi && (d[
|
|
1720
|
+
if (gi && (d[chunk7AAIAVAA_js.ENV_GI] = Math.max(0, chunk7AAIAVAA_js.GI_MODES.indexOf(gi.mode ?? "field")), f[chunk7AAIAVAA_js.ENV_GI_INTENSITY] = gi.intensity ?? 1, f[chunk7AAIAVAA_js.ENV_GI_SPACING] = gi.spacing ?? 1, f[chunk7AAIAVAA_js.ENV_GI_SUN_ANGLE] = gi.sunAngle ?? 0.53), chunkPKOZXD2Q_js.writeSky(desc, d, f), this.check(this.abi.engine_render_set_environment(this.handle), "set environment"), desc.volumetrics)
|
|
1721
1721
|
for (let [at, chunk] of volumetricChunks(volumetricWords(desc.volumetrics))) {
|
|
1722
|
-
let a = this.command(
|
|
1722
|
+
let a = this.command(chunk7AAIAVAA_js.OP_SET_VOLUMETRICS, 0);
|
|
1723
1723
|
this.commandWords[a] = at, chunk.forEach((value, k) => {
|
|
1724
1724
|
this.commandFloats[a + 1 + k] = value;
|
|
1725
1725
|
});
|
|
@@ -1727,13 +1727,13 @@ var EngineGraphics = class {
|
|
|
1727
1727
|
}
|
|
1728
1728
|
createRenderTarget(desc) {
|
|
1729
1729
|
let d = this.clearDesc();
|
|
1730
|
-
d[0] = desc.width, d[1] = desc.height, d[2] = desc.format === "rgba16f" ? 1 : desc.format === "rgba32f" ? 2 : 0, d[3] = desc.depth === false ? 0 : 1, d[4] = desc.samples ?? 1, d[
|
|
1730
|
+
d[0] = desc.width, d[1] = desc.height, d[2] = desc.format === "rgba16f" ? 1 : desc.format === "rgba32f" ? 2 : 0, d[3] = desc.depth === false ? 0 : 1, d[4] = desc.samples ?? 1, d[chunk7AAIAVAA_js.TARGET_KIND] = desc.kind === "cube" ? chunk7AAIAVAA_js.TARGET_KIND_CUBE : desc.kind === "2d-array" ? chunk7AAIAVAA_js.TARGET_KIND_ARRAY : chunk7AAIAVAA_js.TARGET_KIND_2D, d[chunk7AAIAVAA_js.TARGET_LAYERS] = desc.layers ?? 1, d[chunk7AAIAVAA_js.TARGET_SAMPLED_DEPTH] = desc.sampleDepth ? 1 : 0, d[chunk7AAIAVAA_js.TARGET_COLORS] = desc.colors ?? 1;
|
|
1731
1731
|
let id = this.check(this.abi.engine_render_create_target(this.handle), "create render target");
|
|
1732
1732
|
this.targetTextures.set(id, this.registers[30]);
|
|
1733
|
-
let depth = d[
|
|
1733
|
+
let depth = d[chunk7AAIAVAA_js.TARGET_TEXTURES + chunk7AAIAVAA_js.TARGET_MAX_COLORS - 1];
|
|
1734
1734
|
desc.sampleDepth && depth !== 0 && this.targetDepths.set(id, depth), this.targetFormats.set(id, desc.format ?? "rgba8");
|
|
1735
1735
|
let extras = [];
|
|
1736
|
-
for (let k = 1; k < (desc.colors ?? 1); k++) extras.push(d[
|
|
1736
|
+
for (let k = 1; k < (desc.colors ?? 1); k++) extras.push(d[chunk7AAIAVAA_js.TARGET_TEXTURES + k - 1]);
|
|
1737
1737
|
return this.targetAttachments.set(id, extras), id;
|
|
1738
1738
|
}
|
|
1739
1739
|
renderTargetAttachment(target, attachment) {
|
|
@@ -1761,7 +1761,7 @@ var EngineGraphics = class {
|
|
|
1761
1761
|
this.command(27, target), this.targetTextures.delete(target), this.targetDepths.delete(target), this.targetFormats.delete(target), this.targetAttachments.delete(target);
|
|
1762
1762
|
}
|
|
1763
1763
|
createPostChain(desc) {
|
|
1764
|
-
if (desc.effects.length >
|
|
1764
|
+
if (desc.effects.length > chunk7AAIAVAA_js.MAX_CHAIN_EFFECTS) throw new chunk2V7IL4HC_js.GameError("invalid_argument", `post chains hold ${chunk7AAIAVAA_js.MAX_CHAIN_EFFECTS} effects`);
|
|
1765
1765
|
let shaders = desc.effects.map((effect) => effect.kind === "shader" ? postShader(effect) : null), params = desc.effects.map((effect, e) => {
|
|
1766
1766
|
let shader = shaders[e];
|
|
1767
1767
|
if (shader) return shader.values;
|
|
@@ -1777,7 +1777,7 @@ var EngineGraphics = class {
|
|
|
1777
1777
|
}
|
|
1778
1778
|
let setShader = shaders.some((shader) => shader !== null) ? this.feature("engine_render_set_chain_shader") : null, id = this.check(this.abi.engine_render_create_chain(this.handle), "create post chain");
|
|
1779
1779
|
for (let e = inline; e < desc.effects.length; e++) {
|
|
1780
|
-
let a = this.command(
|
|
1780
|
+
let a = this.command(chunk7AAIAVAA_js.OP_SET_EFFECT, id);
|
|
1781
1781
|
this.commandWords[a] = e, this.commandWords[a + 1] = EFFECT_KINDS[desc.effects[e].kind], params[e].forEach((value, p) => {
|
|
1782
1782
|
this.commandFloats[a + 2 + p] = value;
|
|
1783
1783
|
});
|
|
@@ -1788,10 +1788,10 @@ var EngineGraphics = class {
|
|
|
1788
1788
|
this.check(setShader(this.handle, id, e, pointer, shader.source.byteLength), "set post shader");
|
|
1789
1789
|
}), desc.effects.forEach((effect, e) => {
|
|
1790
1790
|
if (!(effect.kind !== "shader" || effect.textures === void 0)) {
|
|
1791
|
-
if (effect.textures.length >
|
|
1792
|
-
throw new chunk2V7IL4HC_js.GameError("invalid_argument", `post shaders take ${
|
|
1791
|
+
if (effect.textures.length > chunk7AAIAVAA_js.POST_EFFECT_TEXTURES)
|
|
1792
|
+
throw new chunk2V7IL4HC_js.GameError("invalid_argument", `post shaders take ${chunk7AAIAVAA_js.POST_EFFECT_TEXTURES} textures`);
|
|
1793
1793
|
effect.textures.forEach((texture, slot) => {
|
|
1794
|
-
let a = this.command(
|
|
1794
|
+
let a = this.command(chunk7AAIAVAA_js.OP_SET_EFFECT_TEXTURE, id);
|
|
1795
1795
|
this.commandWords[a] = e, this.commandWords[a + 1] = slot, this.commandWords[a + 2] = texture;
|
|
1796
1796
|
});
|
|
1797
1797
|
}
|
|
@@ -1812,11 +1812,11 @@ var EngineGraphics = class {
|
|
|
1812
1812
|
this.command(23, chain ?? 0);
|
|
1813
1813
|
}
|
|
1814
1814
|
setWeather(state) {
|
|
1815
|
-
let w = weatherWords(state), a = this.command(
|
|
1815
|
+
let w = weatherWords(state), a = this.command(chunk7AAIAVAA_js.OP_SET_WEATHER, w.snow ? 1 : 0), f = this.commandFloats;
|
|
1816
1816
|
f[a] = w.cloudCover, f[a + 1] = w.haze, f[a + 2] = w.precipitation, f[a + 3] = w.wetness, f[a + 4] = w.windX, f[a + 5] = w.windZ;
|
|
1817
1817
|
}
|
|
1818
1818
|
setTimeOfDay(hours, latitude, dayOfYear) {
|
|
1819
|
-
let a = this.command(
|
|
1819
|
+
let a = this.command(chunk7AAIAVAA_js.OP_SET_TIME_OF_DAY, 0), f = this.commandFloats;
|
|
1820
1820
|
f[a] = hours, f[a + 1] = latitude ?? UNSET, f[a + 2] = dayOfYear ?? UNSET;
|
|
1821
1821
|
}
|
|
1822
1822
|
destroyPostChain(chain) {
|
|
@@ -1825,8 +1825,8 @@ var EngineGraphics = class {
|
|
|
1825
1825
|
createRenderPass(desc) {
|
|
1826
1826
|
this.flush();
|
|
1827
1827
|
let d = this.clearDesc(), f = this.descFloats;
|
|
1828
|
-
return d[0] = desc.camera, d[1] = desc.target ?? 0, d[2] = (desc.layers ?? 4294967295) >>> 0, d[3] = desc.clearColor ?? 0, f[4] = desc.clearAlpha ?? 1, d[5] = (desc.order ?? 0) >>> 0, d[
|
|
1829
|
-
f[
|
|
1828
|
+
return d[0] = desc.camera, d[1] = desc.target ?? 0, d[2] = (desc.layers ?? 4294967295) >>> 0, d[3] = desc.clearColor ?? 0, f[4] = desc.clearAlpha ?? 1, d[5] = (desc.order ?? 0) >>> 0, d[chunk7AAIAVAA_js.PASS_SLICE] = desc.slice ?? 0, d[chunk7AAIAVAA_js.PASS_FLAGS] = (desc.cubeFace ? chunk7AAIAVAA_js.PASS_FLAG_CUBE_FACE : 0) | (desc.reflect ? chunk7AAIAVAA_js.PASS_FLAG_REFLECT : 0) | (desc.once ? chunk7AAIAVAA_js.PASS_FLAG_ONCE : 0), desc.reflect?.forEach((v, i) => {
|
|
1829
|
+
f[chunk7AAIAVAA_js.PASS_PLANE + i] = v;
|
|
1830
1830
|
}), desc.viewport && (d[6] = 1, desc.viewport.forEach((v, i) => {
|
|
1831
1831
|
f[7 + i] = v;
|
|
1832
1832
|
})), this.check(this.abi.engine_render_create_pass(this.handle), "create render pass");
|
|
@@ -1863,7 +1863,7 @@ var EngineGraphics = class {
|
|
|
1863
1863
|
this.flush();
|
|
1864
1864
|
let code = reload(this.handle, model, this.stage(bytes), bytes.byteLength);
|
|
1865
1865
|
if (code >= 0) return { model: this.readModel(model, previous), inPlace: true };
|
|
1866
|
-
if (code !==
|
|
1866
|
+
if (code !== chunk2O2CG465_js.ERROR_INVALID_ARGUMENT) throw failure2(code, "reload model");
|
|
1867
1867
|
}
|
|
1868
1868
|
let id = this.check(this.abi.engine_render_load_model(this.handle, this.stage(bytes), bytes.byteLength), "load model");
|
|
1869
1869
|
return { model: this.readModel(id, null), inPlace: false };
|
|
@@ -1892,7 +1892,7 @@ var EngineGraphics = class {
|
|
|
1892
1892
|
}
|
|
1893
1893
|
setTint(node, tint) {
|
|
1894
1894
|
let at = this.command(63, node);
|
|
1895
|
-
|
|
1895
|
+
chunkPKOZXD2Q_js.writeTintWords(tint, this.commandWords, at);
|
|
1896
1896
|
}
|
|
1897
1897
|
modelMaterials(model, count) {
|
|
1898
1898
|
let [ids] = this.view(12, model, 0);
|
|
@@ -1980,21 +1980,21 @@ var EngineGraphics = class {
|
|
|
1980
1980
|
out.nodes = r[0], out.geometries = r[1], out.materials = r[2], out.textures = r[3], out.renderTargets = r[4], out.postChains = r[5], out.renderPasses = r[6], out.frames = r[7];
|
|
1981
1981
|
}
|
|
1982
1982
|
dispose() {
|
|
1983
|
-
this.disposed || (this.disposed = true, this.stopResize?.(), this.nativeSurface?.release(), this.nativeSurface = null, this.abi.engine_render_destroy(this.handle), this.scratch !== 0 && this.runtime.exports.engine_free(this.scratch, this.scratchBytes,
|
|
1983
|
+
this.disposed || (this.disposed = true, this.stopResize?.(), this.nativeSurface?.release(), this.nativeSurface = null, this.abi.engine_render_destroy(this.handle), this.scratch !== 0 && this.runtime.exports.engine_free(this.scratch, this.scratchBytes, chunk2O2CG465_js.COLUMN_ALIGN), this.matrixScratch && this.runtime.exports.engine_free(this.matrixScratch.byteOffset, 16 * chunk2O2CG465_js.WORD_BYTES, chunk2O2CG465_js.COLUMN_ALIGN), this.textPointer !== 0 && this.runtime.exports.engine_free(this.textPointer, this.textBytes, chunk2O2CG465_js.COLUMN_ALIGN), this.pickPointer !== 0 && this.runtime.exports.engine_free(this.pickPointer, 18 * chunk2O2CG465_js.WORD_BYTES, chunk2O2CG465_js.COLUMN_ALIGN), this.textPointer = 0, this.pickPointer = 0, this.scratch = 0, this.matrixScratch = null);
|
|
1984
1984
|
}
|
|
1985
1985
|
};
|
|
1986
1986
|
|
|
1987
1987
|
// src/game/backends/engine/ai.ts
|
|
1988
1988
|
var NO_WORLD = 0;
|
|
1989
1989
|
function engineAiExports(symbols) {
|
|
1990
|
-
for (let name of
|
|
1990
|
+
for (let name of chunk3S6WPBZL_js.ENGINE_AI_EXPORT_NAMES) if (typeof symbols[name] != "function") return null;
|
|
1991
1991
|
return symbols;
|
|
1992
1992
|
}
|
|
1993
1993
|
var EngineAiPort = class {
|
|
1994
1994
|
constructor(runtime, exports, physicsWorld) {
|
|
1995
1995
|
this.name = "cimplify-engine-ai";
|
|
1996
1996
|
this.runtime = runtime, this.exports = exports, this.physicsWorld = physicsWorld;
|
|
1997
|
-
let stepWorld = runtime.symbols[
|
|
1997
|
+
let stepWorld = runtime.symbols[chunk3S6WPBZL_js.ENGINE_AI_WORLD_STEP];
|
|
1998
1998
|
this.stepWorld = typeof stepWorld == "function" ? stepWorld : null;
|
|
1999
1999
|
}
|
|
2000
2000
|
buffer() {
|
|
@@ -2081,13 +2081,13 @@ var EngineNav = class {
|
|
|
2081
2081
|
}
|
|
2082
2082
|
alloc(bytes) {
|
|
2083
2083
|
if (bytes <= this.scratchBytes) return this.scratch;
|
|
2084
|
-
if (this.scratch !== (0) && this.runtime.exports.engine_free(this.scratch, this.scratchBytes,
|
|
2084
|
+
if (this.scratch !== (0) && this.runtime.exports.engine_free(this.scratch, this.scratchBytes, chunk2O2CG465_js.WORD_BYTES), this.scratch = this.runtime.exports.engine_alloc(bytes, chunk2O2CG465_js.WORD_BYTES), this.scratch === (0)) throw new chunk2V7IL4HC_js.GameError("capacity_exceeded", "engine memory is full");
|
|
2085
2085
|
return this.scratchBytes = bytes, this.scratch;
|
|
2086
2086
|
}
|
|
2087
2087
|
init(desc) {
|
|
2088
|
-
let pointer = this.alloc(16 *
|
|
2088
|
+
let pointer = this.alloc(16 * chunk2O2CG465_js.WORD_BYTES), buffer = this.runtime.memory.buffer, words = new Uint32Array(buffer, pointer, 16), floats = new Float32Array(buffer, pointer, 16);
|
|
2089
2089
|
words.fill(0);
|
|
2090
|
-
let origin = desc.origin ?? [0, 0], extents = desc.extents ??
|
|
2090
|
+
let origin = desc.origin ?? [0, 0], extents = desc.extents ?? chunk3S6WPBZL_js.DEFAULT_EXTENTS;
|
|
2091
2091
|
floats[0] = origin[0], floats[1] = origin[1], floats[2] = desc.tileWorld, words[3] = desc.maxTiles ?? 256, words[4] = desc.queryNodes ?? 2048, this.maxAgents = desc.maxAgents ?? 512, words[5] = this.maxAgents, floats[6] = desc.neighbourDistance ?? 4, floats[7] = desc.timeHorizon ?? 2, words[8] = desc.pathBudget ?? 16, words[9] = desc.maxPathPolys ?? 256;
|
|
2092
2092
|
for (let k = 0; k < 3; k++) floats[10 + k] = extents[k];
|
|
2093
2093
|
if (this.handle = this.exports.engine_nav_create(pointer), this.handle === (0)) throw new chunk2V7IL4HC_js.GameError("invalid_argument", "navigation could not be created");
|
|
@@ -2126,7 +2126,7 @@ var EngineNav = class {
|
|
|
2126
2126
|
findPath(sx, sy, sz, ex, ey, ez, out) {
|
|
2127
2127
|
let handle = this.require(), f = this.floats;
|
|
2128
2128
|
f[0] = sx, f[1] = sy, f[2] = sz, f[3] = ex, f[4] = ey, f[5] = ez;
|
|
2129
|
-
let maxPoints = Math.max(Math.floor(out.length / 3), 1), pointer = this.alloc(maxPoints * 3 *
|
|
2129
|
+
let maxPoints = Math.max(Math.floor(out.length / 3), 1), pointer = this.alloc(maxPoints * 3 * chunk2O2CG465_js.WORD_BYTES), code = this.exports.engine_nav_find_path(handle, pointer, maxPoints);
|
|
2130
2130
|
return code < 0 ? (this.complete = false, 0) : (out.set(new Float32Array(this.runtime.memory.buffer, pointer, code * 3)), this.complete = this.words[13] === 1, code);
|
|
2131
2131
|
}
|
|
2132
2132
|
addAgent(x, y, z, radius, speed, accel) {
|
|
@@ -2176,7 +2176,7 @@ var EngineNav = class {
|
|
|
2176
2176
|
this.floats[14] = dt, this.check(this.exports.engine_nav_step(handle), "nav step");
|
|
2177
2177
|
}
|
|
2178
2178
|
dispose() {
|
|
2179
|
-
this.handle !== (0) && this.exports.engine_nav_destroy(this.handle), this.scratch !== (0) && this.runtime.exports.engine_free(this.scratch, this.scratchBytes,
|
|
2179
|
+
this.handle !== (0) && this.exports.engine_nav_destroy(this.handle), this.scratch !== (0) && this.runtime.exports.engine_free(this.scratch, this.scratchBytes, chunk2O2CG465_js.WORD_BYTES), this.handle = (0), this.scratch = (0), this.scratchBytes = 0;
|
|
2180
2180
|
}
|
|
2181
2181
|
};
|
|
2182
2182
|
|
|
@@ -2246,14 +2246,14 @@ var EngineCraft = class {
|
|
|
2246
2246
|
configureWater(desc) {
|
|
2247
2247
|
this.open();
|
|
2248
2248
|
let w = this.words, f = this.floats, waves = desc.waves ?? [];
|
|
2249
|
-
if (waves.length >
|
|
2249
|
+
if (waves.length > chunk3S6WPBZL_js.MAX_WAVES) throw new chunk2V7IL4HC_js.GameError("invalid_argument", "too many waves");
|
|
2250
2250
|
f[(0)] = desc.level ?? 0, f[(1)] = desc.depth ?? Number.POSITIVE_INFINITY, f[(2)] = desc.gravity ?? (9.81), f[(3)] = desc.density ?? (1025), f[(4)] = desc.current?.[0] ?? 0, f[(4) + 1] = desc.current?.[1] ?? 0, f[(6)] = desc.wind?.[0] ?? 0, f[(6) + 1] = desc.wind?.[1] ?? 0, f[(8)] = desc.gust ?? 0, f[(9)] = desc.gustPeriod ?? 0, w[(10)] = desc.iterations ?? (2), w[(11)] = waves.length, waves.forEach((wave, i) => {
|
|
2251
2251
|
let o = (12) + i * (6);
|
|
2252
2252
|
f[o] = wave.direction[0], f[o + 1] = wave.direction[1], f[o + 2] = wave.wavelength, f[o + 3] = wave.amplitude, f[o + 4] = wave.steepness, f[o + 5] = wave.phase;
|
|
2253
2253
|
}), this.session.check(this.exports.engine_craft_set_water(this.handle), "configure water");
|
|
2254
2254
|
}
|
|
2255
2255
|
sea(state, windRadians, seed) {
|
|
2256
|
-
this.open(), this.session.check(this.exports.engine_craft_sea(this.handle,
|
|
2256
|
+
this.open(), this.session.check(this.exports.engine_craft_sea(this.handle, chunk3S6WPBZL_js.SEA_STATES.indexOf(state), windRadians, seed >>> 0), "sea state");
|
|
2257
2257
|
}
|
|
2258
2258
|
setFlow(flow) {
|
|
2259
2259
|
this.open();
|
|
@@ -2368,13 +2368,13 @@ var EngineCraft = class {
|
|
|
2368
2368
|
sampleWater(points, count, out) {
|
|
2369
2369
|
this.open();
|
|
2370
2370
|
let buffer = this.session.buffer;
|
|
2371
|
-
this.pointView.buffer !== buffer && (this.pointView = new Float32Array(buffer, this.points, (1024) * 2), this.sampleView = new Float32Array(buffer, this.samples, (1024) *
|
|
2371
|
+
this.pointView.buffer !== buffer && (this.pointView = new Float32Array(buffer, this.points, (1024) * 2), this.sampleView = new Float32Array(buffer, this.samples, (1024) * chunk3S6WPBZL_js.WATER_SAMPLE_WORDS));
|
|
2372
2372
|
for (let start = 0; start < count; start += (1024)) {
|
|
2373
2373
|
let n = Math.min((1024), count - start);
|
|
2374
2374
|
for (let i = 0; i < n * 2; i++) this.pointView[i] = points[start * 2 + i];
|
|
2375
2375
|
this.session.check(this.exports.engine_water_sample(this.handle, this.points, n, this.samples), "water sample");
|
|
2376
|
-
let base = start *
|
|
2377
|
-
for (let i = 0; i < n *
|
|
2376
|
+
let base = start * chunk3S6WPBZL_js.WATER_SAMPLE_WORDS;
|
|
2377
|
+
for (let i = 0; i < n * chunk3S6WPBZL_js.WATER_SAMPLE_WORDS; i++) out[base + i] = this.sampleView[i];
|
|
2378
2378
|
}
|
|
2379
2379
|
}
|
|
2380
2380
|
floatsIn(values) {
|
|
@@ -2384,7 +2384,7 @@ var EngineCraft = class {
|
|
|
2384
2384
|
}
|
|
2385
2385
|
crumpleExport(name) {
|
|
2386
2386
|
let found = this.exports[name];
|
|
2387
|
-
if (!found) throw new chunk2V7IL4HC_js.GameError("unsupported_feature", `this engine build has no vehicle crumple (feature ${
|
|
2387
|
+
if (!found) throw new chunk2V7IL4HC_js.GameError("unsupported_feature", `this engine build has no vehicle crumple (feature ${chunkX5A5FOWW_js.SOFT_BODY_FEATURE})`);
|
|
2388
2388
|
return found;
|
|
2389
2389
|
}
|
|
2390
2390
|
crumple(craft, vertices, desc) {
|
|
@@ -2404,7 +2404,7 @@ var EngineCraft = class {
|
|
|
2404
2404
|
try {
|
|
2405
2405
|
return this.session.check(impact(this.handle, craft, words), "impact") === 1;
|
|
2406
2406
|
} finally {
|
|
2407
|
-
this.exports.engine_free(words,
|
|
2407
|
+
this.exports.engine_free(words, chunkX5A5FOWW_js.CRUMPLE_IMPACT_FLOATS * (4), (4));
|
|
2408
2408
|
}
|
|
2409
2409
|
}
|
|
2410
2410
|
damage(craft) {
|
|
@@ -2419,7 +2419,7 @@ var EngineCraft = class {
|
|
|
2419
2419
|
return written >= 0 ? written : 0;
|
|
2420
2420
|
}
|
|
2421
2421
|
dispose() {
|
|
2422
|
-
this.handle !== (0) && (this.exports.engine_craft_destroy(this.handle), this.exports.engine_free(this.points, (1024) * 2 * (4), (4)), this.exports.engine_free(this.samples, (1024) *
|
|
2422
|
+
this.handle !== (0) && (this.exports.engine_craft_destroy(this.handle), this.exports.engine_free(this.points, (1024) * 2 * (4), (4)), this.exports.engine_free(this.samples, (1024) * chunk3S6WPBZL_js.WATER_SAMPLE_WORDS * (4), (4)), this.handle = (0));
|
|
2423
2423
|
}
|
|
2424
2424
|
open() {
|
|
2425
2425
|
if (this.handle !== (0)) return;
|
|
@@ -2427,7 +2427,7 @@ var EngineCraft = class {
|
|
|
2427
2427
|
if (handle === (0)) throw new chunk2V7IL4HC_js.GameError("capacity_exceeded", "craft world could not be created");
|
|
2428
2428
|
this.handle = handle;
|
|
2429
2429
|
let buffer = this.session.buffer, registers = this.exports.engine_craft_registers(handle);
|
|
2430
|
-
if (this.words = new Uint32Array(buffer, registers, (128)), this.floats = new Float32Array(buffer, registers, (128)), this.controlTable = new Float32Array(buffer, this.exports.engine_craft_controls(handle), this.capacity * 16), this.telemetryTable = new Float32Array(buffer, this.exports.engine_craft_telemetry(handle), this.capacity * 16), this.points = this.exports.engine_alloc((1024) * 2 * (4), (4)), this.samples = this.exports.engine_alloc((1024) *
|
|
2430
|
+
if (this.words = new Uint32Array(buffer, registers, (128)), this.floats = new Float32Array(buffer, registers, (128)), this.controlTable = new Float32Array(buffer, this.exports.engine_craft_controls(handle), this.capacity * 16), this.telemetryTable = new Float32Array(buffer, this.exports.engine_craft_telemetry(handle), this.capacity * 16), this.points = this.exports.engine_alloc((1024) * 2 * (4), (4)), this.samples = this.exports.engine_alloc((1024) * chunk3S6WPBZL_js.WATER_SAMPLE_WORDS * (4), (4)), this.points === 0 || this.samples === 0) throw new chunk2V7IL4HC_js.GameError("capacity_exceeded", "water sample buffers could not be allocated");
|
|
2431
2431
|
}
|
|
2432
2432
|
};
|
|
2433
2433
|
|
|
@@ -2455,10 +2455,10 @@ var EngineVehicles = class {
|
|
|
2455
2455
|
let s = this.session;
|
|
2456
2456
|
s.flush();
|
|
2457
2457
|
let world = s.require();
|
|
2458
|
-
if (this.desc === (0) && (this.desc = s.exports.engine_alloc(
|
|
2458
|
+
if (this.desc === (0) && (this.desc = s.exports.engine_alloc(chunk3S6WPBZL_js.VEHICLE_DESC_WORDS * chunk2O2CG465_js.WORD_BYTES, chunk2O2CG465_js.WORD_BYTES), this.desc === (0)))
|
|
2459
2459
|
throw new chunk2V7IL4HC_js.GameError("capacity_exceeded", "engine memory cannot hold a vehicle descriptor");
|
|
2460
|
-
new Float32Array(s.buffer, this.desc,
|
|
2461
|
-
let id = s.check(this.exports.engine_vehicle_create(world, body, this.desc,
|
|
2460
|
+
new Float32Array(s.buffer, this.desc, chunk3S6WPBZL_js.VEHICLE_DESC_WORDS).set(desc.subarray(0, chunk3S6WPBZL_js.VEHICLE_DESC_WORDS));
|
|
2461
|
+
let id = s.check(this.exports.engine_vehicle_create(world, body, this.desc, chunk3S6WPBZL_js.VEHICLE_DESC_WORDS), "create vehicle");
|
|
2462
2462
|
return this.bindViews(world), id;
|
|
2463
2463
|
}
|
|
2464
2464
|
destroyVehicle(vehicle) {
|
|
@@ -2475,7 +2475,7 @@ var EngineVehicles = class {
|
|
|
2475
2475
|
let capacity = this.exports.engine_vehicle_capacity(world), inputs = this.exports.engine_vehicle_inputs(world), states = this.exports.engine_vehicle_states(world);
|
|
2476
2476
|
if (inputs === (0) || states === (0)) throw new chunk2V7IL4HC_js.GameError("not_initialized", "engine vehicles are not reserved");
|
|
2477
2477
|
let buffer = this.session.buffer;
|
|
2478
|
-
(this.inputs.byteOffset !== inputs || this.inputs.buffer !== buffer) && (this.inputs = new Float32Array(buffer, inputs, capacity *
|
|
2478
|
+
(this.inputs.byteOffset !== inputs || this.inputs.buffer !== buffer) && (this.inputs = new Float32Array(buffer, inputs, capacity * chunk3S6WPBZL_js.INPUT_STRIDE), this.states = new Float32Array(buffer, states, capacity * chunk3S6WPBZL_js.STATE_STRIDE));
|
|
2479
2479
|
}
|
|
2480
2480
|
};
|
|
2481
2481
|
|
|
@@ -2487,31 +2487,31 @@ function axisBits(axes, shift) {
|
|
|
2487
2487
|
function shapeCode(shape) {
|
|
2488
2488
|
switch (shape.kind) {
|
|
2489
2489
|
case "ball":
|
|
2490
|
-
return
|
|
2490
|
+
return chunk2O2CG465_js.SHAPE_BALL;
|
|
2491
2491
|
case "cuboid":
|
|
2492
|
-
return
|
|
2492
|
+
return chunk2O2CG465_js.SHAPE_CUBOID;
|
|
2493
2493
|
case "capsule":
|
|
2494
|
-
return
|
|
2494
|
+
return chunk2O2CG465_js.SHAPE_CAPSULE;
|
|
2495
2495
|
case "cylinder":
|
|
2496
|
-
return
|
|
2496
|
+
return chunk2O2CG465_js.SHAPE_CYLINDER;
|
|
2497
2497
|
case "cone":
|
|
2498
|
-
return
|
|
2498
|
+
return chunk2O2CG465_js.SHAPE_CONE;
|
|
2499
2499
|
case "trimesh":
|
|
2500
|
-
return
|
|
2500
|
+
return chunk2O2CG465_js.SHAPE_TRIMESH;
|
|
2501
2501
|
case "convex_hull":
|
|
2502
|
-
return
|
|
2502
|
+
return chunk2O2CG465_js.SHAPE_CONVEX_HULL;
|
|
2503
2503
|
case "heightfield":
|
|
2504
|
-
return
|
|
2504
|
+
return chunk2O2CG465_js.SHAPE_HEIGHTFIELD;
|
|
2505
2505
|
case "round_cuboid":
|
|
2506
|
-
return
|
|
2506
|
+
return chunk2O2CG465_js.SHAPE_ROUND_CUBOID;
|
|
2507
2507
|
case "round_cylinder":
|
|
2508
|
-
return
|
|
2508
|
+
return chunk2O2CG465_js.SHAPE_ROUND_CYLINDER;
|
|
2509
2509
|
case "round_cone":
|
|
2510
|
-
return
|
|
2510
|
+
return chunk2O2CG465_js.SHAPE_ROUND_CONE;
|
|
2511
2511
|
case "round_convex_hull":
|
|
2512
|
-
return
|
|
2512
|
+
return chunk2O2CG465_js.SHAPE_ROUND_CONVEX_HULL;
|
|
2513
2513
|
case "compound":
|
|
2514
|
-
return
|
|
2514
|
+
return chunk2O2CG465_js.SHAPE_COMPOUND;
|
|
2515
2515
|
}
|
|
2516
2516
|
}
|
|
2517
2517
|
function writePrimitive(shape, floats, params, border) {
|
|
@@ -2534,13 +2534,13 @@ function writePrimitive(shape, floats, params, border) {
|
|
|
2534
2534
|
(shape.kind === "round_cuboid" || shape.kind === "round_cylinder" || shape.kind === "round_cone") && (floats[border] = shape.border);
|
|
2535
2535
|
}
|
|
2536
2536
|
function compoundFloats(parts) {
|
|
2537
|
-
let out = new Float32Array(parts.length *
|
|
2537
|
+
let out = new Float32Array(parts.length * chunk2O2CG465_js.PART_FLOATS);
|
|
2538
2538
|
for (let i = 0; i < parts.length; i++) {
|
|
2539
|
-
let part = parts[i], at = i *
|
|
2540
|
-
out[at +
|
|
2539
|
+
let part = parts[i], at = i * chunk2O2CG465_js.PART_FLOATS;
|
|
2540
|
+
out[at + chunk2O2CG465_js.PART_SHAPE] = shapeCode(part.shape), writePrimitive(part.shape, out, at + chunk2O2CG465_js.PART_PARAMS, at + chunk2O2CG465_js.PART_BORDER);
|
|
2541
2541
|
let offset = part.offset ?? ORIGIN, rotation = part.rotation ?? IDENTITY_ROTATION;
|
|
2542
|
-
for (let k = 0; k < 3; k++) out[at +
|
|
2543
|
-
for (let k = 0; k < 4; k++) out[at +
|
|
2542
|
+
for (let k = 0; k < 3; k++) out[at + chunk2O2CG465_js.PART_OFFSET + k] = offset[k];
|
|
2543
|
+
for (let k = 0; k < 4; k++) out[at + chunk2O2CG465_js.PART_ROTATION + k] = rotation[k];
|
|
2544
2544
|
}
|
|
2545
2545
|
return out;
|
|
2546
2546
|
}
|
|
@@ -2548,22 +2548,22 @@ var LOCKED_AXES = ["locked", "locked", "locked"], LIMIT_PAIR = 2, SIX_DOF_AXES =
|
|
|
2548
2548
|
function encodeSixDof(desc, words, floats) {
|
|
2549
2549
|
let frameA = desc.frameA ?? IDENTITY_ROTATION, frameB = desc.frameB ?? IDENTITY_ROTATION;
|
|
2550
2550
|
for (let k = 0; k < (4); k++)
|
|
2551
|
-
floats[
|
|
2551
|
+
floats[chunk2O2CG465_js.JOINT_FRAME_A + k] = frameA[k], floats[chunk2O2CG465_js.JOINT_FRAME_B + k] = frameB[k];
|
|
2552
2552
|
let axes = [...desc.linear ?? LOCKED_AXES, ...desc.angular ?? LOCKED_AXES];
|
|
2553
2553
|
if (axes.length !== (6)) throw new chunk2V7IL4HC_js.GameError("invalid_argument", "a six_dof joint has three linear and three angular axes");
|
|
2554
2554
|
let motions = 0;
|
|
2555
2555
|
for (let axis = 0; axis < (6); axis++) {
|
|
2556
|
-
let motion = axes[axis], code =
|
|
2557
|
-
motion === "free" ? code =
|
|
2556
|
+
let motion = axes[axis], code = chunk2O2CG465_js.MOTION_LOCKED;
|
|
2557
|
+
motion === "free" ? code = chunk2O2CG465_js.MOTION_FREE : motion !== "locked" && (code = chunk2O2CG465_js.MOTION_LIMITED, floats[chunk2O2CG465_js.JOINT_AXIS_LIMITS + axis * (2)] = motion[0], floats[chunk2O2CG465_js.JOINT_AXIS_LIMITS + axis * (2) + 1] = motion[1]), motions |= code << axis * chunk2O2CG465_js.MOTION_BITS;
|
|
2558
2558
|
}
|
|
2559
|
-
words[
|
|
2559
|
+
words[chunk2O2CG465_js.JOINT_MOTIONS] = motions >>> 0, floats[chunk2O2CG465_js.JOINT_SWING_CONE] = desc.swingCone ?? NO_VALUE;
|
|
2560
2560
|
}
|
|
2561
2561
|
var EnginePhysics = class {
|
|
2562
2562
|
constructor(session) {
|
|
2563
2563
|
this.name = ENGINE_PHYSICS_NAME;
|
|
2564
2564
|
this.session = session;
|
|
2565
2565
|
let exports = engineVehicleExports(session.symbols);
|
|
2566
|
-
this.vehicles = exports ? new EngineVehicles(session, exports) : null, this.craft = engineCraft(session), this.jointPort =
|
|
2566
|
+
this.vehicles = exports ? new EngineVehicles(session, exports) : null, this.craft = engineCraft(session), this.jointPort = chunkH3OQKK6X_js.engineJoints(session);
|
|
2567
2567
|
}
|
|
2568
2568
|
bindTransforms(columns) {
|
|
2569
2569
|
this.session.bind(columns);
|
|
@@ -2575,15 +2575,15 @@ var EnginePhysics = class {
|
|
|
2575
2575
|
return this.session.snapshots;
|
|
2576
2576
|
}
|
|
2577
2577
|
setGravity(gravity) {
|
|
2578
|
-
this.vectorCommand(
|
|
2578
|
+
this.vectorCommand(chunk2O2CG465_js.OP_SET_GRAVITY, 0, gravity);
|
|
2579
2579
|
}
|
|
2580
2580
|
createBody(entity, desc) {
|
|
2581
2581
|
let s = this.session;
|
|
2582
2582
|
s.flush();
|
|
2583
2583
|
let words = s.descWords, floats = s.descFloats;
|
|
2584
|
-
words[
|
|
2584
|
+
words[chunk2O2CG465_js.BODY_KIND] = desc.kind === "dynamic" ? chunk2O2CG465_js.BODY_KIND_DYNAMIC : desc.kind === "kinematic" ? chunk2O2CG465_js.BODY_KIND_KINEMATIC : chunk2O2CG465_js.BODY_KIND_FIXED, floats[chunk2O2CG465_js.BODY_LINEAR_DAMPING] = desc.linearDamping ?? 0, floats[chunk2O2CG465_js.BODY_ANGULAR_DAMPING] = desc.angularDamping ?? 0, floats[chunk2O2CG465_js.BODY_GRAVITY_SCALE] = desc.gravityScale ?? 1;
|
|
2585
2585
|
let translations = desc.planar ? PLANAR_TRANSLATIONS : desc.lockTranslations ? NO_AXES : desc.enabledTranslations ?? ALL_AXES, rotations = desc.planar ? PLANAR_ROTATIONS : desc.lockRotations ? NO_AXES : desc.enabledRotations ?? ALL_AXES;
|
|
2586
|
-
return words[
|
|
2586
|
+
return words[chunk2O2CG465_js.BODY_FLAGS] = (desc.ccd ? chunk2O2CG465_js.BODY_FLAG_CCD : 0) | (desc.canSleep === false ? 0 : chunk2O2CG465_js.BODY_FLAG_CAN_SLEEP) | axisBits(translations, chunk2O2CG465_js.BODY_TRANSLATION_SHIFT) | axisBits(rotations, chunk2O2CG465_js.BODY_ROTATION_SHIFT), words[chunk2O2CG465_js.BODY_DOMINANCE] = desc.dominance ?? 0, s.check(s.exports.engine_body_create(s.require(), entity), "create body");
|
|
2587
2587
|
}
|
|
2588
2588
|
destroyBody(body) {
|
|
2589
2589
|
let s = this.session;
|
|
@@ -2595,7 +2595,7 @@ var EnginePhysics = class {
|
|
|
2595
2595
|
let words = s.descWords, floats = s.descFloats;
|
|
2596
2596
|
words.fill(0);
|
|
2597
2597
|
let shape = desc.shape;
|
|
2598
|
-
words[
|
|
2598
|
+
words[chunk2O2CG465_js.COLLIDER_SHAPE] = shapeCode(shape);
|
|
2599
2599
|
let staged = [];
|
|
2600
2600
|
switch (shape.kind) {
|
|
2601
2601
|
case "ball":
|
|
@@ -2606,34 +2606,34 @@ var EnginePhysics = class {
|
|
|
2606
2606
|
case "round_cuboid":
|
|
2607
2607
|
case "round_cylinder":
|
|
2608
2608
|
case "round_cone":
|
|
2609
|
-
writePrimitive(shape, floats,
|
|
2609
|
+
writePrimitive(shape, floats, chunk2O2CG465_js.COLLIDER_PARAMS, chunk2O2CG465_js.COLLIDER_BORDER);
|
|
2610
2610
|
break;
|
|
2611
2611
|
case "round_convex_hull":
|
|
2612
|
-
this.stage(staged, shape.points,
|
|
2612
|
+
this.stage(staged, shape.points, chunk2O2CG465_js.COLLIDER_DATA_A, chunk2O2CG465_js.COLLIDER_DATA_A_LEN), floats[chunk2O2CG465_js.COLLIDER_BORDER] = shape.border;
|
|
2613
2613
|
break;
|
|
2614
2614
|
case "compound":
|
|
2615
|
-
this.stage(staged, compoundFloats(shape.parts),
|
|
2615
|
+
this.stage(staged, compoundFloats(shape.parts), chunk2O2CG465_js.COLLIDER_DATA_A, chunk2O2CG465_js.COLLIDER_DATA_A_LEN);
|
|
2616
2616
|
break;
|
|
2617
2617
|
case "trimesh":
|
|
2618
|
-
this.stage(staged, shape.vertices,
|
|
2618
|
+
this.stage(staged, shape.vertices, chunk2O2CG465_js.COLLIDER_DATA_A, chunk2O2CG465_js.COLLIDER_DATA_A_LEN), this.stage(staged, shape.indices, chunk2O2CG465_js.COLLIDER_DATA_B, chunk2O2CG465_js.COLLIDER_DATA_B_LEN);
|
|
2619
2619
|
break;
|
|
2620
2620
|
case "convex_hull":
|
|
2621
|
-
this.stage(staged, shape.points,
|
|
2621
|
+
this.stage(staged, shape.points, chunk2O2CG465_js.COLLIDER_DATA_A, chunk2O2CG465_js.COLLIDER_DATA_A_LEN);
|
|
2622
2622
|
break;
|
|
2623
2623
|
case "heightfield":
|
|
2624
|
-
this.stage(staged, shape.heights,
|
|
2624
|
+
this.stage(staged, shape.heights, chunk2O2CG465_js.COLLIDER_DATA_A, chunk2O2CG465_js.COLLIDER_DATA_A_LEN), words[chunk2O2CG465_js.COLLIDER_ROWS] = shape.rows, words[chunk2O2CG465_js.COLLIDER_COLUMNS] = shape.columns, floats[chunk2O2CG465_js.COLLIDER_PARAMS] = shape.scale[0], floats[chunk2O2CG465_js.COLLIDER_PARAMS + 1] = shape.scale[1], floats[chunk2O2CG465_js.COLLIDER_PARAMS + 2] = shape.scale[2];
|
|
2625
2625
|
break;
|
|
2626
2626
|
}
|
|
2627
2627
|
let offset = desc.offset ?? ORIGIN, rotation = desc.rotation ?? IDENTITY_ROTATION;
|
|
2628
|
-
for (let k = 0; k < 3; k++) floats[
|
|
2629
|
-
for (let k = 0; k < 4; k++) floats[
|
|
2630
|
-
floats[
|
|
2628
|
+
for (let k = 0; k < 3; k++) floats[chunk2O2CG465_js.COLLIDER_OFFSET + k] = offset[k];
|
|
2629
|
+
for (let k = 0; k < 4; k++) floats[chunk2O2CG465_js.COLLIDER_ROTATION + k] = rotation[k];
|
|
2630
|
+
floats[chunk2O2CG465_js.COLLIDER_DENSITY] = desc.density ?? NO_VALUE, floats[chunk2O2CG465_js.COLLIDER_MASS] = desc.mass ?? NO_VALUE, floats[chunk2O2CG465_js.COLLIDER_FRICTION] = desc.friction ?? NO_VALUE, floats[chunk2O2CG465_js.COLLIDER_RESTITUTION] = desc.restitution ?? NO_VALUE;
|
|
2631
2631
|
let grouped = desc.membership !== void 0 || desc.filter !== void 0;
|
|
2632
|
-
words[
|
|
2632
|
+
words[chunk2O2CG465_js.COLLIDER_FLAGS] = (desc.sensor ? chunk2O2CG465_js.COLLIDER_FLAG_SENSOR : 0) | (desc.events ? chunk2O2CG465_js.COLLIDER_FLAG_EVENTS : 0) | (grouped ? chunk2O2CG465_js.COLLIDER_FLAG_GROUPS : 0), words[chunk2O2CG465_js.COLLIDER_MEMBERSHIP] = desc.membership ?? chunk2O2CG465_js.COLLISION_GROUP_ALL, words[chunk2O2CG465_js.COLLIDER_FILTER] = desc.filter ?? chunk2O2CG465_js.COLLISION_GROUP_ALL;
|
|
2633
2633
|
try {
|
|
2634
2634
|
return s.check(s.exports.engine_collider_create(s.require(), body), "create collider");
|
|
2635
2635
|
} finally {
|
|
2636
|
-
for (let block of staged) s.exports.engine_free(block.pointer, block.bytes,
|
|
2636
|
+
for (let block of staged) s.exports.engine_free(block.pointer, block.bytes, chunk2O2CG465_js.WORD_BYTES);
|
|
2637
2637
|
}
|
|
2638
2638
|
}
|
|
2639
2639
|
destroyCollider(collider) {
|
|
@@ -2650,33 +2650,33 @@ var EnginePhysics = class {
|
|
|
2650
2650
|
let words = s.descWords, floats = s.descFloats;
|
|
2651
2651
|
words.fill(0);
|
|
2652
2652
|
for (let k = 0; k < 3; k++)
|
|
2653
|
-
floats[
|
|
2653
|
+
floats[chunk2O2CG465_js.JOINT_ANCHOR_A + k] = desc.anchorA[k], floats[chunk2O2CG465_js.JOINT_ANCHOR_B + k] = desc.anchorB[k];
|
|
2654
2654
|
switch (desc.kind) {
|
|
2655
2655
|
case "fixed":
|
|
2656
|
-
words[
|
|
2656
|
+
words[chunk2O2CG465_js.JOINT_KIND] = chunk2O2CG465_js.JOINT_FIXED;
|
|
2657
2657
|
break;
|
|
2658
2658
|
case "spherical":
|
|
2659
|
-
words[
|
|
2659
|
+
words[chunk2O2CG465_js.JOINT_KIND] = chunk2O2CG465_js.JOINT_SPHERICAL;
|
|
2660
2660
|
break;
|
|
2661
2661
|
case "revolute":
|
|
2662
2662
|
case "prismatic":
|
|
2663
|
-
words[
|
|
2664
|
-
for (let k = 0; k < 3; k++) floats[
|
|
2665
|
-
desc.limits && (words[
|
|
2663
|
+
words[chunk2O2CG465_js.JOINT_KIND] = desc.kind === "revolute" ? chunk2O2CG465_js.JOINT_REVOLUTE : chunk2O2CG465_js.JOINT_PRISMATIC;
|
|
2664
|
+
for (let k = 0; k < 3; k++) floats[chunk2O2CG465_js.JOINT_AXIS + k] = desc.axis[k];
|
|
2665
|
+
desc.limits && (words[chunk2O2CG465_js.JOINT_HAS_LIMITS] = 1, floats[chunk2O2CG465_js.JOINT_LIMITS] = desc.limits[0], floats[chunk2O2CG465_js.JOINT_LIMITS + 1] = desc.limits[1]);
|
|
2666
2666
|
break;
|
|
2667
2667
|
case "rope":
|
|
2668
|
-
words[
|
|
2668
|
+
words[chunk2O2CG465_js.JOINT_KIND] = chunk2O2CG465_js.JOINT_ROPE, floats[chunk2O2CG465_js.JOINT_LENGTH] = desc.length;
|
|
2669
2669
|
break;
|
|
2670
2670
|
case "spring":
|
|
2671
|
-
words[
|
|
2671
|
+
words[chunk2O2CG465_js.JOINT_KIND] = chunk2O2CG465_js.JOINT_SPRING, floats[chunk2O2CG465_js.JOINT_LENGTH] = desc.restLength, floats[chunk2O2CG465_js.JOINT_STIFFNESS] = desc.stiffness, floats[chunk2O2CG465_js.JOINT_DAMPING] = desc.damping;
|
|
2672
2672
|
break;
|
|
2673
2673
|
case "cone":
|
|
2674
|
-
words[
|
|
2675
|
-
for (let k = 0; k < 3; k++) floats[
|
|
2676
|
-
floats[
|
|
2674
|
+
words[chunk2O2CG465_js.JOINT_KIND] = chunk2O2CG465_js.JOINT_CONE;
|
|
2675
|
+
for (let k = 0; k < 3; k++) floats[chunk2O2CG465_js.JOINT_AXIS + k] = desc.axis[k];
|
|
2676
|
+
floats[chunk2O2CG465_js.JOINT_SWING] = desc.swing, floats[chunk2O2CG465_js.JOINT_LIMITS] = desc.twist[0], floats[chunk2O2CG465_js.JOINT_LIMITS + 1] = desc.twist[1];
|
|
2677
2677
|
break;
|
|
2678
2678
|
case "six_dof":
|
|
2679
|
-
words[
|
|
2679
|
+
words[chunk2O2CG465_js.JOINT_KIND] = chunk2O2CG465_js.JOINT_SIX_DOF, encodeSixDof(desc, words, floats);
|
|
2680
2680
|
break;
|
|
2681
2681
|
}
|
|
2682
2682
|
return s.check(s.exports.engine_joint_create(s.require(), bodyA, bodyB), "create joint");
|
|
@@ -2685,7 +2685,7 @@ var EnginePhysics = class {
|
|
|
2685
2685
|
let s = this.session;
|
|
2686
2686
|
s.flush();
|
|
2687
2687
|
let world = s.require();
|
|
2688
|
-
s.registerFloats[
|
|
2688
|
+
s.registerFloats[chunk2O2CG465_js.REGISTER_MOTOR_VELOCITY] = targetVelocity, s.registerFloats[chunk2O2CG465_js.REGISTER_MOTOR_MAX_FORCE] = maxForce, s.check(s.exports.engine_joint_motor(world, joint), "joint motor");
|
|
2689
2689
|
}
|
|
2690
2690
|
destroyJoint(joint) {
|
|
2691
2691
|
let s = this.session;
|
|
@@ -2695,7 +2695,7 @@ var EnginePhysics = class {
|
|
|
2695
2695
|
this.session.step();
|
|
2696
2696
|
}
|
|
2697
2697
|
setBodyPose(body, positions, po, rotations, ro) {
|
|
2698
|
-
let s = this.session, o = s.command(
|
|
2698
|
+
let s = this.session, o = s.command(chunk2O2CG465_js.OP_SET_BODY_POSE, body), f = s.commandPayload;
|
|
2699
2699
|
f[o] = positions[po], f[o + 1] = positions[po + 1], f[o + 2] = positions[po + 2], f[o + 3] = rotations[ro], f[o + 4] = rotations[ro + 1], f[o + 5] = rotations[ro + 2], f[o + 6] = rotations[ro + 3];
|
|
2700
2700
|
}
|
|
2701
2701
|
linearVelocity(body, out) {
|
|
@@ -2707,28 +2707,28 @@ var EnginePhysics = class {
|
|
|
2707
2707
|
s.flush(), s.check(s.exports.engine_body_angular_velocity(s.require(), body), "angular velocity"), this.readVector(out);
|
|
2708
2708
|
}
|
|
2709
2709
|
setLinearVelocity(body, velocity) {
|
|
2710
|
-
this.vectorCommand(
|
|
2710
|
+
this.vectorCommand(chunk2O2CG465_js.OP_SET_LINEAR_VELOCITY, body, velocity);
|
|
2711
2711
|
}
|
|
2712
2712
|
setAngularVelocity(body, velocity) {
|
|
2713
|
-
this.vectorCommand(
|
|
2713
|
+
this.vectorCommand(chunk2O2CG465_js.OP_SET_ANGULAR_VELOCITY, body, velocity);
|
|
2714
2714
|
}
|
|
2715
2715
|
applyImpulse(body, impulse) {
|
|
2716
|
-
this.vectorCommand(
|
|
2716
|
+
this.vectorCommand(chunk2O2CG465_js.OP_APPLY_IMPULSE, body, impulse);
|
|
2717
2717
|
}
|
|
2718
2718
|
applyTorqueImpulse(body, impulse) {
|
|
2719
|
-
this.vectorCommand(
|
|
2719
|
+
this.vectorCommand(chunk2O2CG465_js.OP_APPLY_TORQUE_IMPULSE, body, impulse);
|
|
2720
2720
|
}
|
|
2721
2721
|
addForce(body, force) {
|
|
2722
|
-
this.vectorCommand(
|
|
2722
|
+
this.vectorCommand(chunk2O2CG465_js.OP_ADD_FORCE, body, force);
|
|
2723
2723
|
}
|
|
2724
2724
|
applyImpulseAtPoint(body, impulse, point) {
|
|
2725
|
-
this.pointCommand(
|
|
2725
|
+
this.pointCommand(chunk2O2CG465_js.OP_APPLY_IMPULSE_AT_POINT, body, impulse, point);
|
|
2726
2726
|
}
|
|
2727
2727
|
addForceAtPoint(body, force, point) {
|
|
2728
|
-
this.pointCommand(
|
|
2728
|
+
this.pointCommand(chunk2O2CG465_js.OP_ADD_FORCE_AT_POINT, body, force, point);
|
|
2729
2729
|
}
|
|
2730
2730
|
addTorque(body, torque) {
|
|
2731
|
-
this.vectorCommand(
|
|
2731
|
+
this.vectorCommand(chunk2O2CG465_js.OP_ADD_TORQUE, body, torque);
|
|
2732
2732
|
}
|
|
2733
2733
|
extra(name) {
|
|
2734
2734
|
let fn = this.session.symbols[name];
|
|
@@ -2739,43 +2739,43 @@ var EnginePhysics = class {
|
|
|
2739
2739
|
let s = this.session;
|
|
2740
2740
|
s.flush();
|
|
2741
2741
|
let floats = s.registerFloats;
|
|
2742
|
-
floats[
|
|
2742
|
+
floats[chunk2O2CG465_js.VECTOR_OUT] = point.x, floats[chunk2O2CG465_js.VECTOR_OUT + 1] = point.y, floats[chunk2O2CG465_js.VECTOR_OUT + 2] = point.z, s.check(this.extra("engine_body_velocity_at_point")(s.require(), body), "velocity at point"), this.readVector(out);
|
|
2743
2743
|
}
|
|
2744
2744
|
setJointMotorPosition(joint, target, stiffness, damping) {
|
|
2745
2745
|
let s = this.session;
|
|
2746
2746
|
s.flush();
|
|
2747
2747
|
let floats = s.registerFloats;
|
|
2748
|
-
floats[
|
|
2748
|
+
floats[chunk2O2CG465_js.MOTOR_TARGET] = target, floats[chunk2O2CG465_js.MOTOR_STIFFNESS] = stiffness, floats[chunk2O2CG465_js.MOTOR_DAMPING] = damping, s.check(this.extra("engine_joint_motor_position")(s.require(), joint), "joint motor position");
|
|
2749
2749
|
}
|
|
2750
2750
|
castShape(query, out) {
|
|
2751
2751
|
let s = this.session;
|
|
2752
2752
|
s.flush();
|
|
2753
2753
|
let words = s.registerWords, floats = s.registerFloats;
|
|
2754
|
-
words[
|
|
2755
|
-
for (let k = 0; k < 4; k++) floats[
|
|
2756
|
-
floats[
|
|
2757
|
-
let hit = s.check(this.extra("engine_shape_cast")(s.require()), "shape cast") ===
|
|
2758
|
-
return out.hit = hit, hit ? (out.collider = words[
|
|
2754
|
+
words[chunk2O2CG465_js.CAST_SHAPE] = chunkRCQ2MPBV_js.castShapeCode(query.kind), floats[chunk2O2CG465_js.CAST_PARAMS] = query.params.x, floats[chunk2O2CG465_js.CAST_PARAMS + 1] = query.params.y, floats[chunk2O2CG465_js.CAST_PARAMS + 2] = query.params.z;
|
|
2755
|
+
for (let k = 0; k < 4; k++) floats[chunk2O2CG465_js.CAST_ROTATION + k] = query.rotation[k];
|
|
2756
|
+
floats[chunk2O2CG465_js.RAY_ORIGIN] = query.origin.x, floats[chunk2O2CG465_js.RAY_ORIGIN + 1] = query.origin.y, floats[chunk2O2CG465_js.RAY_ORIGIN + 2] = query.origin.z, floats[chunk2O2CG465_js.RAY_DIRECTION] = query.direction.x, floats[chunk2O2CG465_js.RAY_DIRECTION + 1] = query.direction.y, floats[chunk2O2CG465_js.RAY_DIRECTION + 2] = query.direction.z, floats[chunk2O2CG465_js.RAY_MAX] = query.maxDistance, words[chunk2O2CG465_js.RAY_INCLUDE_SENSORS] = query.includeSensors ? 1 : 0, words[chunk2O2CG465_js.RAY_EXCLUDE] = query.excludeBody < 0 ? chunk2O2CG465_js.NO_EXCLUDE : query.excludeBody;
|
|
2757
|
+
let hit = s.check(this.extra("engine_shape_cast")(s.require()), "shape cast") === chunk2O2CG465_js.RAY_HIT;
|
|
2758
|
+
return out.hit = hit, hit ? (out.collider = words[chunk2O2CG465_js.HIT_COLLIDER], out.distance = floats[chunk2O2CG465_js.HIT_DISTANCE], out.pointX = floats[chunk2O2CG465_js.HIT_POINT], out.pointY = floats[chunk2O2CG465_js.HIT_POINT + 1], out.pointZ = floats[chunk2O2CG465_js.HIT_POINT + 2], out.normalX = floats[chunk2O2CG465_js.HIT_NORMAL], out.normalY = floats[chunk2O2CG465_js.HIT_NORMAL + 1], out.normalZ = floats[chunk2O2CG465_js.HIT_NORMAL + 2], true) : (out.collider = -1, false);
|
|
2759
2759
|
}
|
|
2760
2760
|
overlapSphere(x, y, z, radius, includeSensors, out) {
|
|
2761
2761
|
let s = this.session;
|
|
2762
2762
|
s.flush();
|
|
2763
2763
|
let words = s.registerWords, floats = s.registerFloats;
|
|
2764
|
-
floats[
|
|
2764
|
+
floats[chunk2O2CG465_js.RAY_ORIGIN] = x, floats[chunk2O2CG465_js.RAY_ORIGIN + 1] = y, floats[chunk2O2CG465_js.RAY_ORIGIN + 2] = z, floats[chunk2O2CG465_js.RAY_MAX] = radius, words[chunk2O2CG465_js.RAY_INCLUDE_SENSORS] = includeSensors ? 1 : 0, out.count = s.check(this.extra("engine_overlap_sphere")(s.require()), "sphere overlap"), out.collider = out.count > 0 ? words[chunk2O2CG465_js.HIT_COLLIDER] : -1;
|
|
2765
2765
|
}
|
|
2766
2766
|
pointCommand(op, body, v, p) {
|
|
2767
2767
|
let s = this.session, o = s.command(op, body), f = s.commandPayload;
|
|
2768
2768
|
f[o] = v.x, f[o + 1] = v.y, f[o + 2] = v.z, f[o + 3] = p.x, f[o + 4] = p.y, f[o + 5] = p.z;
|
|
2769
2769
|
}
|
|
2770
2770
|
resetForces(body) {
|
|
2771
|
-
this.session.command(
|
|
2771
|
+
this.session.command(chunk2O2CG465_js.OP_RESET_FORCES, body);
|
|
2772
2772
|
}
|
|
2773
2773
|
isSleeping(body) {
|
|
2774
2774
|
let s = this.session;
|
|
2775
2775
|
return s.flush(), s.check(s.exports.engine_body_sleeping(s.require(), body), "sleeping") === 1;
|
|
2776
2776
|
}
|
|
2777
2777
|
wake(body) {
|
|
2778
|
-
this.session.command(
|
|
2778
|
+
this.session.command(chunk2O2CG465_js.OP_WAKE, body);
|
|
2779
2779
|
}
|
|
2780
2780
|
batchHandle() {
|
|
2781
2781
|
let s = this.session;
|
|
@@ -2785,9 +2785,9 @@ var EnginePhysics = class {
|
|
|
2785
2785
|
let s = this.session;
|
|
2786
2786
|
s.flush();
|
|
2787
2787
|
let words = s.registerWords, floats = s.registerFloats;
|
|
2788
|
-
floats[
|
|
2789
|
-
let hit = s.check(s.exports.engine_raycast(s.require()), "raycast") ===
|
|
2790
|
-
return out.hit = hit, hit ? (out.collider = words[
|
|
2788
|
+
floats[chunk2O2CG465_js.RAY_ORIGIN] = ray.origin.x, floats[chunk2O2CG465_js.RAY_ORIGIN + 1] = ray.origin.y, floats[chunk2O2CG465_js.RAY_ORIGIN + 2] = ray.origin.z, floats[chunk2O2CG465_js.RAY_DIRECTION] = ray.direction.x, floats[chunk2O2CG465_js.RAY_DIRECTION + 1] = ray.direction.y, floats[chunk2O2CG465_js.RAY_DIRECTION + 2] = ray.direction.z, floats[chunk2O2CG465_js.RAY_MAX] = ray.maxDistance, words[chunk2O2CG465_js.RAY_SOLID] = ray.solid ? 1 : 0, words[chunk2O2CG465_js.RAY_INCLUDE_SENSORS] = ray.includeSensors ? 1 : 0, words[chunk2O2CG465_js.RAY_EXCLUDE] = ray.excludeCollider < 0 ? chunk2O2CG465_js.NO_EXCLUDE : ray.excludeCollider;
|
|
2789
|
+
let hit = s.check(s.exports.engine_raycast(s.require()), "raycast") === chunk2O2CG465_js.RAY_HIT;
|
|
2790
|
+
return out.hit = hit, hit ? (out.collider = words[chunk2O2CG465_js.HIT_COLLIDER], out.distance = floats[chunk2O2CG465_js.HIT_DISTANCE], out.pointX = floats[chunk2O2CG465_js.HIT_POINT], out.pointY = floats[chunk2O2CG465_js.HIT_POINT + 1], out.pointZ = floats[chunk2O2CG465_js.HIT_POINT + 2], out.normalX = floats[chunk2O2CG465_js.HIT_NORMAL], out.normalY = floats[chunk2O2CG465_js.HIT_NORMAL + 1], out.normalZ = floats[chunk2O2CG465_js.HIT_NORMAL + 2], true) : (out.collider = -1, false);
|
|
2791
2791
|
}
|
|
2792
2792
|
contactCount() {
|
|
2793
2793
|
return this.session.contacts;
|
|
@@ -2805,9 +2805,9 @@ var EnginePhysics = class {
|
|
|
2805
2805
|
let s = this.session;
|
|
2806
2806
|
s.flush();
|
|
2807
2807
|
let words = s.descWords, floats = s.descFloats;
|
|
2808
|
-
if (words.fill(0), floats[
|
|
2809
|
-
words[
|
|
2810
|
-
for (let k = 0; k < 3; k++) floats[
|
|
2808
|
+
if (words.fill(0), floats[chunk2O2CG465_js.CONTROLLER_OFFSET] = desc.offset ?? (0.01), floats[chunk2O2CG465_js.CONTROLLER_MAX_SLOPE_CLIMB] = desc.maxSlopeClimbDegrees === void 0 ? NO_VALUE : desc.maxSlopeClimbDegrees * DEGREES_TO_RADIANS, floats[chunk2O2CG465_js.CONTROLLER_MIN_SLOPE_SLIDE] = desc.minSlopeSlideDegrees === void 0 ? NO_VALUE : desc.minSlopeSlideDegrees * DEGREES_TO_RADIANS, floats[chunk2O2CG465_js.CONTROLLER_AUTOSTEP_HEIGHT] = desc.autostepMaxHeight ?? NO_VALUE, floats[chunk2O2CG465_js.CONTROLLER_AUTOSTEP_WIDTH] = desc.autostepMinWidth ?? NO_VALUE, floats[chunk2O2CG465_js.CONTROLLER_SNAP] = desc.snapToGround ?? NO_VALUE, words[chunk2O2CG465_js.CONTROLLER_SLIDE] = desc.slide === void 0 ? chunk2O2CG465_js.CONTROLLER_SLIDE_UNSET : desc.slide ? 1 : 0, desc.up) {
|
|
2809
|
+
words[chunk2O2CG465_js.CONTROLLER_HAS_UP] = 1;
|
|
2810
|
+
for (let k = 0; k < 3; k++) floats[chunk2O2CG465_js.CONTROLLER_UP + k] = desc.up[k];
|
|
2811
2811
|
}
|
|
2812
2812
|
return s.check(s.exports.engine_controller_create(s.require()), "create controller");
|
|
2813
2813
|
}
|
|
@@ -2815,7 +2815,7 @@ var EnginePhysics = class {
|
|
|
2815
2815
|
let s = this.session;
|
|
2816
2816
|
s.flush();
|
|
2817
2817
|
let floats = s.registerFloats;
|
|
2818
|
-
floats[
|
|
2818
|
+
floats[chunk2O2CG465_js.VECTOR_OUT] = desired.x, floats[chunk2O2CG465_js.VECTOR_OUT + 1] = desired.y, floats[chunk2O2CG465_js.VECTOR_OUT + 2] = desired.z, s.check(s.exports.engine_character_move(s.require(), controller, collider), "move character"), out.x = floats[chunk2O2CG465_js.VECTOR_OUT], out.y = floats[chunk2O2CG465_js.VECTOR_OUT + 1], out.z = floats[chunk2O2CG465_js.VECTOR_OUT + 2], out.grounded = s.registerWords[chunk2O2CG465_js.GROUNDED_OUT] === 1;
|
|
2819
2819
|
}
|
|
2820
2820
|
destroyCharacterController(controller) {
|
|
2821
2821
|
let s = this.session;
|
|
@@ -2825,27 +2825,27 @@ var EnginePhysics = class {
|
|
|
2825
2825
|
this.craft?.dispose(), this.session.close();
|
|
2826
2826
|
}
|
|
2827
2827
|
setColliderClass(collider, colliderClass) {
|
|
2828
|
-
let s = this.session, o = s.command(
|
|
2829
|
-
s.commandPayloadWords[o] =
|
|
2828
|
+
let s = this.session, o = s.command(chunk2O2CG465_js.OP_SET_COLLIDER_CLASS, collider);
|
|
2829
|
+
s.commandPayloadWords[o] = chunk3S6WPBZL_js.checkColliderClass(colliderClass);
|
|
2830
2830
|
}
|
|
2831
2831
|
setContactRule(platform, other, rule) {
|
|
2832
|
-
let s = this.session, o = s.command(
|
|
2833
|
-
|
|
2832
|
+
let s = this.session, o = s.command(chunk2O2CG465_js.OP_SET_CONTACT_RULE, chunk3S6WPBZL_js.packContactRuleHeader(platform, other, rule));
|
|
2833
|
+
chunk3S6WPBZL_js.writeContactRulePayload(rule, s.commandPayload, o);
|
|
2834
2834
|
}
|
|
2835
2835
|
setCollisionGroups(collider, membership, filter) {
|
|
2836
|
-
let s = this.session, o = s.command(
|
|
2836
|
+
let s = this.session, o = s.command(chunk2O2CG465_js.OP_SET_COLLIDER_GROUPS, collider);
|
|
2837
2837
|
s.commandPayloadWords[o] = membership & (65535), s.commandPayloadWords[o + 1] = filter & (65535);
|
|
2838
2838
|
}
|
|
2839
2839
|
setSolver(iterations, pgsIterations, ccdSubsteps) {
|
|
2840
|
-
let s = this.session, o = s.command(
|
|
2840
|
+
let s = this.session, o = s.command(chunk2O2CG465_js.OP_SET_SOLVER, 0);
|
|
2841
2841
|
s.commandPayloadWords[o] = iterations, s.commandPayloadWords[o + 1] = pgsIterations, s.commandPayloadWords[o + 2] = ccdSubsteps;
|
|
2842
2842
|
}
|
|
2843
2843
|
setSoftCcd(body, distance) {
|
|
2844
|
-
let s = this.session, o = s.command(
|
|
2844
|
+
let s = this.session, o = s.command(chunk2O2CG465_js.OP_SET_BODY_SOFT_CCD, body);
|
|
2845
2845
|
s.commandPayload[o] = distance;
|
|
2846
2846
|
}
|
|
2847
2847
|
setSleepThresholds(body, linear2, angular, seconds) {
|
|
2848
|
-
let s = this.session, o = s.command(
|
|
2848
|
+
let s = this.session, o = s.command(chunk2O2CG465_js.OP_SET_BODY_SLEEP, body), f = s.commandPayload;
|
|
2849
2849
|
f[o] = linear2, f[o + 1] = angular, f[o + 2] = seconds;
|
|
2850
2850
|
}
|
|
2851
2851
|
vectorCommand(op, body, v) {
|
|
@@ -2854,10 +2854,10 @@ var EnginePhysics = class {
|
|
|
2854
2854
|
}
|
|
2855
2855
|
readVector(out) {
|
|
2856
2856
|
let floats = this.session.registerFloats;
|
|
2857
|
-
out.x = floats[
|
|
2857
|
+
out.x = floats[chunk2O2CG465_js.VECTOR_OUT], out.y = floats[chunk2O2CG465_js.VECTOR_OUT + 1], out.z = floats[chunk2O2CG465_js.VECTOR_OUT + 2];
|
|
2858
2858
|
}
|
|
2859
2859
|
stage(staged, data, pointerSlot, lengthSlot) {
|
|
2860
|
-
let s = this.session, bytes = data.length *
|
|
2860
|
+
let s = this.session, bytes = data.length * chunk2O2CG465_js.WORD_BYTES, pointer = s.exports.engine_alloc(bytes, chunk2O2CG465_js.WORD_BYTES);
|
|
2861
2861
|
if (pointer === (0)) throw new chunk2V7IL4HC_js.GameError("capacity_exceeded", "engine memory cannot hold collider data");
|
|
2862
2862
|
staged.push({ pointer, bytes }), new Uint8Array(s.buffer, pointer, bytes).set(new Uint8Array(data.buffer, data.byteOffset, bytes)), s.descWords[pointerSlot] = pointer, s.descWords[lengthSlot] = data.length;
|
|
2863
2863
|
}
|
|
@@ -2867,15 +2867,15 @@ var EnginePhysics = class {
|
|
|
2867
2867
|
var NO_WORLD2 = 0, EMPTY_WORDS = new Uint32Array(0), EMPTY_FLOATS = new Float32Array(0), EMPTY_BYTES = new Uint8Array(0);
|
|
2868
2868
|
function failure3(code, what) {
|
|
2869
2869
|
switch (code) {
|
|
2870
|
-
case
|
|
2870
|
+
case chunk2O2CG465_js.ERROR_CAPACITY_EXCEEDED:
|
|
2871
2871
|
return new chunk2V7IL4HC_js.GameError("capacity_exceeded", `${what}: capacity exceeded`);
|
|
2872
|
-
case
|
|
2872
|
+
case chunk2O2CG465_js.ERROR_DEAD_ENTITY:
|
|
2873
2873
|
return new chunk2V7IL4HC_js.GameError("dead_entity", `${what}: entity has no transform`);
|
|
2874
|
-
case
|
|
2874
|
+
case chunk2O2CG465_js.ERROR_UNKNOWN_RESOURCE:
|
|
2875
2875
|
return new chunk2V7IL4HC_js.GameError("unknown_resource", `${what}: unknown resource`);
|
|
2876
|
-
case
|
|
2876
|
+
case chunk2O2CG465_js.ERROR_UNSUPPORTED:
|
|
2877
2877
|
return new chunk2V7IL4HC_js.GameError("unsupported_feature", `${what}: unsupported`);
|
|
2878
|
-
case
|
|
2878
|
+
case chunk2O2CG465_js.ERROR_INVALID_ARGUMENT:
|
|
2879
2879
|
default:
|
|
2880
2880
|
return new chunk2V7IL4HC_js.GameError("invalid_argument", `${what}: invalid argument`);
|
|
2881
2881
|
}
|
|
@@ -2906,25 +2906,25 @@ var EngineSession = class {
|
|
|
2906
2906
|
}
|
|
2907
2907
|
open(desc) {
|
|
2908
2908
|
if (this.world !== (0)) throw new chunk2V7IL4HC_js.GameError("invalid_argument", "engine world is already open");
|
|
2909
|
-
let scratch = this.memory.allocate("u32",
|
|
2910
|
-
floats[
|
|
2909
|
+
let scratch = this.memory.allocate("u32", chunk2O2CG465_js.DESC_WORDS), floats = new Float32Array(scratch.buffer, scratch.byteOffset, chunk2O2CG465_js.DESC_WORDS), g = desc.gravity ?? [0, -9.81, 0];
|
|
2910
|
+
floats[chunk2O2CG465_js.WORLD_GRAVITY] = g[0], floats[chunk2O2CG465_js.WORLD_GRAVITY + 1] = g[1], floats[chunk2O2CG465_js.WORLD_GRAVITY + 2] = g[2], floats[chunk2O2CG465_js.WORLD_STEP_SECONDS] = desc.stepSeconds, scratch[chunk2O2CG465_js.WORLD_MAX_BODIES] = desc.maxBodies ?? 2048, scratch[chunk2O2CG465_js.WORLD_MAX_COLLIDERS] = desc.maxColliders ?? 4096, scratch[chunk2O2CG465_js.WORLD_MAX_JOINTS] = desc.maxJoints ?? 1024, scratch[chunk2O2CG465_js.WORLD_MAX_CONTACTS] = desc.maxContactEvents ?? 1024, scratch[chunk2O2CG465_js.WORLD_MAX_CONTROLLERS] = desc.maxCharacterControllers ?? 64, scratch[chunk2O2CG465_js.WORLD_MAX_COMMANDS] = chunk2O2CG465_js.DEFAULT_MAX_COMMANDS;
|
|
2911
2911
|
let world = desc.rollback === void 0 ? this.exports.engine_world_create(scratch.byteOffset) : this.createRollback(scratch, desc.rollback);
|
|
2912
|
-
if (world === (0)) throw
|
|
2913
|
-
this.world = world, this.snapshots = desc.rollback === void 0 ? null :
|
|
2912
|
+
if (world === (0)) throw chunkNZTKLY2W_js.engineSessionFailure(this.runtime.symbols) ?? new chunk2V7IL4HC_js.GameError("capacity_exceeded", "engine world could not be created");
|
|
2913
|
+
this.world = world, this.snapshots = desc.rollback === void 0 ? null : chunkH3OQKK6X_js.WorldSnapshots.bind(this.runtime.symbols, this.runtime.memory, world, () => this.discard(), desc.rollback.frames ?? chunkH3OQKK6X_js.DEFAULT_ROLLBACK_FRAMES), chunkPTRNO5UD_js.noteInspectorWorld(world);
|
|
2914
2914
|
let buffer = this.runtime.memory.buffer, registers = this.exports.engine_world_registers(world);
|
|
2915
|
-
this.registerWords = new Uint32Array(buffer, registers,
|
|
2915
|
+
this.registerWords = new Uint32Array(buffer, registers, chunk2O2CG465_js.REGISTER_WORDS), this.registerFloats = new Float32Array(buffer, registers, chunk2O2CG465_js.REGISTER_WORDS);
|
|
2916
2916
|
let descPointer = this.exports.engine_world_desc(world);
|
|
2917
|
-
this.descWords = new Uint32Array(buffer, descPointer,
|
|
2918
|
-
let commandBuffer =
|
|
2919
|
-
this.commandWords = new Uint32Array(commandBuffer, commands,
|
|
2920
|
-
let maxContacts = scratch[
|
|
2917
|
+
this.descWords = new Uint32Array(buffer, descPointer, chunk2O2CG465_js.DESC_WORDS), this.descFloats = new Float32Array(buffer, descPointer, chunk2O2CG465_js.DESC_WORDS), this.commandCapacity = chunk2O2CG465_js.DEFAULT_MAX_COMMANDS;
|
|
2918
|
+
let commandBuffer = chunkNZTKLY2W_js.hasPhysics(this.runtime.symbols) ? buffer : new ArrayBuffer(chunk2O2CG465_js.DEFAULT_MAX_COMMANDS * chunk2O2CG465_js.COMMAND_WORDS * chunk2O2CG465_js.WORD_BYTES), commands = commandBuffer === buffer ? this.exports.engine_world_commands(world) : 0;
|
|
2919
|
+
this.commandWords = new Uint32Array(commandBuffer, commands, chunk2O2CG465_js.DEFAULT_MAX_COMMANDS * chunk2O2CG465_js.COMMAND_WORDS), this.commandFloats = new Float32Array(commandBuffer, commands, chunk2O2CG465_js.DEFAULT_MAX_COMMANDS * chunk2O2CG465_js.COMMAND_WORDS);
|
|
2920
|
+
let maxContacts = scratch[chunk2O2CG465_js.WORLD_MAX_CONTACTS];
|
|
2921
2921
|
this.contactA = new Uint32Array(buffer, this.exports.engine_contacts_a(world), maxContacts), this.contactB = new Uint32Array(buffer, this.exports.engine_contacts_b(world), maxContacts), this.contactBegan = new Uint8Array(buffer, this.exports.engine_contacts_started(world), maxContacts), this.columns && this.bindLayout(this.columns);
|
|
2922
2922
|
}
|
|
2923
2923
|
createRollback(desc, rollback) {
|
|
2924
2924
|
let symbols = this.runtime.symbols;
|
|
2925
|
-
if (!
|
|
2926
|
-
let config = this.memory.allocate("u32",
|
|
2927
|
-
|
|
2925
|
+
if (!chunkH3OQKK6X_js.hasRollback(symbols)) throw new chunk2V7IL4HC_js.GameError("unsupported_feature", "this engine has no client rollback (feature rollback_1)");
|
|
2926
|
+
let config = this.memory.allocate("u32", chunkH3OQKK6X_js.ROLLBACK_CONFIG_WORDS);
|
|
2927
|
+
chunkH3OQKK6X_js.writeRollbackConfig(config, rollback);
|
|
2928
2928
|
let create = symbols.engine_world_rollback_create;
|
|
2929
2929
|
return create(desc.byteOffset, config.byteOffset);
|
|
2930
2930
|
}
|
|
@@ -2938,8 +2938,8 @@ var EngineSession = class {
|
|
|
2938
2938
|
}
|
|
2939
2939
|
command(op, body) {
|
|
2940
2940
|
this.pending === this.commandCapacity && this.flush();
|
|
2941
|
-
let o = this.pending *
|
|
2942
|
-
return this.commandWords[o +
|
|
2941
|
+
let o = this.pending * chunk2O2CG465_js.COMMAND_WORDS;
|
|
2942
|
+
return this.commandWords[o + chunk2O2CG465_js.COMMAND_OP] = op, this.commandWords[o + chunk2O2CG465_js.COMMAND_BODY] = body, this.pending++, o + chunk2O2CG465_js.COMMAND_PAYLOAD;
|
|
2943
2943
|
}
|
|
2944
2944
|
get commandPayload() {
|
|
2945
2945
|
return this.commandFloats;
|
|
@@ -2962,16 +2962,16 @@ var EngineSession = class {
|
|
|
2962
2962
|
this.pending = 0, this.check(this.exports.engine_apply_commands(this.require(), count), "command");
|
|
2963
2963
|
}
|
|
2964
2964
|
step() {
|
|
2965
|
-
|
|
2965
|
+
chunkNZTKLY2W_js.requireEngineMemoryHeld(this.runtime.memory);
|
|
2966
2966
|
let count = this.pending;
|
|
2967
2967
|
this.pending = 0, this.check(this.exports.engine_step(this.require(), count), "step"), this.contacts = this.exports.engine_contact_count(this.world);
|
|
2968
2968
|
}
|
|
2969
2969
|
close() {
|
|
2970
|
-
this.world !== (0) && (chunkPTRNO5UD_js.noteInspectorWorld((0)), this.exports.engine_world_destroy(this.world)), this.world = (0), this.snapshots = null, this.pending = 0, this.columns = null, this.memory.release(),
|
|
2970
|
+
this.world !== (0) && (chunkPTRNO5UD_js.noteInspectorWorld((0)), this.exports.engine_world_destroy(this.world)), this.world = (0), this.snapshots = null, this.pending = 0, this.columns = null, this.memory.release(), chunkH3OQKK6X_js.releaseEngineArena(this.runtime.symbols);
|
|
2971
2971
|
}
|
|
2972
2972
|
bindLayout(columns) {
|
|
2973
2973
|
let words = this.descWords;
|
|
2974
|
-
words[
|
|
2974
|
+
words[chunk2O2CG465_js.LAYOUT_POSITION] = columns.position.byteOffset, words[chunk2O2CG465_js.LAYOUT_ROTATION] = columns.rotation.byteOffset, words[chunk2O2CG465_js.LAYOUT_SCALE] = columns.scale.byteOffset, words[chunk2O2CG465_js.LAYOUT_PREVIOUS_POSITION] = columns.previousPosition.byteOffset, words[chunk2O2CG465_js.LAYOUT_PREVIOUS_ROTATION] = columns.previousRotation.byteOffset, words[chunk2O2CG465_js.LAYOUT_PREVIOUS_SCALE] = columns.previousScale.byteOffset, words[chunk2O2CG465_js.LAYOUT_PARENT] = columns.parent.byteOffset, words[chunk2O2CG465_js.LAYOUT_RENDER] = columns.render.byteOffset, words[chunk2O2CG465_js.LAYOUT_ENTITIES] = columns.entities.byteOffset, words[chunk2O2CG465_js.LAYOUT_SPARSE] = columns.sparse.byteOffset, words[chunk2O2CG465_js.LAYOUT_CAPACITY] = columns.capacity, words[chunk2O2CG465_js.LAYOUT_SPARSE_LEN] = columns.sparse.byteLength / chunk2O2CG465_js.WORD_BYTES, this.check(this.exports.engine_bind_transforms(this.world), "bind transforms");
|
|
2975
2975
|
}
|
|
2976
2976
|
};
|
|
2977
2977
|
|
|
@@ -2989,7 +2989,7 @@ var EngineTransforms = class {
|
|
|
2989
2989
|
}
|
|
2990
2990
|
computeRender(count, time, version) {
|
|
2991
2991
|
let s = this.session, world = s.require();
|
|
2992
|
-
s.registerFloats[
|
|
2992
|
+
s.registerFloats[chunk2O2CG465_js.REGISTER_FRAME_ALPHA] = time.values[chunkYXGZQPUD_js.FRAME_ALPHA_SLOT], s.registerWords[chunk2O2CG465_js.REGISTER_FRAME_VERSION_LOW] = version >>> 0, s.registerWords[chunk2O2CG465_js.REGISTER_FRAME_VERSION_HIGH] = Math.floor(version / chunk2O2CG465_js.U32_RANGE), s.check(s.exports.engine_compute_render(world, count), "compute render");
|
|
2993
2993
|
}
|
|
2994
2994
|
};
|
|
2995
2995
|
|
|
@@ -3017,15 +3017,15 @@ function enginePrototype(runtime) {
|
|
|
3017
3017
|
}
|
|
3018
3018
|
function engineSignatureMismatches(symbols, arity, prototype = null) {
|
|
3019
3019
|
let mismatches = [];
|
|
3020
|
-
for (let name in
|
|
3020
|
+
for (let name in chunk2O2CG465_js.ENGINE_EXPORT_ARITY) {
|
|
3021
3021
|
if (typeof symbols[name] != "function") continue;
|
|
3022
|
-
let expected =
|
|
3022
|
+
let expected = chunk2O2CG465_js.ENGINE_EXPORT_ARITY[name], actual = arity(name);
|
|
3023
3023
|
if (actual !== expected) {
|
|
3024
3024
|
mismatches.push(`${name} takes ${actual < 0 ? "an unknown number of" : actual} arguments, this package expects ${expected}`);
|
|
3025
3025
|
continue;
|
|
3026
3026
|
}
|
|
3027
3027
|
let advertised = prototype?.(name) ?? (0);
|
|
3028
|
-
advertised !== (0) && advertised !==
|
|
3028
|
+
advertised !== (0) && advertised !== chunk2O2CG465_js.ENGINE_EXPORT_PROTOTYPES[name] && mismatches.push(`${name} has another prototype than this package expects`);
|
|
3029
3029
|
}
|
|
3030
3030
|
return mismatches;
|
|
3031
3031
|
}
|
|
@@ -3047,7 +3047,7 @@ function engineAudio(options, runtime) {
|
|
|
3047
3047
|
if (explicit) return explicit;
|
|
3048
3048
|
if (options.audio) return options.audio;
|
|
3049
3049
|
let context = options.audioContext ?? runtime?.audioContext?.() ?? null, chosen = options.audioWorklet === null ? null : defaultWorklet(runtime, context), worklet = runtime && chosen ? workletAudio(runtime, chosen, assets) : null;
|
|
3050
|
-
return worklet || (context ? new
|
|
3050
|
+
return worklet || (context ? new chunkPKOZXD2Q_js.WebAudioPort(context) : new chunkPKOZXD2Q_js.HeadlessAudio());
|
|
3051
3051
|
}
|
|
3052
3052
|
function defaultWorklet(runtime, context) {
|
|
3053
3053
|
let module = runtime?.audioWorklet ?? null, worklets = context?.audioWorklet;
|
|
@@ -3057,33 +3057,33 @@ function engineHost(runtime) {
|
|
|
3057
3057
|
return {
|
|
3058
3058
|
exports: runtime.symbols,
|
|
3059
3059
|
memory: runtime.memory,
|
|
3060
|
-
allocate: (bytes) => runtime.exports.engine_alloc(bytes,
|
|
3061
|
-
release: (pointer, bytes) => runtime.exports.engine_free(pointer, bytes,
|
|
3060
|
+
allocate: (bytes) => runtime.exports.engine_alloc(bytes, chunk2O2CG465_js.COLUMN_ALIGN),
|
|
3061
|
+
release: (pointer, bytes) => runtime.exports.engine_free(pointer, bytes, chunk2O2CG465_js.COLUMN_ALIGN)
|
|
3062
3062
|
};
|
|
3063
3063
|
}
|
|
3064
3064
|
function workletAudio(runtime, options, assets) {
|
|
3065
3065
|
let symbols = runtime.symbols;
|
|
3066
|
-
if ([...
|
|
3067
|
-
let host = engineHost(runtime), relay =
|
|
3068
|
-
return new
|
|
3066
|
+
if ([...chunkH3OQKK6X_js.ENGINE_AUDIO_EXPORT_NAMES.filter((name) => name !== "engine_audio_bound"), ...chunkH3OQKK6X_js.ENGINE_AUDIO_WORKLET_EXPORTS].some((name) => typeof symbols[name] != "function")) return null;
|
|
3067
|
+
let host = engineHost(runtime), relay = chunkPKOZXD2Q_js.WorkletAudio.create(host, options);
|
|
3068
|
+
return new chunkH3OQKK6X_js.EngineAudioPort({ ...host, decode: runtime.decodeAudio ?? null, assets, handle: relay.handle, relay });
|
|
3069
3069
|
}
|
|
3070
3070
|
function nativeAudio(runtime, assets) {
|
|
3071
3071
|
let symbols = runtime.symbols;
|
|
3072
|
-
if (
|
|
3072
|
+
if (chunkH3OQKK6X_js.ENGINE_AUDIO_EXPORT_NAMES.some((name) => typeof symbols[name] != "function")) return null;
|
|
3073
3073
|
let exports = symbols;
|
|
3074
|
-
return exports.engine_audio_bound() === 0 ? null : new
|
|
3074
|
+
return exports.engine_audio_bound() === 0 ? null : new chunkH3OQKK6X_js.EngineAudioPort({
|
|
3075
3075
|
exports,
|
|
3076
3076
|
memory: runtime.memory,
|
|
3077
|
-
allocate: (bytes) => runtime.exports.engine_alloc(bytes,
|
|
3078
|
-
release: (pointer, bytes) => runtime.exports.engine_free(pointer, bytes,
|
|
3077
|
+
allocate: (bytes) => runtime.exports.engine_alloc(bytes, chunk2O2CG465_js.COLUMN_ALIGN),
|
|
3078
|
+
release: (pointer, bytes) => runtime.exports.engine_free(pointer, bytes, chunk2O2CG465_js.COLUMN_ALIGN),
|
|
3079
3079
|
decode: runtime.decodeAudio ?? null,
|
|
3080
3080
|
assets
|
|
3081
3081
|
});
|
|
3082
3082
|
}
|
|
3083
3083
|
function assembleEngineBackend(runtime, graphics, audio) {
|
|
3084
3084
|
verifyEngineSignatures(runtime);
|
|
3085
|
-
let memory = new
|
|
3086
|
-
return port instanceof EngineGraphics && physics.craft?.bindRender?.(() => port.renderHandle), audio instanceof
|
|
3085
|
+
let memory = new chunkH3OQKK6X_js.EngineMemory(runtime), session = new EngineSession(runtime, memory), port = graphics(runtime), physics = new EnginePhysics(session);
|
|
3086
|
+
return port instanceof EngineGraphics && physics.craft?.bindRender?.(() => port.renderHandle), audio instanceof chunkH3OQKK6X_js.EngineAudioPort && audio.bindOcclusionWorld(() => session.world), chunk7AAIAVAA_js.useTransformEngine(chunk7AAIAVAA_js.bindTransformEngine(runtime.symbols, runtime.memory)), {
|
|
3087
3087
|
name: ENGINE_BACKEND_NAME,
|
|
3088
3088
|
version: ENGINE_BACKEND_VERSION,
|
|
3089
3089
|
memory,
|
|
@@ -3097,8 +3097,8 @@ function assembleEngineBackend(runtime, graphics, audio) {
|
|
|
3097
3097
|
scenery: engineScenery(runtime, port),
|
|
3098
3098
|
terrain: engineTerrain(runtime, port, () => session.world),
|
|
3099
3099
|
soa: chunkRCQ2MPBV_js.bindSoaEngine(runtime.symbols, runtime.memory),
|
|
3100
|
-
kernels:
|
|
3101
|
-
chemistry:
|
|
3100
|
+
kernels: chunk3S6WPBZL_js.bindKernelEngine(runtime.symbols, runtime.memory),
|
|
3101
|
+
chemistry: chunk7AAIAVAA_js.bindChemistryEngine(runtime.symbols, runtime.memory),
|
|
3102
3102
|
fluids: engineFluids(runtime, port),
|
|
3103
3103
|
destruction: engineDestruction(runtime, () => session.world),
|
|
3104
3104
|
softBodies: engineSoftBodies(runtime, port, () => session.world),
|
|
@@ -3109,50 +3109,50 @@ function assembleEngineBackend(runtime, graphics, audio) {
|
|
|
3109
3109
|
};
|
|
3110
3110
|
}
|
|
3111
3111
|
function engineStory(runtime) {
|
|
3112
|
-
let exports =
|
|
3113
|
-
return exports !== null ? new
|
|
3112
|
+
let exports = chunk3S6WPBZL_js.engineStoryExports(runtime);
|
|
3113
|
+
return exports !== null ? new chunk3S6WPBZL_js.EngineStory(runtime, exports) : null;
|
|
3114
3114
|
}
|
|
3115
3115
|
function engineSmoke(runtime, port) {
|
|
3116
|
-
let exports =
|
|
3117
|
-
return exports !== null && port instanceof EngineGraphics ? new
|
|
3116
|
+
let exports = chunk7AAIAVAA_js.engineSmokeExports(runtime);
|
|
3117
|
+
return exports !== null && port instanceof EngineGraphics ? new chunk7AAIAVAA_js.EngineSmoke(runtime, exports, () => port.renderHandle) : null;
|
|
3118
3118
|
}
|
|
3119
3119
|
function engineCloths(runtime, port, world) {
|
|
3120
|
-
let exports =
|
|
3120
|
+
let exports = chunkX5A5FOWW_js.engineClothExports(runtime);
|
|
3121
3121
|
if (exports === null) return null;
|
|
3122
3122
|
let render = port instanceof EngineGraphics ? () => port.renderHandle : () => 0;
|
|
3123
|
-
return new
|
|
3123
|
+
return new chunkX5A5FOWW_js.EngineCloths(runtime, exports, render, world);
|
|
3124
3124
|
}
|
|
3125
3125
|
function engineReactive(runtime, port) {
|
|
3126
|
-
let exports =
|
|
3126
|
+
let exports = chunk7AAIAVAA_js.engineReactiveExports(runtime);
|
|
3127
3127
|
if (exports === null) return null;
|
|
3128
3128
|
let render = port instanceof EngineGraphics ? () => port.renderHandle : () => 0;
|
|
3129
|
-
return new
|
|
3129
|
+
return new chunk7AAIAVAA_js.EngineReactive(runtime, exports, render);
|
|
3130
3130
|
}
|
|
3131
3131
|
function engineSoftBodies(runtime, port, world) {
|
|
3132
|
-
let exports =
|
|
3132
|
+
let exports = chunkX5A5FOWW_js.engineSoftBodyExports(runtime);
|
|
3133
3133
|
if (exports === null) return null;
|
|
3134
3134
|
let render = port instanceof EngineGraphics ? () => port.renderHandle : () => 0;
|
|
3135
|
-
return new
|
|
3135
|
+
return new chunkX5A5FOWW_js.EngineSoftBodies(runtime, exports, render, world);
|
|
3136
3136
|
}
|
|
3137
3137
|
function engineFluids(runtime, port) {
|
|
3138
|
-
let exports =
|
|
3139
|
-
return exports !== null && port instanceof EngineGraphics ? new
|
|
3138
|
+
let exports = chunk7AAIAVAA_js.engineFluidExports(runtime);
|
|
3139
|
+
return exports !== null && port instanceof EngineGraphics ? new chunk7AAIAVAA_js.EngineFluids(runtime, exports, () => port.renderHandle) : null;
|
|
3140
3140
|
}
|
|
3141
3141
|
function engineDestruction(runtime, world) {
|
|
3142
|
-
let exports =
|
|
3143
|
-
return exports !== null ? new
|
|
3142
|
+
let exports = chunk7AAIAVAA_js.engineDestructionExports(runtime);
|
|
3143
|
+
return exports !== null ? new chunk7AAIAVAA_js.EngineDestruction(runtime, exports, world) : null;
|
|
3144
3144
|
}
|
|
3145
3145
|
function engineTerrain(runtime, port, world) {
|
|
3146
|
-
let exports =
|
|
3147
|
-
return exports !== null && port instanceof EngineGraphics ? new
|
|
3146
|
+
let exports = chunkPKOZXD2Q_js.engineTerrainExports(runtime);
|
|
3147
|
+
return exports !== null && port instanceof EngineGraphics ? new chunkPKOZXD2Q_js.EngineTerrain(runtime, exports, () => port.renderHandle, world) : null;
|
|
3148
3148
|
}
|
|
3149
3149
|
function engineStreaming(runtime, port) {
|
|
3150
|
-
let exports =
|
|
3151
|
-
return exports !== null && port instanceof EngineGraphics ? new
|
|
3150
|
+
let exports = chunkSKQFLBDD_js.engineStreamExports(runtime);
|
|
3151
|
+
return exports !== null && port instanceof EngineGraphics ? new chunkSKQFLBDD_js.EngineWorldStreaming(runtime, exports, () => port.renderHandle) : null;
|
|
3152
3152
|
}
|
|
3153
3153
|
function engineScenery(runtime, port) {
|
|
3154
|
-
let exports =
|
|
3155
|
-
return exports !== null && port instanceof EngineGraphics ? new
|
|
3154
|
+
let exports = chunkSKQFLBDD_js.engineSplatExports(runtime);
|
|
3155
|
+
return exports !== null && port instanceof EngineGraphics ? new chunkSKQFLBDD_js.EngineScenery(runtime, exports, () => port.renderHandle) : null;
|
|
3156
3156
|
}
|
|
3157
3157
|
function engineNav(runtime) {
|
|
3158
3158
|
let exports = engineNavExports(runtime.symbols);
|