Blockly 3D Game Laser Airplane

Blockly 3D Game Laser Airplane script details
Author
matas
Type
Blockly logo image
blockly
App Version
0.15.14
Visibility
public
Date Created
Nov 12, 2022, 12:17:30 PM
Last Edit Date
Jul 28, 2024, 12:01:15 PM

Script Details

The Code
<xml xmlns="https://developers.google.com/blockly/xml"> <variables> <variable id="w;,D/nP)6x_3N,Xh+4CA">meshesToTrack</variable> <variable id="wdP2]qeqQ+RjpD3B;*h1">shouldStartTheGame</variable> <variable id=".zx|JB2gL|-5(=S3G2F|">shouldReplay</variable> <variable id="X,7}=g8X@8FQ7lkUEQ7J">cleanMeshOnStart</variable> <variable id="ozkOPC,(k5MXzTZLW??7">target1</variable> <variable id="/EEv2rdkFR(kTY!]$GXF">target2</variable> <variable id="HeR{U3@Of3E#?.N|WiIE">emptyListToFill1</variable> <variable id="2^RCzk}@44pn$4oKU!h8">emptyListToFill2</variable> <variable id="x,o(L}:en7~l`]VkNwJj">targetList</variable> <variable id=",NW+u:QXvv0ko/N8gwBk">restoreHit</variable> <variable id="$XN?nkp3eG*qvi`6ebC+">meshesToMove</variable> <variable id=")OGJ%%9UXX/|XR6_1]h`">plane</variable> <variable id="N55VA*wQ=JZ7)ZzC![e2">gameStarted</variable> <variable id="~d$PfCHmL3-(B`$Yx1-F">timerPaused</variable> <variable id="Ne13PA8xbZ|x~eAa9i6h">o</variable> <variable id="w]F3AtioA-ce0PoUY`(,">i</variable> <variable id="Sl/Sh}i.V2l`]!ci5At@">k</variable> <variable id="8Ksy1pExe?vRrMC0aiPt">widthMin</variable> <variable id="$/mds]S[E2a%g6Yc,BVE">secondsGiven</variable> <variable id="W{L4]JR8wmj_O^DxvM+7">resultingTextMesh</variable> <variable id=")FB(QiJelx*$9Er+`uG3">obstacleColMeshes</variable> <variable id="QJFOWq0t.:dzCgiYPM*?">handlerTimer</variable> <variable id="E;.tH+kiH]AKdVRt|L(X">gamePaused</variable> <variable id=".=vhFsvO;q,.9b)-Qz3l">widthMax</variable> <variable id="XV`eXIBD(bu,LazqRwTT">widthStep</variable> <variable id="~MwI1K$/`cUlVri|vBBF">j</variable> <variable id="l;zV{Uv*k.k)m:5$l!+A">ray</variable> <variable id="Qcdx,zyv.,|5{Pv,efhl">hitCount</variable> <variable id="x1}?6sE~+;43`Nb.]z]P">hitCountPrevious</variable> <variable id="q=-Wo9Xf3alN@)LF_7A?">n</variable> <variable id="yzLz+vt0vD]TZq3U[UfX">lengthMin</variable> <variable id="2B%.f-FHZS.vmE}c/W@O">lengthMax</variable> <variable id="vjkw9@`MjdDpte=:F*?k">lengthStep</variable> <variable id="/|EITw%4+pw$GiW+E:=E">targetCopy1</variable> <variable id="$=~^tUkWXeKr,;u)TkB}">bubbleScale</variable> <variable id="Q`UnZN[AiZpg%1(P%F[7">xRotation</variable> <variable id="eCi)`F3cKkux=_YqV^mb">mousePickingResult</variable> <variable id="F)w_7v5!Tavx+!ln:d[L">planeMesh</variable> <variable id="V8pA:KMfYFm%Mi-Cn;%3">drawnTextMeshes</variable> <variable id="vP8%K(.OV@=lS=`/Ep,e">matNotCollidedColor</variable> <variable id="GP;-F80W/DNm(uw8bX/E">matNotCollidedMetallic</variable> <variable id="R1GIHkyHWaMrR=#F^[m6">matNotCollidedRoughness</variable> <variable id="G0C?%a7j@H?e`8Aa77lE">matNotCollidedAlpha</variable> <variable id="{OXHIJ`_y(5[)T%xK}[f">resultTextMeshes</variable> <variable id="Ow^XX8)-OWW5Cwa=r!ck">targetCopy2</variable> <variable id="QQtWB.!bf|/Xj9,jPJ#+">speed</variable> <variable id="^0%.LXEQTuQf9^a1X[@7">position</variable> <variable id="Gn+k:ablb+I@(!A@r~[u">rotationSpeed</variable> <variable id="p5g0UQPeQRKZ=C6QX$!f">isPointerDown</variable> <variable id=",x|OVhpyoy8+r1.*WRTj">timeText</variable> <variable id="$SRhVP8-8gc/6!PDkc{P">topText</variable> <variable id="TX@@oa.EcQQv=/a/ylAv">zCoord</variable> <variable id="w-`jw_]`h4sSN7j6v%FG">zRotation</variable> <variable id="C$:Ym:z7US6]SXWDn22:">bottomText</variable> <variable id="i;cm5J?.TgpvRVfg!E6*">timeElapsedFromPreviousFrame</variable> <variable id="9yYuO^L^=eDN@I{PX._i">size</variable> <variable id="e[h3;!Y]$kwKjO8#sF(_">height</variable> <variable id="u8pzRT~Yq+ci$Pa(n{b1">materialHovered</variable> <variable id="L}.s3i)Ek7.f$`sMC`=I">materialNotSelected</variable> <variable id="tMWvaMdc|h|+z62Kp).3">startGameHitHppened</variable> <variable id="MZF66Jit8v(%L_G4Ppmo">materialSelected</variable> <variable id="M!3Bv!gbzYfWb$DnG;UC">xRand</variable> <variable id="J1-=DM*Lw~If0:K6AP#H">collisionCount</variable> <variable id=";5h%^BJh)`CAnK}F:xTC">obstacleInstances</variable> <variable id="Y1LKza4Qbw=?;i{Zju$7">yRand</variable> <variable id="w6!3dz$x.{owirB$Ucl_">zRand</variable> <variable id="i`?upbOhaXrYcEaiH^tC">r</variable> <variable id="42j0uXu*zxT#gWpBf|mU">collisionFound</variable> <variable id="?SfntWNDROXq7|uFzc=u">matCollidedColor</variable> <variable id="30#%0]L$:t6Ou}288YJ,">rayToCheck</variable> <variable id="^Fg{S%]^-Su#,dJ*jQ^~">matCollidedAlpha</variable> <variable id="@+:8_}NyQKSt3ZqRj)}z">pickResult</variable> <variable id="Z^6N%Qz;I1*UFFI1d]5M">rayStart</variable> <variable id="-Z2ex1M1~fOr(z`/x`!G">rayEnd</variable> <variable id=";63j/=~]1TvH[G7Z#h|+">loadingMesh</variable> <variable id=".UBM#mP(,U}f;{jf]Q5l">hitMesh</variable> <variable id="W,]`|.USpL!Gl7lG}w8$">material</variable> <variable id="cC?8ei#a5-1t_d*d#vk#">result</variable> <variable id=";S-l1atJ-^j6Dmyv9i2|">obstacle</variable> <variable id="FY|^#Zz#k.B4[{A_DFp]">checkPickMesh</variable> <variable id="wD(AH16(3Ob]=i+t(Evc">m</variable> <variable id="ETt77.7%q,y#[-0d?b]Y">countTimeMS</variable> <variable id="qkHe%-0P-88[y=XZ4Yiw">startTheGameMesh</variable> </variables> <block type="procedures_defnoreturn" id="fu(TG,/b~x/{LBw%(|]{" x="-1078" y="1272"> <field name="NAME">environmentSetup</field> <comment pinned="false" h="80" w="160">Describe this function...</comment> <statement name="STACK"> <block type="bitbybit.babylon.scene.enableSkybox" id="vaG7fw3}l#*`oOG@!WyG"> <value name="Skybox"> <block type="bitbybit.babylon.enums.skyboxEnum" id="Dr_uO^iV]y+P-eQ=QGDW"> <field name="bitbybit.babylon.enums.skyboxEnum">'city'</field> </block> </value> <value name="Size"> <block type="math_number" id="RpH=D=Sba%I0$qnYn.U="> <field name="NUM">2000</field> </block> </value> <value name="Blur"> <block type="math_number" id=",z+Vr?~gC97`iaD4wSch"> <field name="NUM">0.3</field> </block> </value> <value name="EnvironmentIntensity"> <block type="math_number" id="SpiR)!/MW7Gq{tQU|%n="> <field name="NUM">0.8</field> </block> </value> <next> <block type="bitbybit.babylon.scene.fog" id="@~ugiPD-U0+w*EcPag,N"> <value name="Mode"> <block type="bitbybit.babylon.enums.fogModeEnum" id="Y(,.Nj1dcG4NHs]aBTNN"> <field name="bitbybit.babylon.enums.fogModeEnum">'linear'</field> </block> </value> <value name="Color"> <block type="colour_picker" id="2k~F.ZHpY5ypjNC}EAHB"> <field name="COLOUR">#ffffff</field> </block> </value> <value name="Density"> <block type="math_number" id="oL]veD|OuRBh6$.o/+`E"> <field name="NUM">1</field> </block> </value> <value name="Start"> <block type="math_number" id="_`?u`_)!P9^60hr=[tYZ"> <field name="NUM">20</field> </block> </value> <value name="End"> <block type="math_number" id="LG[4:nA)cZ*7B}5w.^Yh"> <field name="NUM">6000</field> </block> </value> <next> <block type="bitbybit.babylon.scene.drawDirectionalLightNoReturn" id="wI:JX0A{/.CBl|OQxh7%"> <value name="Direction"> <block type="bitbybit.point.pointXYZ" id="+SuQH6a`e~E,iqO(DekG"> <value name="X"> <block type="math_number" id="-Sfe6laM@UxF}T1$:RoT"> <field name="NUM">-100</field> </block> </value> <value name="Y"> <block type="math_number" id="KA_|A.GZg2QH]_*Az,;7"> <field name="NUM">-100</field> </block> </value> <value name="Z"> <block type="math_number" id="*#O3!egPIo4-G!|UkCt`"> <field name="NUM">-100</field> </block> </value> </block> </value> <value name="Intensity"> <block type="math_number" id="b=qYglli1*T*E5%)Gm0k"> <field name="NUM">1</field> </block> </value> <value name="Diffuse"> <block type="colour_picker" id="Cr|)BzY`g~;!60tvd%H/"> <field name="COLOUR">#ffffff</field> </block> </value> <value name="Specular"> <block type="colour_picker" id="nbLs6PTqlaeZ7;*9);zs"> <field name="COLOUR">#ffffff</field> </block> </value> <value name="ShadowGeneratorMapSize"> <block type="math_number" id="E7R%ACDH^#G,TDYqaDnX"> <field name="NUM">1024</field> </block> </value> <value name="EnableShadows"> <block type="logic_boolean" id="NnF+t#wt+U:AEkbNx~em"> <field name="BOOL">TRUE</field> </block> </value> <value name="ShadowDarkness"> <block type="math_number" id="7}4HAcpx]gQzvA9[l~R3"> <field name="NUM">0</field> </block> </value> <next> <block type="bitbybit.babylon.scene.activateCamera" id="ae#=g=%/[N52uB!A6Q:9"> <value name="Camera"> <block type="bitbybit.babylon.camera.target.create" id="FaK_MYpf!9ffBh:~K(gf"> <value name="Position"> <block type="bitbybit.point.pointXYZ" id="P^Ivipvi_[y,aFK^+O}v"> <value name="X"> <block type="math_number" id="qKSm[i6hZugCMC5q;8Z["> <field name="NUM">0</field> </block> </value> <value name="Y"> <block type="math_number" id="dXo%yPVfBd|hV4y(/p]X"> <field name="NUM">37</field> </block> </value> <value name="Z"> <block type="math_number" id="XAk(uVO~`^9}@`^|lS?p"> <field name="NUM">-70</field> </block> </value> </block> </value> <value name="Target"> <block type="bitbybit.point.pointXYZ" id="8hgc*#ZgK;q]P6_NcOAN"> <value name="X"> <block type="math_number" id="u8}XaTJ/0kV4s77rCHsO"> <field name="NUM">0</field> </block> </value> <value name="Y"> <block type="math_number" id="0G;]O{oX,e%T`|;G3C!5"> <field name="NUM">30</field> </block> </value> <value name="Z"> <block type="math_number" id=")roLz{8^[3~ZWKYoTaTh"> <field name="NUM">0</field> </block> </value> </block> </value> </block> </value> </block> </next> </block> </next> </block> </next> </block> </statement> </block> <block type="procedures_callnoreturn" id="_QiG0*83-%gl!g^b5z,u" x="-311" y="1274"> <mutation name="environmentSetup"> </mutation> <next> <block type="variables_set" id="gYbWlKL,CX%sVsAFEB=6"> <field name="VAR" id="N55VA*wQ=JZ7)ZzC![e2">gameStarted</field> <value name="VALUE"> <block type="logic_boolean" id="aAHw6M)jsChK57X2WBS]"> <field name="BOOL">FALSE</field> </block> </value> <next> <block type="variables_set" id="MnePNY#jeTCneJx}WH#["> <field name="VAR" id="8Ksy1pExe?vRrMC0aiPt">widthMin</field> <value name="VALUE"> <block type="math_number" id="a+~[*(C.??arYzq,[g4P"> <field name="NUM">-300</field> </block> </value> <next> <block type="variables_set" id="Y]M~djDGE?%i2st,R{oI"> <field name="VAR" id=".=vhFsvO;q,.9b)-Qz3l">widthMax</field> <value name="VALUE"> <block type="math_number" id="x_A~a5i;PoONQ!pH.L!L"> <field name="NUM">300</field> </block> </value> <next> <block type="variables_set" id="J2iN6|Z%tBX%Y`l,](k`"> <field name="VAR" id="XV`eXIBD(bu,LazqRwTT">widthStep</field> <value name="VALUE"> <block type="math_number" id="b1?Z!D/MaVs7xYr!UHiR"> <field name="NUM">70</field> </block> </value> <next> <block type="variables_set" id=";R3ixFFjfQEAstT.rIn`"> <field name="VAR" id="yzLz+vt0vD]TZq3U[UfX">lengthMin</field> <value name="VALUE"> <block type="math_number" id="q70}T-2i?(T~N@Y=TJ#x"> <field name="NUM">-300</field> </block> </value> <next> <block type="variables_set" id="_0iWM1%{L/dKlQ;6UOPP"> <field name="VAR" id="2B%.f-FHZS.vmE}c/W@O">lengthMax</field> <value name="VALUE"> <block type="math_number" id="CHcu_uep^?mA]#D=TggE"> <field name="NUM">300</field> </block> </value> <next> <block type="variables_set" id="V]T}}cx#gag%:+Kh?36!"> <field name="VAR" id="vjkw9@`MjdDpte=:F*?k">lengthStep</field> <value name="VALUE"> <block type="math_number" id="K];C1gwhGfgza7GU}YvF"> <field name="NUM">50</field> </block> </value> <next> <block type="variables_set" id="PC8@j$/Lbv9cO+q$[^,x"> <field name="VAR" id="e[h3;!Y]$kwKjO8#sF(_">height</field> <value name="VALUE"> <block type="math_number" id="HP15jDjaa1.SN=MBlFKJ"> <field name="NUM">200</field> </block> </value> <next> <block type="variables_set" id="PbltNp,}V8+sJqbXLc{f"> <field name="VAR" id="QQtWB.!bf|/Xj9,jPJ#+">speed</field> <value name="VALUE"> <block type="math_number" id="~_i@p7@dbl~tzvIew6pZ"> <field name="NUM">0.4</field> </block> </value> <next> <block type="variables_set" id="Mu1Z`;wmld|epg@DWZO("> <field name="VAR" id="Gn+k:ablb+I@(!A@r~[u">rotationSpeed</field> <value name="VALUE"> <block type="math_number" id="M.x0l}?bHxqTSe%;_nT-"> <field name="NUM">2</field> </block> </value> <next> <block type="variables_set" id="4/QtFiaOF;XTpPxC#bOL"> <field name="VAR" id="J1-=DM*Lw~If0:K6AP#H">collisionCount</field> <value name="VALUE"> <block type="math_number" id="mCwKg[X[R`IHR}PV`rt["> <field name="NUM">0</field> </block> </value> <next> <block type="variables_set" id="}r*C}9ijh/I|:|7=;[f6"> <field name="VAR" id="vP8%K(.OV@=lS=`/Ep,e">matNotCollidedColor</field> <value name="VALUE"> <block type="colour_picker" id="rPj9c*$yud5;i3N}TcdO"> <field name="COLOUR">#0000ff</field> </block> </value> <next> <block type="variables_set" id="6gS}##V7(-tx0WHSo2D{"> <field name="VAR" id="GP;-F80W/DNm(uw8bX/E">matNotCollidedMetallic</field> <value name="VALUE"> <block type="math_number" id="s`v!A!ch,M,|C2Nm*MbL"> <field name="NUM">0.6</field> </block> </value> <next> <block type="variables_set" id="65Fh$*B_EpYrkZWZP%XM"> <field name="VAR" id="R1GIHkyHWaMrR=#F^[m6">matNotCollidedRoughness</field> <value name="VALUE"> <block type="math_number" id="tRxpR^eqv.Mj6ynb{EG;"> <field name="NUM">0.6</field> </block> </value> <next> <block type="variables_set" id="!!jTRFx2x6+R1|9#C20:"> <field name="VAR" id="G0C?%a7j@H?e`8Aa77lE">matNotCollidedAlpha</field> <value name="VALUE"> <block type="math_number" id="^ko-n(Xw3XMM{5lTiXbn"> <field name="NUM">0.3</field> </block> </value> <next> <block type="variables_set" id="$.|;5jn0odf0zcOTlz9c"> <field name="VAR" id="?SfntWNDROXq7|uFzc=u">matCollidedColor</field> <value name="VALUE"> <block type="colour_picker" id="GHEr=@qx_]/9LMSELo2("> <field name="COLOUR">#6600cc</field> </block> </value> <next> <block type="variables_set" id="#aSK%DsFRn):1TVV57.q"> <field name="VAR" id="^Fg{S%]^-Su#,dJ*jQ^~">matCollidedAlpha</field> <value name="VALUE"> <block type="math_number" id="iu0Rd({DywFZ+}IK.;m."> <field name="NUM">0.6</field> </block> </value> <next> <block type="variables_set" id="F!nMdMn1P:e=}e*yJngZ"> <field name="VAR" id="Qcdx,zyv.,|5{Pv,efhl">hitCount</field> <value name="VALUE"> <block type="math_number" id="U{HNk0sG)4{Yz^+NTo@f"> <field name="NUM">0</field> </block> </value> <next> <block type="variables_set" id="FEi}2S/7[`:1!GXNBC^$"> <field name="VAR" id="x1}?6sE~+;43`Nb.]z]P">hitCountPrevious</field> <value name="VALUE"> <block type="math_number" id="DDhs7]$9+@XAFOEB-$,["> <field name="NUM">0</field> </block> </value> <next> <block type="variables_set" id="U^H~tqqaL0Z;psq.C{9#"> <field name="VAR" id="E;.tH+kiH]AKdVRt|L(X">gamePaused</field> <value name="VALUE"> <block type="logic_boolean" id="%C5BXxI3/h}[$fu/o]ao"> <field name="BOOL">TRUE</field> </block> </value> <next> <block type="base_time_then" id="Va=Z#{_169yI5_m5-q;-"> <field name="Result" id=";63j/=~]1TvH[G7Z#h|+">loadingMesh</field> <value name="Promise"> <block type="bitbybit.draw.drawAnyAsync" id="RROqR|6QW4,v*5kHt?^g"> <value name="Entity"> <block type="bitbybit.jscad.text.sphericalText" id="LM2m5$92][FcO3n|^dUc"> <value name="Text"> <block type="text" id="_=sJKE$QkcVp)%AX~)X8"> <field name="TEXT">Loading...</field> </block> </value> <value name="Radius"> <block type="math_number" id="6qVp51c`(Ee~]cy:#6mR"> <field name="NUM">1</field> </block> </value> <value name="Segments"> <block type="math_number" id="p3*H7rTT1_YKY)OWD;9J"> <field name="NUM">10</field> </block> </value> <value name="XOffset"> <block type="math_number" id="iR#Fx]V7)jL=/r!l{ya8"> <field name="NUM">0</field> </block> </value> <value name="YOffset"> <block type="math_number" id="eYA.OuoLsYSLM!Ngx*uq"> <field name="NUM">0</field> </block> </value> <value name="Height"> <block type="math_number" id="|ooO+h;IayDQVb~mibQ$"> <field name="NUM">4</field> </block> </value> <value name="LineSpacing"> <block type="math_number" id="!0E!7z:2g~DuC.h-}@|#"> <field name="NUM">1.4</field> </block> </value> <value name="LetterSpacing"> <block type="math_number" id="P%39?Lb9O*(B2*8:^-QG"> <field name="NUM">1</field> </block> </value> <value name="Align"> <block type="bitbybit.jscad.enums.jscadTextAlignEnum" id="}5bn{`.#80Fh.U*#E4c:"> <field name="bitbybit.jscad.enums.jscadTextAlignEnum">'left'</field> </block> </value> <value name="ExtrudeOffset"> <block type="math_number" id="e^=,ep6q{p$2]FKy{;A8"> <field name="NUM">0</field> </block> </value> </block> </value> <value name="Options"> <block type="bitbybit.draw.optionsSimple" id="X(ZHs0AB:?6,=XL^b0hv"> <value name="Colours"> <block type="colour_picker" id="AKh$:~yNf%RIfs[j1ck{"> <field name="COLOUR">#ffcc00</field> </block> </value> <value name="Size"> <block type="math_number" id="lBJEd2%m;G%C%pFux6;["> <field name="NUM">3</field> </block> </value> <value name="Opacity"> <block type="math_number" id="=vne?,/Qh=i_=]|m#L/z"> <field name="NUM">1</field> </block> </value> <value name="Updatable"> <block type="logic_boolean" id="X5p6!GT`6$|jTgAKIC+B"> <field name="BOOL">FALSE</field> </block> </value> </block> </value> </block> </value> <statement name="Then"> <block type="bitbybit.babylon.mesh.moveUp" id=":SOp6roXfl)CEgDF51N^"> <value name="BabylonMesh"> <block type="variables_get" id="Wl^ia^.CtZ1W?PY^qdng"> <field name="VAR" id=";63j/=~]1TvH[G7Z#h|+">loadingMesh</field> </block> </value> <value name="Distance"> <block type="math_number" id="U/j!g,Sx=7/_8J@@iB(g"> <field name="NUM">30</field> </block> </value> <next> <block type="base_time_then" id="OftV`:;k_wU;spZB$)^^"> <field name="Result" id="cC?8ei#a5-1t_d*d#vk#">result</field> <value name="Promise"> <block type="lists_create_with" id="g2jf8*Ahcrc78x?Ig|Zo"> <mutation items="4"> </mutation> <value name="ADD0"> <block type="bitbybit.babylon.io.loadAssetIntoSceneFromRootUrl" id="^$h_SnwBM(b;-y@Rltkl"> <value name="AssetFile"> <block type="text" id="R]Yl}I2Bauk!u!~*^Jww"> <field name="TEXT">aerobatic_plane.glb</field> </block> </value> <value name="RootUrl"> <block type="text" id="p0`eAo(q})VduhqDp$JF"> <field name="TEXT">https://models.babylonjs.com/</field> </block> </value> </block> </value> <value name="ADD1"> <block type="bitbybit.babylon.io.loadAssetIntoSceneFromRootUrl" id="Os7uHh[Ow|(c5IUZ6jTs"> <value name="AssetFile"> <block type="text" id="3!-s3^DD:NBq4{JF9Ea!"> <field name="TEXT">BabylonShaderBall_Simple.gltf</field> </block> </value> <value name="RootUrl"> <block type="text" id="tLYQFq(P6i?cA9)T=ET2"> <field name="TEXT">https://models.babylonjs.com/shaderBall/</field> </block> </value> </block> </value> <value name="ADD2"> <block type="bitbybit.draw.drawAnyAsync" id="}LR6q{j[b7J4B786qI0q"> <value name="Entity"> <block type="bitbybit.jscad.shapes.sphere" id="?`/3ridTk.Q.L}0[-3vc"> <value name="Center"> <block type="bitbybit.point.pointXYZ" id="/@]io@!nX(=zh[cK_3Z7"> <value name="X"> <block type="math_number" id="a,YlM5AgL4g8JMz-!%MG"> <field name="NUM">0</field> </block> </value> <value name="Y"> <block type="math_number" id="|T;%W%v.Hu4P@.n^MnFR"> <field name="NUM">0</field> </block> </value> <value name="Z"> <block type="math_number" id="B}R84NnL7BwQUgWWAw^^"> <field name="NUM">0</field> </block> </value> </block> </value> <value name="Radius"> <block type="math_number" id="o*JNu%z6YrZ.?G)T=BUn"> <field name="NUM">2</field> </block> </value> <value name="Segments"> <block type="math_number" id="oi7}6)Bs6_P=t*E,wAvB"> <field name="NUM">32</field> </block> </value> </block> </value> <value name="Options"> <block type="bitbybit.draw.optionsSimple" id="P(l4N6[V|d*h,%27tFk3"> <value name="Colours"> <block type="colour_picker" id=":Fa|q#!Gmr0i{RA%g:M$"> <field name="COLOUR">#0000ff</field> </block> </value> <value name="Size"> <block type="math_number" id="}$$~*pj`Y^t$gs$q7C^H"> <field name="NUM">3</field> </block> </value> <value name="Opacity"> <block type="math_number" id="F}Q8_8W(NEqwnB/84^}6"> <field name="NUM">1</field> </block> </value> <value name="Updatable"> <block type="logic_boolean" id="}9O`jwd.X3U7d.;4^h]o"> <field name="BOOL">FALSE</field> </block> </value> <value name="Hidden"> <block type="logic_boolean" id="H??OO2IsCx+z;]mv]pLB"> <field name="BOOL">TRUE</field> </block> </value> </block> </value> </block> </value> <value name="ADD3"> <block type="bitbybit.draw.drawAnyAsync" id="[1tiiE:,~0`M.8P31rM6"> <value name="Entity"> <block type="bitbybit.jscad.shapes.cuboid" id="^B3|1t20p(?Fu1jfvXen"> <value name="Center"> <block type="bitbybit.point.pointXYZ" id=",)v#:ECpqj=CPjd7rj)`"> <value name="X"> <block type="math_number" id="w!,UKg9KQb_2c?,+360#"> <field name="NUM">0</field> </block> </value> <value name="Y"> <block type="math_number" id="n?16?+QEN1gsOL`g#A@5"> <field name="NUM">15</field> </block> </value> <value name="Z"> <block type="math_number" id="NgS,z00wc76Kn=I+{rnp"> <field name="NUM">150</field> </block> </value> </block> </value> <value name="Width"> <block type="math_number" id="za=3t_xnooGIF}D8Gi1R"> <field name="NUM">0.1</field> </block> </value> <value name="Length"> <block type="math_number" id="!s{,//S;vKdB[)Od7Kn/"> <field name="NUM">200</field> </block> </value> <value name="Height"> <block type="math_number" id="!V3~YwVQ,30xU%[)|OhS"> <field name="NUM">0.1</field> </block> </value> </block> </value> <value name="Options"> <block type="bitbybit.draw.optionsSimple" id="Hco}4T~}~HrzRl%Rl/${"> <value name="Colours"> <block type="colour_picker" id="^~E2HnL`{q-mSKl%[ji/"> <field name="COLOUR">#ff6600</field> </block> </value> <value name="Size"> <block type="math_number" id="UTl4kW*19Zxb4v!v@hRO"> <field name="NUM">3</field> </block> </value> <value name="Opacity"> <block type="math_number" id="-l|2nY+EV-i-._;VkVH%"> <field name="NUM">1</field> </block> </value> <value name="Updatable"> <block type="logic_boolean" id="{*M}AHxp$Y*R^ib^{n+a"> <field name="BOOL">FALSE</field> </block> </value> <value name="Hidden"> <block type="logic_boolean" id="py_x8j7@;#%Qvu-[VhbF"> <field name="BOOL">TRUE</field> </block> </value> </block> </value> </block> </value> </block> </value> <statement name="Then"> <block type="variables_set" id="BUYoBjso,h=u9*Ja-3av"> <field name="VAR" id="F)w_7v5!Tavx+!ln:d[L">planeMesh</field> <value name="VALUE"> <block type="lists_getIndex" id="]iy_P,PmUW.7iA^KsDC["> <mutation statement="false" at="false"> </mutation> <field name="MODE">GET</field> <field name="WHERE">FIRST</field> <value name="VALUE"> <block type="variables_get" id="|j-tJFe#.Rx1NhZzltem"> <field name="VAR" id="cC?8ei#a5-1t_d*d#vk#">result</field> </block> </value> </block> </value> <next> <block type="variables_set" id="X3#lCuUj/)58$4/?-QSh"> <field name="VAR" id=";S-l1atJ-^j6Dmyv9i2|">obstacle</field> <value name="VALUE"> <block type="lists_getIndex" id="q5le?U2#|)ww/J$S^o6J"> <mutation statement="false" at="true"> </mutation> <field name="MODE">GET</field> <field name="WHERE">FROM_START</field> <value name="VALUE"> <block type="variables_get" id="SYo4:DtVhwNDsn~kLDAB"> <field name="VAR" id="cC?8ei#a5-1t_d*d#vk#">result</field> </block> </value> <value name="AT"> <block type="math_number" id="zYT9hYiS+Shlap3WEgg-"> <field name="NUM">2</field> </block> </value> </block> </value> <next> <block type="variables_set" id="y.]oD*p/BfpLV)wX#q.1"> <field name="VAR" id="FY|^#Zz#k.B4[{A_DFp]">checkPickMesh</field> <value name="VALUE"> <block type="lists_getIndex" id="@Wn?!ln-PWcl[yB;#G*c"> <mutation statement="false" at="true"> </mutation> <field name="MODE">GET</field> <field name="WHERE">FROM_START</field> <value name="VALUE"> <block type="variables_get" id="P!AZ$+v+Z4yVWw-eIQ:c"> <field name="VAR" id="cC?8ei#a5-1t_d*d#vk#">result</field> </block> </value> <value name="AT"> <block type="math_number" id="88L4RW`YW3cWjkE7S|Z7"> <field name="NUM">3</field> </block> </value> </block> </value> <next> <block type="variables_set" id="].joN.6D!@#vf%9%.9YN"> <field name="VAR" id="l;zV{Uv*k.k)m:5$l!+A">ray</field> <value name="VALUE"> <block type="lists_getIndex" id=".:n#s:9X.jAL/]AN.g}["> <mutation statement="false" at="false"> </mutation> <field name="MODE">GET</field> <field name="WHERE">LAST</field> <value name="VALUE"> <block type="variables_get" id="J@HJE2*`!ctuy0pu{X[I"> <field name="VAR" id="cC?8ei#a5-1t_d*d#vk#">result</field> </block> </value> </block> </value> <next> <block type="bitbybit.babylon.mesh.hide" id="!tq1.yQUt~TRR,38WqSG"> <value name="BabylonMesh"> <block type="variables_get" id="r.YnF*+tA!m%1--`4M:H"> <field name="VAR" id="l;zV{Uv*k.k)m:5$l!+A">ray</field> </block> </value> <value name="IncludeChildren"> <block type="logic_boolean" id="PBJMOfLzyk??|GBf`Vs)"> <field name="BOOL">TRUE</field> </block> </value> <next> <block type="bitbybit.babylon.mesh.hide" id="R+`x|xHkqtx~80B$WxaQ"> <value name="BabylonMesh"> <block type="variables_get" id="T6Tvn#))aXiABODD,[^r"> <field name="VAR" id="FY|^#Zz#k.B4[{A_DFp]">checkPickMesh</field> </block> </value> <value name="IncludeChildren"> <block type="logic_boolean" id="xSGjH*%#AlA4Yt/2,BWs"> <field name="BOOL">TRUE</field> </block> </value> <next> <block type="variables_set" id="Wb9;!sSr?c#!P7v_MmvM"> <field name="VAR" id="Z^6N%Qz;I1*UFFI1d]5M">rayStart</field> <value name="VALUE"> <block type="bitbybit.draw.drawAny" id="xCj:u;Cw^z!dTVlFf#O+"> <value name="Entity"> <block type="bitbybit.point.pointXYZ" id=")GKh=Q)4hCD0=^l;xNVF"> <value name="X"> <block type="math_number" id=",6fU#7o~}[75iMJ8JRlZ"> <field name="NUM">0</field> </block> </value> <value name="Y"> <block type="math_number" id="mVLpM28WJc6rU@h6yUGt"> <field name="NUM">0</field> </block> </value> <value name="Z"> <block type="math_number" id="x8`WuYUH[C?BRr9|]@nN"> <field name="NUM">0</field> </block> </value> </block> </value> <value name="Options"> <block type="bitbybit.draw.optionsSimple" id="PvZ*q/Z2kL_j71x0k)d4"> <value name="Colours"> <block type="colour_picker" id="S*dTx0f~ww7u~`[rQp@s"> <field name="COLOUR">#ff6600</field> </block> </value> <value name="Size"> <block type="math_number" id="l,urQU,zic9]jEi!~9yb"> <field name="NUM">3</field> </block> </value> <value name="Opacity"> <block type="math_number" id="kuJ^b*1W8Sch+BR8UJ;n"> <field name="NUM">0</field> </block> </value> <value name="Updatable"> <block type="logic_boolean" id="]{5M-7I!;Us5Y/rE6h_Q"> <field name="BOOL">FALSE</field> </block> </value> <value name="Hidden"> <block type="logic_boolean" id="Cb%MfT0iD$TxsY/irb=0"> <field name="BOOL">TRUE</field> </block> </value> </block> </value> </block> </value> <next> <block type="bitbybit.babylon.mesh.setPosition" id="5R~aoxX}w5HQ5pX8koDH"> <value name="BabylonMesh"> <block type="variables_get" id="A3UN*rO?h=7U$thKg3V%"> <field name="VAR" id="Z^6N%Qz;I1*UFFI1d]5M">rayStart</field> </block> </value> <value name="Position"> <block type="bitbybit.point.pointXYZ" id="0ZE{;|-}p-cro~:)*:/@"> <value name="X"> <block type="math_number" id="$sxo$Owq[RIZW6yN6DkF"> <field name="NUM">0</field> </block> </value> <value name="Y"> <block type="math_number" id="n.7$26Jtk#!Iv1(RM;V2"> <field name="NUM">15</field> </block> </value> <value name="Z"> <block type="math_number" id="dba9Sf17e7WGn8~oNZs9"> <field name="NUM">0</field> </block> </value> </block> </value> <next> <block type="bitbybit.babylon.mesh.setParent" id="=p6X_52vAp5nZfs.$ryk"> <value name="BabylonMesh"> <block type="variables_get" id="_o%4-X+OT#=CiFy;(r`G"> <field name="VAR" id="Z^6N%Qz;I1*UFFI1d]5M">rayStart</field> </block> </value> <value name="ParentMesh"> <block type="variables_get" id="^4D;-TCg2FILdy;Ek`0~"> <field name="VAR" id="F)w_7v5!Tavx+!ln:d[L">planeMesh</field> </block> </value> <next> <block type="variables_set" id="IK;O2B5)jO|.gMj|fOR}"> <field name="VAR" id="-Z2ex1M1~fOr(z`/x`!G">rayEnd</field> <value name="VALUE"> <block type="bitbybit.draw.drawAny" id="vF8*QOWtC]t[_BmO84KT"> <value name="Entity"> <block type="bitbybit.point.pointXYZ" id="tlJmNQ=nUqj*1or[h{{/"> <value name="X"> <block type="math_number" id="OAt;X([6$TvdGQZY0s|z"> <field name="NUM">0</field> </block> </value> <value name="Y"> <block type="math_number" id="h%c/8-CVHV5eO,l5[NK7"> <field name="NUM">0</field> </block> </value> <value name="Z"> <block type="math_number" id="%$FLm*PbJmc}iJ0#f-KT"> <field name="NUM">0</field> </block> </value> </block> </value> <value name="Options"> <block type="bitbybit.draw.optionsSimple" id="02#cz*ehdQ6m;{yPa.tw"> <value name="Colours"> <block type="colour_picker" id="Z5OP#r]A.H~ZQ2YduGOa"> <field name="COLOUR">#ff6600</field> </block> </value> <value name="Size"> <block type="math_number" id="1ra0FkL3y3)qE4Rtfs_1"> <field name="NUM">3</field> </block> </value> <value name="Opacity"> <block type="math_number" id="j#@Tec]hQg^LN8vqMflb"> <field name="NUM">1</field> </block> </value> <value name="Updatable"> <block type="logic_boolean" id="J{DGa.!|OV1lMuF1T(P7"> <field name="BOOL">FALSE</field> </block> </value> <value name="Hidden"> <block type="logic_boolean" id="_Q0(=@dt^)R21+P6(7-p"> <field name="BOOL">TRUE</field> </block> </value> </block> </value> </block> </value> <next> <block type="bitbybit.babylon.mesh.setPosition" id="54;eM:)H_$T7%:]Qj-_H"> <value name="BabylonMesh"> <block type="variables_get" id="eO-us]n6]yj(.|[p_$gP"> <field name="VAR" id="-Z2ex1M1~fOr(z`/x`!G">rayEnd</field> </block> </value> <value name="Position"> <block type="bitbybit.point.pointXYZ" id="^gRs@C+=Qawy$aW1F[t`"> <value name="X"> <block type="math_number" id="LHbXg8zAI$,Ius6p1ul2"> <field name="NUM">0</field> </block> </value> <value name="Y"> <block type="math_number" id="{X.~Q;@.4Xib39BsGTs("> <field name="NUM">15</field> </block> </value> <value name="Z"> <block type="math_number" id="~$L|g{KHabu=q@GpPzP/"> <field name="NUM">350</field> </block> </value> </block> </value> <next> <block type="bitbybit.babylon.mesh.setParent" id="]8{hRsiF09RDP|O#@%bi"> <value name="BabylonMesh"> <block type="variables_get" id="jQQ{uc6^dp)KM4=~xM.j"> <field name="VAR" id="-Z2ex1M1~fOr(z`/x`!G">rayEnd</field> </block> </value> <value name="ParentMesh"> <block type="variables_get" id="k0Zr~]ghNtcLwm~tvLdx"> <field name="VAR" id="F)w_7v5!Tavx+!ln:d[L">planeMesh</field> </block> </value> <next> <block type="bitbybit.babylon.mesh.setParent" id="=GF-5C_RwB!lFeO^!{qo"> <value name="BabylonMesh"> <block type="variables_get" id="d.#wvFb,[0r3BJgv{V`("> <field name="VAR" id="l;zV{Uv*k.k)m:5$l!+A">ray</field> </block> </value> <value name="ParentMesh"> <block type="variables_get" id="v/Qt%{eFcklA]_n,/JYH"> <field name="VAR" id="F)w_7v5!Tavx+!ln:d[L">planeMesh</field> </block> </value> <next> <block type="controls_forEach" id="k{lOE_OodFw0%YiuLdA-"> <field name="VAR" id="wD(AH16(3Ob]=i+t(Evc">m</field> <value name="LIST"> <block type="bitbybit.babylon.mesh.getChildMeshes" id=";cnlse(BE,QL.yUr3cqJ"> <value name="BabylonMesh"> <block type="variables_get" id="wm$~T|}{z4H@Gd]VKB5{"> <field name="VAR" id=";S-l1atJ-^j6Dmyv9i2|">obstacle</field> </block> </value> <value name="DirectDescendantsOnly"> <block type="logic_boolean" id=".a4PeN_.I!9pCjS3cv3W"> <field name="BOOL">FALSE</field> </block> </value> </block> </value> <statement name="DO"> <block type="bitbybit.babylon.mesh.setRotation" id="reJit-JlIPUpkmGJV38t"> <value name="BabylonMesh"> <block type="variables_get" id="^(~OcPlIguSm-P_sj;5{"> <field name="VAR" id="wD(AH16(3Ob]=i+t(Evc">m</field> </block> </value> <value name="Rotation"> <block type="bitbybit.point.pointXYZ" id="Pz[ZKX82x!-_]t*%U_34"> <value name="X"> <block type="math_number" id="3X,qV.X4pDfW,e|0[*QL"> <field name="NUM">0</field> </block> </value> <value name="Y"> <block type="math_number" id="@3:,6B|1`fH,p*(=/$o["> <field name="NUM">120</field> </block> </value> <value name="Z"> <block type="math_number" id="Llyenpx_L{gs-}X3*Xbr"> <field name="NUM">0</field> </block> </value> </block> </value> </block> </statement> <next> <block type="variables_set" id="G-+.@$Gh)^nmx^Wj+!Yw"> <field name="VAR" id="Q`UnZN[AiZpg%1(P%F[7">xRotation</field> <value name="VALUE"> <block type="math_number" id="cd6aF(sY-CGXUVs#xIol"> <field name="NUM">0</field> </block> </value> <next> <block type="variables_set" id="|DLFtjarczV7*d{:w9yb"> <field name="VAR" id="w-`jw_]`h4sSN7j6v%FG">zRotation</field> <value name="VALUE"> <block type="math_number" id="V*TEYn-4Qrv/5+=%R-qJ"> <field name="NUM">0</field> </block> </value> <next> <block type="variables_set" id="RC}eb{4q4:@C]Yw-|t`r"> <field name="VAR" id=";5h%^BJh)`CAnK}F:xTC">obstacleInstances</field> <value name="VALUE"> <block type="lists_create_with" id="mBY`^-K51Z1}FqqTg!q4"> <mutation items="0"> </mutation> </block> </value> <next> <block type="variables_set" id="~8vEL3@jM%l.1ta?+r)%"> <field name="VAR" id=")FB(QiJelx*$9Er+`uG3">obstacleColMeshes</field> <value name="VALUE"> <block type="lists_create_with" id="tu5^)#`!}j^36J}m+r_P"> <mutation items="0"> </mutation> </block> </value> <next> <block type="procedures_callnoreturn" id=")r9s[PCH*02rL$PHVJ[f"> <mutation name="putObstaclesInPositions"> <arg name="target1"> </arg> <arg name="target2"> </arg> <arg name="emptyListToFill1"> </arg> <arg name="emptyListToFill2"> </arg> </mutation> <value name="ARG0"> <block type="variables_get" id="9r`MlLJH[J@!;m)a$+Br"> <field name="VAR" id="FY|^#Zz#k.B4[{A_DFp]">checkPickMesh</field> </block> </value> <value name="ARG1"> <block type="variables_get" id="qDvso3h~M4QQ^83f=UHw"> <field name="VAR" id=";S-l1atJ-^j6Dmyv9i2|">obstacle</field> </block> </value> <value name="ARG2"> <block type="variables_get" id="3h%px8VNYsYi{27qC`EP"> <field name="VAR" id=")FB(QiJelx*$9Er+`uG3">obstacleColMeshes</field> </block> </value> <value name="ARG3"> <block type="variables_get" id="/3GRc^-^H35Cw10Bjs~V"> <field name="VAR" id=";5h%^BJh)`CAnK}F:xTC">obstacleInstances</field> </block> </value> <next> <block type="bitbybit.babylon.mesh.hide" id="t^p,H=cz+k[v_!RVtSCs"> <value name="BabylonMesh"> <block type="variables_get" id="B6v|i:L_ogs~6W}=KGwa"> <field name="VAR" id="FY|^#Zz#k.B4[{A_DFp]">checkPickMesh</field> </block> </value> <value name="IncludeChildren"> <block type="logic_boolean" id="CeKO*`J+}6Gz38s?Y{Y7"> <field name="BOOL">TRUE</field> </block> </value> <next> <block type="procedures_callnoreturn" id="g?,^Y{,uD!|Q?X@$/V-#"> <mutation name="assignSeparateMaterials"> </mutation> <next> <block type="variables_set" id="fNMB(~k[Nz7gy4d`!FB`"> <field name="VAR" id="ETt77.7%q,y#[-0d?b]Y">countTimeMS</field> <value name="VALUE"> <block type="math_number" id="Uv4%a}:?D%vhNS@SZGHh"> <field name="NUM">0</field> </block> </value> <next> <block type="variables_set" id="`yNdoof.?bB~}`S@/}:A"> <field name="VAR" id="V8pA:KMfYFm%Mi-Cn;%3">drawnTextMeshes</field> <value name="VALUE"> <block type="lists_create_with" id="~M4-^bO8XouGxxP};ztD"> <mutation items="0"> </mutation> </block> </value> <next> <block type="base_time_then" id="Yy:XhGbQ~l@%@-iv0,%7"> <field name="Result" id="qkHe%-0P-88[y=XZ4Yiw">startTheGameMesh</field> <value name="Promise"> <block type="bitbybit.draw.drawAnyAsync" id="g(CkE:`h[M+G)J*C[96}"> <value name="Entity"> <block type="bitbybit.jscad.text.sphericalText" id="Xc#D,dZAP6q:bn7m%`u|"> <value name="Text"> <block type="text" id="[^+Uo}8N5L^Xf5lS5hG7"> <field name="TEXT">START THE GAME!</field> </block> </value> <value name="Radius"> <block type="math_number" id="~Pd@G)w+2G?7]wB}L/H/"> <field name="NUM">1</field> </block> </value> <value name="Segments"> <block type="math_number" id="O+gS+!=d9)yEtKN3:uHo"> <field name="NUM">10</field> </block> </value> <value name="XOffset"> <block type="math_number" id="=deM]3PMQ[kdn[Ig%}?l"> <field name="NUM">0</field> </block> </value> <value name="YOffset"> <block type="math_number" id="v`IMOjvU0_+DbSle=RHY"> <field name="NUM">0</field> </block> </value> <value name="Height"> <block type="math_number" id="`ZiYQy0Y0WvVqLCR0oL4"> <field name="NUM">4</field> </block> </value> <value name="LineSpacing"> <block type="math_number" id="u9j|o}|_z!g$$)SQ;KD7"> <field name="NUM">1.4</field> </block> </value> <value name="LetterSpacing"> <block type="math_number" id="#lIL{0*{u=2,{3,xf9(^"> <field name="NUM">1</field> </block> </value> <value name="Align"> <block type="bitbybit.jscad.enums.jscadTextAlignEnum" id="J[7i2Od^%YeQEgRT~B-!"> <field name="bitbybit.jscad.enums.jscadTextAlignEnum">'left'</field> </block> </value> <value name="ExtrudeOffset"> <block type="math_number" id="7@XR^]#/N)tFB^]gR@pV"> <field name="NUM">0</field> </block> </value> </block> </value> </block> </value> <statement name="Then"> <block type="bitbybit.babylon.mesh.dispose" id="B3`~$Q%Hh1`9_|2Q~0ot"> <value name="BabylonMesh"> <block type="variables_get" id="ofRj(2mQuz44jLXft=Hm"> <field name="VAR" id=";63j/=~]1TvH[G7Z#h|+">loadingMesh</field> </block> </value> <next> <block type="variables_set" id="E`|BjxE/6i.#TOrSP@;`"> <field name="VAR" id="u8pzRT~Yq+ci$Pa(n{b1">materialHovered</field> <value name="VALUE"> <block type="bitbybit.babylon.material.pbrMetallicRoughness.create" id="i0C^F^ewKMV[g$C8rT?c"> <value name="Name"> <block type="text" id="-;be)+Tg*V{kBrxd#J]X"> <field name="TEXT">Custom Name</field> </block> </value> <value name="BaseColor"> <block type="colour_picker" id="dKelGy*J*r2q^g^jnhAi"> <field name="COLOUR">#cc33cc</field> </block> </value> <value name="Metallic"> <block type="math_number" id="PzK6QGXcqtE3T)mt![fb"> <field name="NUM">0.6</field> </block> </value> <value name="Roughness"> <block type="math_number" id="n#_)nsH00~Qt%54C`Mb`"> <field name="NUM">0.6</field> </block> </value> <value name="Alpha"> <block type="math_number" id="O;/YATj6=5Gf=z%vGzc."> <field name="NUM">1</field> </block> </value> <value name="BackFaceCulling"> <block type="logic_boolean" id="S1!kXoJ:TjnC+mZN}@m9"> <field name="BOOL">TRUE</field> </block> </value> </block> </value> <next> <block type="variables_set" id="CQ.PD.|GRhlD6.PrPAe+"> <field name="VAR" id="L}.s3i)Ek7.f$`sMC`=I">materialNotSelected</field> <value name="VALUE"> <block type="bitbybit.babylon.material.pbrMetallicRoughness.create" id="}E7,x=b{=]Mi)uTY!{IM"> <value name="Name"> <block type="text" id="m4#FyN45aGL3_}Qz5|ak"> <field name="TEXT">Custom Name</field> </block> </value> <value name="BaseColor"> <block type="colour_picker" id="^~4%,AkB$.h82bia4Lzp"> <field name="COLOUR">#333399</field> </block> </value> <value name="Metallic"> <block type="math_number" id="L46o{L(?I|]:WUlyn0lS"> <field name="NUM">0.6</field> </block> </value> <value name="Roughness"> <block type="math_number" id="Ho43o}dzi$_te-DcH;=J"> <field name="NUM">0.6</field> </block> </value> <value name="Alpha"> <block type="math_number" id="poZrIjdN:G|q{wr])ews"> <field name="NUM">1</field> </block> </value> <value name="BackFaceCulling"> <block type="logic_boolean" id="+XE4N-Wpk23!3PEM!`S~"> <field name="BOOL">TRUE</field> </block> </value> </block> </value> <next> <block type="variables_set" id="3sAIL{QLS?.Rzg[q:rtL"> <field name="VAR" id="MZF66Jit8v(%L_G4Ppmo">materialSelected</field> <value name="VALUE"> <block type="bitbybit.babylon.material.pbrMetallicRoughness.create" id="h^n5h%`?uu--@y-1+bnO"> <value name="Name"> <block type="text" id="w2ljpg,W[8:|q0]xJ8^{"> <field name="TEXT">Custom Name</field> </block> </value> <value name="BaseColor"> <block type="colour_picker" id="xX05%K5pnj+U_2/uspLx"> <field name="COLOUR">#ffcc33</field> </block> </value> <value name="Metallic"> <block type="math_number" id="h3nD]I0:W=Lac{m2$Zgt"> <field name="NUM">0.6</field> </block> </value> <value name="Roughness"> <block type="math_number" id="d;4+{1SU9#gDujLu6vUk"> <field name="NUM">0.6</field> </block> </value> <value name="Alpha"> <block type="math_number" id="1-dJGD*lk%nWNAF1Xf63"> <field name="NUM">1</field> </block> </value> <value name="BackFaceCulling"> <block type="logic_boolean" id="rK_(|glZ{PX,4Ol/f50+"> <field name="BOOL">TRUE</field> </block> </value> </block> </value> <next> <block type="bitbybit.babylon.mesh.setMaterial" id="fa[i6R[iJEd`]TOG`Cc|"> <value name="BabylonMesh"> <block type="variables_get" id="j$:m.[zSB1LB[mHRHsK`"> <field name="VAR" id="qkHe%-0P-88[y=XZ4Yiw">startTheGameMesh</field> </block> </value> <value name="Material"> <block type="variables_get" id="%.%C8m@B|NmID-aGA9Nw"> <field name="VAR" id="L}.s3i)Ek7.f$`sMC`=I">materialNotSelected</field> </block> </value> <value name="IncludeChildren"> <block type="logic_boolean" id="7~UJi?713(7Ib#3uZs+!"> <field name="BOOL">TRUE</field> </block> </value> <next> <block type="bitbybit.babylon.mesh.moveUp" id="F4Hm[V@Mnu($1DuS=ewD"> <value name="BabylonMesh"> <block type="variables_get" id="p/@;;$!k{(ayJ]};j]S("> <field name="VAR" id="qkHe%-0P-88[y=XZ4Yiw">startTheGameMesh</field> </block> </value> <value name="Distance"> <block type="math_number" id="Y-,TdIzJI*|UAB)*T?U!"> <field name="NUM">30</field> </block> </value> <next> <block type="bitbybit.babylon.mesh.setPickable" id="sh=-a31VW4o[BwN5..lS"> <value name="BabylonMesh"> <block type="variables_get" id="+i~x.A`i~ccU[md;;XN{"> <field name="VAR" id="qkHe%-0P-88[y=XZ4Yiw">startTheGameMesh</field> </block> </value> <value name="Pickable"> <block type="logic_boolean" id="#%cO!Zh7r}te1#(Q;449"> <field name="BOOL">TRUE</field> </block> </value> <value name="IncludeChildren"> <block type="logic_boolean" id="{Ye0f9]rG=VI^2oVU8jv"> <field name="BOOL">TRUE</field> </block> </value> <next> <block type="variables_set" id="xesCw53}}/:VB!~3rm^;"> <field name="VAR" id="p5g0UQPeQRKZ=C6QX$!f">isPointerDown</field> <value name="VALUE"> <block type="logic_boolean" id="=#E-XVp;~f_N4w7FKWV3"> <field name="BOOL">FALSE</field> </block> </value> <next> <block type="variables_set" id="1t^yag4Qp!rbtIAM@B2-"> <field name="VAR" id="tMWvaMdc|h|+z62Kp).3">startGameHitHppened</field> <value name="VALUE"> <block type="logic_boolean" id="?qJJP/ffXgy4pNIiU6=_"> <field name="BOOL">FALSE</field> </block> </value> <next> <block type="procedures_callnoreturn" id="E]FkxNe^^lr,CTT10O;R"> <mutation name="trackPointing"> <arg name="meshesToTrack"> </arg> <arg name="shouldStartTheGame"> </arg> <arg name="shouldReplay"> </arg> <arg name="cleanMeshOnStart"> </arg> </mutation> <value name="ARG0"> <block type="variables_get" id="R{JE]yUO9PEK,63kk-F*"> <field name="VAR" id="qkHe%-0P-88[y=XZ4Yiw">startTheGameMesh</field> </block> </value> <value name="ARG1"> <block type="logic_boolean" id="7)yM1I.L[Zu;(@G~Zmnz"> <field name="BOOL">TRUE</field> </block> </value> <value name="ARG2"> <block type="logic_boolean" id="0f)-O,Q)DANiTrktXxQr"> <field name="BOOL">FALSE</field> </block> </value> </block> </next> </block> </next> </block> </next> </block> </next> </block> </next> </block> </next> </block> </next> </block> </next> </block> </next> </block> </statement> </block> </next> </block> </next> </block> </next> </block> </next> </block> </next> </block> </next> </block> </next> </block> </next> </block> </next> </block> </next> </block> </next> </block> </next> </block> </next> </block> </next> </block> </next> </block> </next> </block> </next> </block> </next> </block> </next> </block> </next> </block> </next> </block> </next> </block> </next> </block> </statement> </block> </next> </block> </statement> </block> </next> </block> </next> </block> </next> </block> </next> </block> </next> </block> </next> </block> </next> </block> </next> </block> </next> </block> </next> </block> </next> </block> </next> </block> </next> </block> </next> </block> </next> </block> </next> </block> </next> </block> </next> </block> </next> </block> </next> </block> </next> </block> <block type="procedures_defnoreturn" id="1svwC2mU_X]xZpa7[Jbb" x="817" y="1375"> <mutation> <arg name="meshesToTrack" varid="w;,D/nP)6x_3N,Xh+4CA"> </arg> <arg name="shouldStartTheGame" varid="wdP2]qeqQ+RjpD3B;*h1"> </arg> <arg name="shouldReplay" varid=".zx|JB2gL|-5(=S3G2F|"> </arg> <arg name="cleanMeshOnStart" varid="X,7}=g8X@8FQ7lkUEQ7J"> </arg> </mutation> <field name="NAME">trackPointing</field> <comment pinned="false" h="80" w="160">Describe this function...</comment> <statement name="STACK"> <block type="bitbybit.babylon.mesh.setName" id="6xL,4GAz*]=@}QL)]mU$"> <value name="BabylonMesh"> <block type="variables_get" id="Md+gioa}U3_zbAzd*DAd"> <field name="VAR" id="w;,D/nP)6x_3N,Xh+4CA">meshesToTrack</field> </block> </value> <value name="Name"> <block type="text" id=",N.?MM%50)s9N7F)lYeI"> <field name="TEXT">TrackedMesh</field> </block> </value> <value name="IncludeChildren"> <block type="logic_boolean" id="o2c;L?=Y@SoTrHupb1Am"> <field name="BOOL">TRUE</field> </block> </value> <next> <block type="base_time_on_pointer_move" id="`bOX[xahm]9qf#Wdz]mk"> <statement name="Update"> <block type="controls_if" id="cFVS4|(][$v;l9g%9S/t"> <value name="IF0"> <block type="variables_get" id="SAK%)Rf[+Uo=)}#sg`fk"> <field name="VAR" id="E;.tH+kiH]AKdVRt|L(X">gamePaused</field> </block> </value> <statement name="DO0"> <block type="variables_set" id=",edUK=mp2pG;mbcH9`yX"> <field name="VAR" id="eCi)`F3cKkux=_YqV^mb">mousePickingResult</field> <value name="VALUE"> <block type="bitbybit.babylon.pick.pickWithPickingRay" id="dXGU-TA}?p)rkdlb~vj*"> </block> </value> <next> <block type="controls_if" id="{2mQ=gibc2ai|S8sSlCv"> <value name="IF0"> <block type="logic_negate" id="wsRqR_arqj?hqPRPdLR7"> <value name="BOOL"> <block type="variables_get" id="*KNS4{4ORS4P_AWoMhKl"> <field name="VAR" id="p5g0UQPeQRKZ=C6QX$!f">isPointerDown</field> </block> </value> </block> </value> <statement name="DO0"> <block type="controls_if" id=";d?w(s6_Rzg5uwYIgu^Y"> <mutation else="1"> </mutation> <value name="IF0"> <block type="logic_operation" id="VR0uxzDM{qpnF7r.j*({"> <field name="OP">AND</field> <value name="A"> <block type="bitbybit.babylon.pick.hit" id="y-p}aOy!)`im%-M$_dy,"> <value name="PickInfo"> <block type="variables_get" id=":DLEzA7PW1,6yd=Z?{R1"> <field name="VAR" id="eCi)`F3cKkux=_YqV^mb">mousePickingResult</field> </block> </value> </block> </value> <value name="B"> <block type="logic_compare" id="/x4krM7N[NY*m*|jyM:r"> <field name="OP">EQ</field> <value name="A"> <block type="bitbybit.babylon.mesh.getName" id="?lWQ^XvAB!ob7;i)w^5/"> <value name="BabylonMesh"> <block type="bitbybit.babylon.pick.getPickedMesh" id="PC*i(o7UD7(x=@ncXP#h"> <value name="PickInfo"> <block type="variables_get" id="ev_92,{7Y]LP4INTW`Cw"> <field name="VAR" id="eCi)`F3cKkux=_YqV^mb">mousePickingResult</field> </block> </value> </block> </value> </block> </value> <value name="B"> <block type="text" id="!hwel[(CXIf`)VPfLk0L"> <field name="TEXT">TrackedMesh</field> </block> </value> </block> </value> </block> </value> <statement name="DO0"> <block type="bitbybit.babylon.mesh.setMaterial" id="$6:azxj}N/MUrfx5%Y@#"> <value name="BabylonMesh"> <block type="variables_get" id="g-_^P,]F,^?pylhZt[gU"> <field name="VAR" id="w;,D/nP)6x_3N,Xh+4CA">meshesToTrack</field> </block> </value> <value name="Material"> <block type="variables_get" id="$$X:8L~#p3l!|DD.a@Q%"> <field name="VAR" id="u8pzRT~Yq+ci$Pa(n{b1">materialHovered</field> </block> </value> <value name="IncludeChildren"> <block type="logic_boolean" id="ENJ`pk20s307xQDeY*i^"> <field name="BOOL">TRUE</field> </block> </value> </block> </statement> <statement name="ELSE"> <block type="bitbybit.babylon.mesh.setMaterial" id="@tiygT[1c=^v1wbn?B+O"> <value name="BabylonMesh"> <block type="variables_get" id="XNBVU!Lvf-}pO8SbjUN%"> <field name="VAR" id="w;,D/nP)6x_3N,Xh+4CA">meshesToTrack</field> </block> </value> <value name="Material"> <block type="variables_get" id="|OOP9VG3#N(yq3xRQ4nI"> <field name="VAR" id="L}.s3i)Ek7.f$`sMC`=I">materialNotSelected</field> </block> </value> <value name="IncludeChildren"> <block type="logic_boolean" id="n7Qz-4w6bDsSRCpuVnRJ"> <field name="BOOL">TRUE</field> </block> </value> </block> </statement> </block> </statement> </block> </next> </block> </statement> </block> </statement> <next> <block type="base_time_on_pointer_down" id="|uCZCJr*jpAY~[ReH7)["> <statement name="Update"> <block type="controls_if" id="/BRZP0QDg5Lo4wHG0C3R"> <value name="IF0"> <block type="variables_get" id=":Q9%gR(G+kYCb[(@+?;P"> <field name="VAR" id="E;.tH+kiH]AKdVRt|L(X">gamePaused</field> </block> </value> <statement name="DO0"> <block type="variables_set" id="w}q::.T_W0n!$1c1A!W/"> <field name="VAR" id="p5g0UQPeQRKZ=C6QX$!f">isPointerDown</field> <value name="VALUE"> <block type="logic_boolean" id="?r7e-~Z5*_h)Lx:*WHYz"> <field name="BOOL">TRUE</field> </block> </value> <next> <block type="variables_set" id=".OY{Da6m2WYxd%0/QYQ7"> <field name="VAR" id="eCi)`F3cKkux=_YqV^mb">mousePickingResult</field> <value name="VALUE"> <block type="bitbybit.babylon.pick.pickWithPickingRay" id=":A]VzdP=CrD8W]5J#EUI"> </block> </value> <next> <block type="controls_if" id="O03Me.ii]l0?}aF?T7b_"> <value name="IF0"> <block type="logic_operation" id="!N._b1[NsZ1+n/!VUN=Q"> <field name="OP">AND</field> <value name="A"> <block type="bitbybit.babylon.pick.hit" id="|BNj#puG=0[;RX]X[2e("> <value name="PickInfo"> <block type="variables_get" id="@~|}80L^s#P]iMMrW^Nu"> <field name="VAR" id="eCi)`F3cKkux=_YqV^mb">mousePickingResult</field> </block> </value> </block> </value> <value name="B"> <block type="logic_compare" id="HD$QEEFA^Z7IKf6IlBrB"> <field name="OP">EQ</field> <value name="A"> <block type="bitbybit.babylon.mesh.getName" id="EE^;.;V,7tYJ=^^0ydHm"> <value name="BabylonMesh"> <block type="bitbybit.babylon.pick.getPickedMesh" id="aS?.WXA-03]OKC_Si+:8"> <value name="PickInfo"> <block type="variables_get" id="e]meOtwZ0t6?Y2b@qQ3N"> <field name="VAR" id="eCi)`F3cKkux=_YqV^mb">mousePickingResult</field> </block> </value> </block> </value> </block> </value> <value name="B"> <block type="text" id="$2iFvqM_`,8Wu)s}FA{p"> <field name="TEXT">TrackedMesh</field> </block> </value> </block> </value> </block> </value> <statement name="DO0"> <block type="bitbybit.babylon.mesh.setMaterial" id="Ew.i0+i^-qPcs+D|!7{4"> <value name="BabylonMesh"> <block type="variables_get" id="-dJ75QSx)|u{Pf+*ZGDv"> <field name="VAR" id="w;,D/nP)6x_3N,Xh+4CA">meshesToTrack</field> </block> </value> <value name="Material"> <block type="variables_get" id="eQZ[Iwxz_X?L6W4GE-x1"> <field name="VAR" id="MZF66Jit8v(%L_G4Ppmo">materialSelected</field> </block> </value> <value name="IncludeChildren"> <block type="logic_boolean" id="O~bVp_d%yy{,mm+#Sp6,"> <field name="BOOL">TRUE</field> </block> </value> <next> <block type="variables_set" id="B!g$E.}_1V38/-{_%_7Z"> <field name="VAR" id="tMWvaMdc|h|+z62Kp).3">startGameHitHppened</field> <value name="VALUE"> <block type="logic_boolean" id="R^Ruc{j8(wNq@/SWRoFo"> <field name="BOOL">TRUE</field> </block> </value> </block> </next> </block> </statement> </block> </next> </block> </next> </block> </statement> </block> </statement> <next> <block type="base_time_on_pointer_up" id="(72Yi68EOBbGpdT)7XB|"> <statement name="Update"> <block type="controls_if" id="3Fb]%YI~~Y/R?^AUg;7J"> <value name="IF0"> <block type="variables_get" id=",bZ:[6o^jm758JomCcOM"> <field name="VAR" id="E;.tH+kiH]AKdVRt|L(X">gamePaused</field> </block> </value> <statement name="DO0"> <block type="variables_set" id="oZ6=f;7;DfVp{QHd5q*9"> <field name="VAR" id="p5g0UQPeQRKZ=C6QX$!f">isPointerDown</field> <value name="VALUE"> <block type="logic_boolean" id="NlHW|Yr;jRjyub[FE+Nz"> <field name="BOOL">FALSE</field> </block> </value> <next> <block type="controls_if" id="y.8|fHuYeET_OWE0,Z(@"> <value name="IF0"> <block type="variables_get" id="DYiDpMMW?0LCpyO!JnjV"> <field name="VAR" id="tMWvaMdc|h|+z62Kp).3">startGameHitHppened</field> </block> </value> <statement name="DO0"> <block type="bitbybit.babylon.mesh.setMaterial" id="@1u0;F(G~kazVA${3$6M"> <value name="BabylonMesh"> <block type="variables_get" id="bu0Q6fx2+6DxrYp7U}r5"> <field name="VAR" id="w;,D/nP)6x_3N,Xh+4CA">meshesToTrack</field> </block> </value> <value name="Material"> <block type="variables_get" id=")P9AD;_L*3gzah0y`(-/"> <field name="VAR" id="u8pzRT~Yq+ci$Pa(n{b1">materialHovered</field> </block> </value> <value name="IncludeChildren"> <block type="logic_boolean" id="^g{K+}6|rKQHnACYn`=h"> <field name="BOOL">TRUE</field> </block> </value> <next> <block type="variables_set" id="1z$L|9Q8aqR7=}!D#fgd"> <field name="VAR" id="tMWvaMdc|h|+z62Kp).3">startGameHitHppened</field> <value name="VALUE"> <block type="logic_boolean" id="3=0^jv!^U*8A8k:4wC.s"> <field name="BOOL">FALSE</field> </block> </value> <next> <block type="bitbybit.babylon.mesh.dispose" id="AB@uBbAOjm6u`1sjN|Aj"> <value name="BabylonMesh"> <block type="variables_get" id="iRF5pBlrZ@n7!mjJBZ1T"> <field name="VAR" id="w;,D/nP)6x_3N,Xh+4CA">meshesToTrack</field> </block> </value> <next> <block type="controls_if" id="Snt*(kw:*L`iEk0;,go~"> <value name="IF0"> <block type="variables_get" id="ch2Md^x/mNNY?wwiz||E"> <field name="VAR" id="wdP2]qeqQ+RjpD3B;*h1">shouldStartTheGame</field> </block> </value> <statement name="DO0"> <block type="procedures_callnoreturn" id="~t8P]N$%,p7mXigNfNhV"> <mutation name="startTheGame"> </mutation> </block> </statement> <next> <block type="controls_if" id="GN-VL3*cDeDku(h9dDl,"> <value name="IF0"> <block type="variables_get" id="vz$9Q~0UH}~!xABADu0f"> <field name="VAR" id=".zx|JB2gL|-5(=S3G2F|">shouldReplay</field> </block> </value> <statement name="DO0"> <block type="bitbybit.babylon.mesh.dispose" id=",dY$ntL$_pTjJ%[^g{4:"> <value name="BabylonMesh"> <block type="variables_get" id="lGk{DZGGZDoglEwF`[s0"> <field name="VAR" id="X,7}=g8X@8FQ7lkUEQ7J">cleanMeshOnStart</field> </block> </value> <next> <block type="controls_forEach" id="SB_~+S|NF:7lUtoKjW,P"> <field name="VAR" id="i`?upbOhaXrYcEaiH^tC">r</field> <value name="LIST"> <block type="variables_get" id="hZMP|dg/8il{C9kpKBXf"> <field name="VAR" id=")FB(QiJelx*$9Er+`uG3">obstacleColMeshes</field> </block> </value> <statement name="DO"> <block type="bitbybit.babylon.mesh.show" id="hTA+75.lMS^-Vhu(A%b3"> <value name="BabylonMesh"> <block type="variables_get" id="OGa##M/)qv@=Va=YD2/8"> <field name="VAR" id="i`?upbOhaXrYcEaiH^tC">r</field> </block> </value> <value name="IncludeChildren"> <block type="logic_boolean" id="i~N0,t*(4T{7K73W}gKG"> <field name="BOOL">FALSE</field> </block> </value> <next> <block type="bitbybit.babylon.mesh.setPickable" id="0+-i,eFt-(36Ywd(FVj8"> <value name="BabylonMesh"> <block type="variables_get" id="uUZ^YyntVV|^wM=i8(9a"> <field name="VAR" id="i`?upbOhaXrYcEaiH^tC">r</field> </block> </value> <value name="Pickable"> <block type="logic_boolean" id="c,@z=/16;=!`-rW/z0pZ"> <field name="BOOL">TRUE</field> </block> </value> <value name="IncludeChildren"> <block type="logic_boolean" id="PSeV4ek/V%xq@-J/Gt1e"> <field name="BOOL">FALSE</field> </block> </value> </block> </next> </block> </statement> <next> <block type="variables_set" id="Wp;1Xu~4U8gf~Ag@CCr7"> <field name="VAR" id="$/mds]S[E2a%g6Yc,BVE">secondsGiven</field> <value name="VALUE"> <block type="math_number" id="t}YQzX0?f2VE+_]K@lto"> <field name="NUM">20</field> </block> </value> <next> <block type="variables_set" id="eZOjxk85cEj!3p!:%pbn"> <field name="VAR" id="Qcdx,zyv.,|5{Pv,efhl">hitCount</field> <value name="VALUE"> <block type="math_number" id="j$)L,j}{K4I6xwpr+^Eq"> <field name="NUM">0</field> </block> </value> <next> <block type="variables_set" id="riJewz|tmw#i2,O3{Vp?"> <field name="VAR" id="E;.tH+kiH]AKdVRt|L(X">gamePaused</field> <value name="VALUE"> <block type="logic_boolean" id="NIJ^-AiNQR@`{}P`$Mf2"> <field name="BOOL">FALSE</field> </block> </value> <next> <block type="procedures_callnoreturn" id="Cg}1xUY9#L0BxEOvFKp}"> <mutation name="startTimer"> </mutation> </block> </next> </block> </next> </block> </next> </block> </next> </block> </next> </block> </statement> </block> </next> </block> </next> </block> </next> </block> </next> </block> </statement> </block> </next> </block> </statement> </block> </statement> </block> </next> </block> </next> </block> </next> </block> </statement> </block> <block type="procedures_defnoreturn" id="M5EE#pF:h#I#0u(VC=:V" x="2168" y="1356"> <field name="NAME">startTheGame</field> <comment pinned="false" h="80" w="160">Describe this function...</comment> <statement name="STACK"> <block type="variables_set" id="dQ~N:]rpA#_X.n1qf;!g"> <field name="VAR" id="N55VA*wQ=JZ7)ZzC![e2">gameStarted</field> <value name="VALUE"> <block type="logic_boolean" id="{IledY|^eOzWrcsi0;/H"> <field name="BOOL">TRUE</field> </block> </value> <next> <block type="bitbybit.babylon.mesh.setVisibility" id="Tt3Vd@s^7nIy0xww/od/"> <value name="BabylonMesh"> <block type="variables_get" id="5|z^uFjgH$2`JPwfn~Mm"> <field name="VAR" id="l;zV{Uv*k.k)m:5$l!+A">ray</field> </block> </value> <value name="Visibility"> <block type="math_number" id="2S^Kvp4!D,+j]67X[zdP"> <field name="NUM">1</field> </block> </value> <value name="IncludeChildren"> <block type="logic_boolean" id="nmBI|*kXGUbHpO31Sx+^"> <field name="BOOL">TRUE</field> </block> </value> <next> <block type="bitbybit.babylon.mesh.show" id="tAcZ~n#a8T01!mXWoP`z"> <value name="BabylonMesh"> <block type="variables_get" id="m:{73|f1a?J!x$nHMa%a"> <field name="VAR" id="F)w_7v5!Tavx+!ln:d[L">planeMesh</field> </block> </value> <value name="IncludeChildren"> <block type="logic_boolean" id=")knqb@S%mP;Y@PfrGwh:"> <field name="BOOL">TRUE</field> </block> </value> <next> <block type="bitbybit.babylon.mesh.show" id="[(H,4e/;U+%D7Q2=mD~f"> <value name="BabylonMesh"> <block type="variables_get" id="N)#2+-=}PP)C6N[f]ur{"> <field name="VAR" id="l;zV{Uv*k.k)m:5$l!+A">ray</field> </block> </value> <value name="IncludeChildren"> <block type="logic_boolean" id="[ttWYt0O~l[u]{9Sp[O-"> <field name="BOOL">TRUE</field> </block> </value> <next> <block type="procedures_callnoreturn" id="6tc.:yRm#5!.@ig~9(tJ"> <mutation name="startTimer"> </mutation> <next> <block type="variables_set" id="r,{JE~[NR=^EE8lhPz5["> <field name="VAR" id="E;.tH+kiH]AKdVRt|L(X">gamePaused</field> <value name="VALUE"> <block type="logic_boolean" id="uM?xhpM8HzkzwP#{nj|y"> <field name="BOOL">FALSE</field> </block> </value> <next> <block type="base_time_update" id="#wo+D8w*C-j(eDF/jRIy"> <field name="TimePassedMs" id="i;cm5J?.TgpvRVfg!E6*">timeElapsedFromPreviousFrame</field> <statement name="Update"> <block type="controls_if" id="%,#3?.8UdZh(]F$#rHHV"> <value name="IF0"> <block type="logic_negate" id="N=_k/i+n6UQJK2nP:e19"> <value name="BOOL"> <block type="variables_get" id="Y~,G`r{qES{Ij8Q_iiU*"> <field name="VAR" id="E;.tH+kiH]AKdVRt|L(X">gamePaused</field> </block> </value> </block> </value> <statement name="DO0"> <block type="procedures_callnoreturn" id="e_xn{A%,|_khgI]$jW6H"> <mutation name="controlForwardMovement"> <arg name="targetList"> </arg> <arg name="restoreHit"> </arg> </mutation> <value name="ARG0"> <block type="variables_get" id=":f^NLAOe?P~*apt}Bzvk"> <field name="VAR" id=")FB(QiJelx*$9Er+`uG3">obstacleColMeshes</field> </block> </value> <value name="ARG1"> <block type="logic_boolean" id="sIhhWcYF$(3UllfmZ!3q"> <field name="BOOL">TRUE</field> </block> </value> <next> <block type="procedures_callnoreturn" id=":Lz%)}SKVPaQA1j_xle2"> <mutation name="controlForwardMovement"> <arg name="targetList"> </arg> <arg name="restoreHit"> </arg> </mutation> <value name="ARG0"> <block type="variables_get" id="f9vDN%jiHA5mp|m42ON;"> <field name="VAR" id=";5h%^BJh)`CAnK}F:xTC">obstacleInstances</field> </block> </value> <value name="ARG1"> <block type="logic_boolean" id=")~=-7dS/8~N208S;DldT"> <field name="BOOL">FALSE</field> </block> </value> <next> <block type="bitbybit.babylon.mesh.setRotation" id="0zgt=771`JI%pt{0sHk`"> <value name="BabylonMesh"> <block type="variables_get" id="bbz|(BaZUNFv1zjZ+V8-"> <field name="VAR" id="F)w_7v5!Tavx+!ln:d[L">planeMesh</field> </block> </value> <value name="Rotation"> <block type="bitbybit.point.pointXYZ" id="4/`B_z=ou`jgm0-c-Tfv"> <value name="X"> <block type="math_number" id="4@{FV[aadV+bQ(d+a-3T"> <field name="NUM">0</field> </block> </value> <value name="Y"> <block type="math_number" id="5NwH(SHRBvquCa8BHxcw"> <field name="NUM">0</field> </block> </value> <value name="Z"> <block type="math_number" id=";P4~9.0Ny1YN8uh`w-6*"> <field name="NUM">0</field> </block> </value> </block> </value> <next> <block type="procedures_callnoreturn" id="[u2@Zx3?]AvHw^M{iW2n"> <mutation name="controlObstacleMovement"> <arg name="meshesToMove"> </arg> </mutation> <value name="ARG0"> <block type="variables_get" id="9td2X:+#idm8p0;gJOji"> <field name="VAR" id=";5h%^BJh)`CAnK}F:xTC">obstacleInstances</field> </block> </value> <next> <block type="procedures_callnoreturn" id="2Bq,N|)o2:.Cobc7Q2=m"> <mutation name="controlObstacleMovement"> <arg name="meshesToMove"> </arg> </mutation> <value name="ARG0"> <block type="variables_get" id="R!Y(+.Z;gj~*NEHO$Z^-"> <field name="VAR" id=")FB(QiJelx*$9Er+`uG3">obstacleColMeshes</field> </block> </value> <next> <block type="procedures_callnoreturn" id="f(fTB}e%0=C@uDSPW*1c"> <mutation name="controlPlaneRotations"> <arg name="plane"> </arg> </mutation> <value name="ARG0"> <block type="variables_get" id="gcqFHLpLiJ)^rpW_U,XA"> <field name="VAR" id="F)w_7v5!Tavx+!ln:d[L">planeMesh</field> </block> </value> <next> <block type="variables_set" id="s*y7FZw,jI{}h6U)whO{"> <field name="VAR" id="42j0uXu*zxT#gWpBf|mU">collisionFound</field> <value name="VALUE"> <block type="logic_boolean" id=":S2[}$2(zCb9fGZCPa|,"> <field name="BOOL">FALSE</field> </block> </value> <next> <block type="variables_set" id="8XkT%XS_9jG=FzrK)XNd"> <field name="VAR" id="30#%0]L$:t6Ou}288YJ,">rayToCheck</field> <value name="VALUE"> <block type="bitbybit.babylon.ray.createRayFromTo" id="xqI%TVs)9p[E7.;s,CXd"> <value name="From"> <block type="bitbybit.babylon.mesh.getAbsolutePosition" id="~1{pCsf9Ue!_!-j[KT]O"> <value name="BabylonMesh"> <block type="variables_get" id="G!Knp1u%kxp{K2ory5;$"> <field name="VAR" id="Z^6N%Qz;I1*UFFI1d]5M">rayStart</field> </block> </value> </block> </value> <value name="To"> <block type="bitbybit.babylon.mesh.getAbsolutePosition" id="]uprkPj:oEVXa=cPDv=5"> <value name="BabylonMesh"> <block type="variables_get" id="k8p)Q,m0u*#mC?N*,L.2"> <field name="VAR" id="-Z2ex1M1~fOr(z`/x`!G">rayEnd</field> </block> </value> </block> </value> </block> </value> <next> <block type="variables_set" id="XOQs-/gpiB;CciSl7$(#"> <field name="VAR" id="@+:8_}NyQKSt3ZqRj)}z">pickResult</field> <value name="VALUE"> <block type="bitbybit.babylon.pick.pickWithRay" id="[N5AFx*6Ao,bf,Y++g|7"> <value name="Ray"> <block type="variables_get" id="t*lM(i7rWoTl%1xct)7@"> <field name="VAR" id="30#%0]L$:t6Ou}288YJ,">rayToCheck</field> </block> </value> </block> </value> <next> <block type="controls_if" id="7dcijs5=0QSrFb]oZ8t{"> <value name="IF0"> <block type="bitbybit.babylon.pick.hit" id="z*{V3t(60uH10P.8)o+{"> <value name="PickInfo"> <block type="variables_get" id="ySU3wYD`rqck@8)_M{?b"> <field name="VAR" id="@+:8_}NyQKSt3ZqRj)}z">pickResult</field> </block> </value> </block> </value> <statement name="DO0"> <block type="variables_set" id="HkFLc#I0V|hHu,Vta:OH"> <field name="VAR" id="x1}?6sE~+;43`Nb.]z]P">hitCountPrevious</field> <value name="VALUE"> <block type="variables_get" id="`?CbaRU_?=rt]1g~mu,z"> <field name="VAR" id="Qcdx,zyv.,|5{Pv,efhl">hitCount</field> </block> </value> <next> <block type="math_change" id="yK7s%|E]q~^*]l(BUSgN"> <field name="VAR" id="Qcdx,zyv.,|5{Pv,efhl">hitCount</field> <value name="DELTA"> <shadow type="math_number" id="lXa1(n7?p1%:+bFoYN/L"> <field name="NUM">1</field> </shadow> </value> <next> <block type="variables_set" id="9C6ima4AFWY5Dy#l=dYR"> <field name="VAR" id=".UBM#mP(,U}f;{jf]Q5l">hitMesh</field> <value name="VALUE"> <block type="bitbybit.babylon.pick.getPickedMesh" id="27A%I9b`p($kcRa.x^/8"> <value name="PickInfo"> <block type="variables_get" id="-s[S+ccKv0Zu(k$bg}:A"> <field name="VAR" id="@+:8_}NyQKSt3ZqRj)}z">pickResult</field> </block> </value> </block> </value> <next> <block type="variables_set" id="JaI+aqDNgixUFrNoY!eq"> <field name="VAR" id="W,]`|.USpL!Gl7lG}w8$">material</field> <value name="VALUE"> <block type="bitbybit.babylon.mesh.getMaterial" id="#giI3%|%cEaLn^$mdQ!u"> <value name="BabylonMesh"> <block type="variables_get" id="Z$az44Jo,//}5Y:R!QCy"> <field name="VAR" id=".UBM#mP(,U}f;{jf]Q5l">hitMesh</field> </block> </value> </block> </value> <next> <block type="bitbybit.babylon.mesh.setPickable" id="FYB(6%PAQh*ulq?BV*2`"> <value name="BabylonMesh"> <block type="variables_get" id="2l3t5{|nWK75k%R_0jaH"> <field name="VAR" id=".UBM#mP(,U}f;{jf]Q5l">hitMesh</field> </block> </value> <value name="Pickable"> <block type="logic_boolean" id="8]Oc/)v2=TmzPt:D,f~V"> <field name="BOOL">FALSE</field> </block> </value> <value name="IncludeChildren"> <block type="logic_boolean" id="ndZ{P15w%RzyhGlgT.QN"> <field name="BOOL">FALSE</field> </block> </value> <next> <block type="bitbybit.babylon.mesh.hide" id="[:i`3b|3fYLu$+Z|[U6*"> <value name="BabylonMesh"> <block type="variables_get" id="hi1xY~dmW~n9J2dijXFn"> <field name="VAR" id=".UBM#mP(,U}f;{jf]Q5l">hitMesh</field> </block> </value> <value name="IncludeChildren"> <block type="logic_boolean" id="6^o5HZG77]RThsN?*E@9"> <field name="BOOL">FALSE</field> </block> </value> <next> <block type="procedures_callnoreturn" id="PbGqX4b7!HjO42Y((Q9B"> <mutation name="textOfHitCount"> </mutation> </block> </next> </block> </next> </block> </next> </block> </next> </block> </next> </block> </next> </block> </statement> </block> </next> </block> </next> </block> </next> </block> </next> </block> </next> </block> </next> </block> </next> </block> </next> </block> </next> </block> </statement> </block> </statement> </block> </next> </block> </next> </block> </next> </block> </next> </block> </next> </block> </next> </block> </statement> </block> <block type="procedures_defnoreturn" id="xbTGs3h|q}jKf*Z7;I@6" x="3146" y="1430"> <field name="NAME">startTimer</field> <comment pinned="false" h="80" w="160">Describe this function...</comment> <statement name="STACK"> <block type="variables_set" id="_aiB![BY3R!F0](%[Qsl"> <field name="VAR" id="~d$PfCHmL3-(B`$Yx1-F">timerPaused</field> <value name="VALUE"> <block type="logic_boolean" id="WFZxgv+8IRPx2A5Kq$Cl"> <field name="BOOL">FALSE</field> </block> </value> <next> <block type="variables_set" id="5mKcr+0JMs_/jCpEQo*x"> <field name="VAR" id="$/mds]S[E2a%g6Yc,BVE">secondsGiven</field> <value name="VALUE"> <block type="math_number" id="L[N!FgcuB[!$tM}Jf(ac"> <field name="NUM">20</field> </block> </value> <next> <block type="procedures_callnoreturn" id=",m9;oCQ+OW*{NPt*Kv=v"> <mutation name="createTimerIndicator"> </mutation> <next> <block type="variables_set" id=".bu!FUtE6~4Fg#3IW]MJ"> <field name="VAR" id="QJFOWq0t.:dzCgiYPM*?">handlerTimer</field> <value name="VALUE"> <block type="base_time_execute_at_interval_with_handler" id="2^=gqS#X(URo)kVp?mnS"> <value name="Interval"> <block type="math_number" id="W:l?UxCyoq2}dYSWZeDL"> <field name="NUM">1</field> </block> </value> <statement name="Then"> <block type="procedures_callnoreturn" id="^S?}wYK1z0TLH-yAGM~M"> <mutation name="createTimerIndicator"> </mutation> </block> </statement> </block> </value> </block> </next> </block> </next> </block> </next> </block> </statement> </block> <block type="procedures_defnoreturn" id="E}[ZDOhYEf#^Od3l%ZJj" x="4269" y="1425"> <field name="NAME">textOfHitCount</field> <comment pinned="false" h="80" w="160">Describe this function...</comment> <statement name="STACK"> <block type="controls_if" id="3jt{]^HwVJU_SwcE3LQ)"> <value name="IF0"> <block type="logic_compare" id="Q%L$1(MEJi1^I}8`0H$D"> <field name="OP">GT</field> <value name="A"> <block type="variables_get" id="$R`00Dz|cX@;]K}Ck8@x"> <field name="VAR" id="Qcdx,zyv.,|5{Pv,efhl">hitCount</field> </block> </value> <value name="B"> <block type="variables_get" id=",Hq^P8][3W`F:*?MqE}d"> <field name="VAR" id="x1}?6sE~+;43`Nb.]z]P">hitCountPrevious</field> </block> </value> </block> </value> <statement name="DO0"> <block type="base_time_then" id="w;DvmzHpTSHI}swdZY5u"> <field name="Result" id="W{L4]JR8wmj_O^DxvM+7">resultingTextMesh</field> <value name="Promise"> <block type="bitbybit.draw.drawAnyAsync" id="Zl+A#HIW`*mJWJ3:ftP;"> <value name="Entity"> <block type="bitbybit.jscad.text.cylindricalText" id="e|WRE@FtGFT:pA5yME_g"> <value name="Text"> <block type="text_join" id="hVjp)ej$S8Brez!0I=n-"> <mutation items="1"> </mutation> <value name="ADD0"> <block type="variables_get" id="ANy(fP0y09K*1/bEm*hk"> <field name="VAR" id="Qcdx,zyv.,|5{Pv,efhl">hitCount</field> </block> </value> </block> </value> <value name="ExtrusionHeight"> <block type="math_number" id="#2?DbV?]Ip9#e8/wxT9{"> <field name="NUM">0.2</field> </block> </value> <value name="ExtrusionSize"> <block type="math_number" id="w#gQI=#qWwg=v#~sjZG("> <field name="NUM">0.1</field> </block> </value> <value name="Segments"> <block type="math_number" id="=@k%;GEDn5.BV[MFFs?`"> <field name="NUM">12</field> </block> </value> <value name="XOffset"> <block type="math_number" id="3U,LoosoJ`k2^Y4x@GJ4"> <field name="NUM">0</field> </block> </value> <value name="YOffset"> <block type="math_number" id="kb(tmw!IbfO01`U/D)dP"> <field name="NUM">0</field> </block> </value> <value name="Height"> <block type="math_number" id="00Q$~6-ms^Q[F0zL:oti"> <field name="NUM">1</field> </block> </value> <value name="LineSpacing"> <block type="math_number" id="GM$.g:@YF4])ia(qgrKu"> <field name="NUM">1.4</field> </block> </value> <value name="LetterSpacing"> <block type="math_number" id="l,qbCH%URuRSzzJ+//+E"> <field name="NUM">1</field> </block> </value> <value name="Align"> <block type="bitbybit.jscad.enums.jscadTextAlignEnum" id="}bBd~+[Y:[KmZwxRT@?V"> <field name="bitbybit.jscad.enums.jscadTextAlignEnum">'left'</field> </block> </value> <value name="ExtrudeOffset"> <block type="math_number" id="6~QxOx*0hUM*L4IThEUR"> <field name="NUM">0</field> </block> </value> </block> </value> </block> </value> <statement name="Then"> <block type="controls_forEach" id="hAgLJDeB$nH;gn(IC{%o"> <field name="VAR" id="q=-Wo9Xf3alN@)LF_7A?">n</field> <value name="LIST"> <block type="variables_get" id=".]M@$T2K_iAtZ|@A7-|N"> <field name="VAR" id="V8pA:KMfYFm%Mi-Cn;%3">drawnTextMeshes</field> </block> </value> <statement name="DO"> <block type="bitbybit.babylon.mesh.hide" id="^Y[%~#5}YLq|O(qTk=zV"> <value name="BabylonMesh"> <block type="variables_get" id="Nl6Vt4VG|BUhLgo3+/X}"> <field name="VAR" id="q=-Wo9Xf3alN@)LF_7A?">n</field> </block> </value> <value name="IncludeChildren"> <block type="logic_boolean" id="dS#7GUamqGQLu}Cuj=[m"> <field name="BOOL">TRUE</field> </block> </value> <next> <block type="bitbybit.babylon.mesh.dispose" id="(|i4D=e;IC):xlxv]U1G"> <value name="BabylonMesh"> <block type="variables_get" id="z[re)Q/nf3V7CEpr1Pld"> <field name="VAR" id="q=-Wo9Xf3alN@)LF_7A?">n</field> </block> </value> </block> </next> </block> </statement> <next> <block type="variables_set" id="C4p7|Q5*VKT-l^MT]3O["> <field name="VAR" id="V8pA:KMfYFm%Mi-Cn;%3">drawnTextMeshes</field> <value name="VALUE"> <block type="lists_create_with" id="L|C0%B@4eIT9*F1/Y}e["> <mutation items="0"> </mutation> </block> </value> <next> <block type="bitbybit.babylon.mesh.setPosition" id="^]%yrw-FUFT).P!cGb1~"> <value name="BabylonMesh"> <block type="variables_get" id="-B%^5}I}R3dkGrRd:Hd2"> <field name="VAR" id="W{L4]JR8wmj_O^DxvM+7">resultingTextMesh</field> </block> </value> <value name="Position"> <block type="bitbybit.point.pointXYZ" id="w}MA?%CJp3K:SK*8R:O@"> <value name="X"> <block type="math_number" id="Sl8!pP_dEP;DJY@w0NN+"> <field name="NUM">15</field> </block> </value> <value name="Y"> <block type="math_number" id="i4*GVn*(jE23aacRXYHP"> <field name="NUM">20</field> </block> </value> <value name="Z"> <block type="math_number" id="m^W56xve)rY!iY#g3b0q"> <field name="NUM">-20</field> </block> </value> </block> </value> <next> <block type="lists_setIndex" id="FLXZDd}Pkd#CTc3VkDd+"> <mutation at="false"> </mutation> <field name="MODE">INSERT</field> <field name="WHERE">LAST</field> <value name="LIST"> <block type="variables_get" id="pe9a*4giR,eE`LSZ/5n5"> <field name="VAR" id="V8pA:KMfYFm%Mi-Cn;%3">drawnTextMeshes</field> </block> </value> <value name="TO"> <block type="variables_get" id="s#jEA*LAx82LV?{Z98,x"> <field name="VAR" id="W{L4]JR8wmj_O^DxvM+7">resultingTextMesh</field> </block> </value> </block> </next> </block> </next> </block> </next> </block> </statement> </block> </statement> </block> </statement> </block> <block type="procedures_defnoreturn" id="cE}/QE#CJ3ruS,pM4uA2" x="5469" y="1421"> <field name="NAME">assignSeparateMaterials</field> <comment pinned="false" h="80" w="160">Describe this function...</comment> <statement name="STACK"> <block type="controls_forEach" id="bT|p/p|6xu*h!(0H4F{="> <field name="VAR" id="Ne13PA8xbZ|x~eAa9i6h">o</field> <value name="LIST"> <block type="variables_get" id="fNX+zJ*-Xa%ca?*EkBZG"> <field name="VAR" id=")FB(QiJelx*$9Er+`uG3">obstacleColMeshes</field> </block> </value> <statement name="DO"> <block type="bitbybit.babylon.mesh.setMaterial" id="Z:1LiH.AjtT[6T_3{#MT"> <value name="BabylonMesh"> <block type="variables_get" id="s!]W|nUL%Te,rd8dN.T]"> <field name="VAR" id="Ne13PA8xbZ|x~eAa9i6h">o</field> </block> </value> <value name="Material"> <block type="bitbybit.babylon.material.pbrMetallicRoughness.create" id="O[1XCwm2bs+OA5##rP)="> <value name="Name"> <block type="text_join" id="?fyWA)nUR3=M%E2Qf$94"> <mutation items="3"> </mutation> <value name="ADD0"> <block type="text" id="F$|?ZAW1*B91-KWf%G0l"> <field name="TEXT">Mesh</field> </block> </value> <value name="ADD1"> <block type="variables_get" id="`jXYQhg8wpWH-^a`VIfC"> <field name="VAR" id="w]F3AtioA-ce0PoUY`(,">i</field> </block> </value> <value name="ADD2"> <block type="variables_get" id="JB*W^ZEqtZi*:cVfA7A~"> <field name="VAR" id="~MwI1K$/`cUlVri|vBBF">j</field> </block> </value> </block> </value> <value name="BaseColor"> <block type="variables_get" id="A)5lpwa2ycNo}Vkf.rIP"> <field name="VAR" id="vP8%K(.OV@=lS=`/Ep,e">matNotCollidedColor</field> </block> </value> <value name="Metallic"> <block type="variables_get" id="KiJQ3KXJ*HQ`o6!T,x~-"> <field name="VAR" id="GP;-F80W/DNm(uw8bX/E">matNotCollidedMetallic</field> </block> </value> <value name="Roughness"> <block type="variables_get" id="9q/shXnMF-f6G,3kE-Bu"> <field name="VAR" id="R1GIHkyHWaMrR=#F^[m6">matNotCollidedRoughness</field> </block> </value> <value name="Alpha"> <block type="variables_get" id="Fd(#BI_A@iuhUHe=lPiI"> <field name="VAR" id="G0C?%a7j@H?e`8Aa77lE">matNotCollidedAlpha</field> </block> </value> <value name="BackFaceCulling"> <block type="logic_boolean" id="l-MbU*au8haz_KDsgcR?"> <field name="BOOL">TRUE</field> </block> </value> </block> </value> <next> <block type="bitbybit.babylon.mesh.setPickable" id="q@ACz7N[SX$4U(5:e$xy"> <value name="BabylonMesh"> <block type="variables_get" id="Fn^x`S+;k?a*yXtv3Sqw"> <field name="VAR" id="Ne13PA8xbZ|x~eAa9i6h">o</field> </block> </value> <value name="Pickable"> <block type="logic_boolean" id="l(.$=ao{j*q)XQLak24{"> <field name="BOOL">TRUE</field> </block> </value> </block> </next> </block> </statement> </block> </statement> </block> <block type="procedures_defnoreturn" id="DGEw]UF+HHaFrZmDl!7U" x="3142" y="1869"> <field name="NAME">createTimerIndicator</field> <comment pinned="false" h="80" w="160">Describe this function...</comment> <statement name="STACK"> <block type="controls_if" id="uSW$Hm%5f#~50*O8jnxC"> <value name="IF0"> <block type="logic_negate" id="Eqg4xb7h6ziK@jZ88%+,"> <value name="BOOL"> <block type="variables_get" id="S,y_U*_Nu;eF#Q2[c8PH"> <field name="VAR" id="~d$PfCHmL3-(B`$Yx1-F">timerPaused</field> </block> </value> </block> </value> <statement name="DO0"> <block type="math_change" id="u,fll6(1.cCKFv?F9hSS"> <field name="VAR" id="$/mds]S[E2a%g6Yc,BVE">secondsGiven</field> <value name="DELTA"> <shadow type="math_number" id="bD6|Ozf0).^UaO`528D^"> <field name="NUM">-1</field> </shadow> </value> <next> <block type="base_time_then" id="bkqsN;da%aMJA!,fDrcx"> <field name="Result" id="W{L4]JR8wmj_O^DxvM+7">resultingTextMesh</field> <value name="Promise"> <block type="bitbybit.draw.drawAnyAsync" id="qiH(2x!maYTnLcEfZy6I"> <value name="Entity"> <block type="bitbybit.jscad.text.cylindricalText" id="dNFHC#^H|bIMcdEFpU8F"> <value name="Text"> <block type="text_join" id="fnasD%3ua@xW]4q_JEzH"> <mutation items="2"> </mutation> <value name="ADD0"> <block type="text" id="T[n7Co4n~|SBj39[2,]."> <field name="TEXT">:</field> </block> </value> <value name="ADD1"> <block type="variables_get" id="oS4~a/rZq]rO%kpD)iV)"> <field name="VAR" id="$/mds]S[E2a%g6Yc,BVE">secondsGiven</field> </block> </value> </block> </value> <value name="ExtrusionHeight"> <block type="math_number" id="}$}`)fMGj@Yx/CCikSg6"> <field name="NUM">0.3</field> </block> </value> <value name="ExtrusionSize"> <block type="math_number" id=";-sTW_c%94`dGqhzE#Nk"> <field name="NUM">0.1</field> </block> </value> <value name="Segments"> <block type="math_number" id="F68VVZ+V8L%3y.v?NI/W"> <field name="NUM">12</field> </block> </value> <value name="XOffset"> <block type="math_number" id="T^t..UNp;uL5vC2=yF%q"> <field name="NUM">0</field> </block> </value> <value name="YOffset"> <block type="math_number" id=",`6~j3UJygXQb%_Aay`V"> <field name="NUM">0</field> </block> </value> <value name="Height"> <block type="math_number" id="S=,a$B{UHJ/)fcd~@Sv3"> <field name="NUM">1</field> </block> </value> <value name="LineSpacing"> <block type="math_number" id="h1WBFuu#Rw(z^0X%oq:I"> <field name="NUM">1.4</field> </block> </value> <value name="LetterSpacing"> <block type="math_number" id="VgnM@7dKBPKF^IR;APqX"> <field name="NUM">1</field> </block> </value> <value name="Align"> <block type="bitbybit.jscad.enums.jscadTextAlignEnum" id="?|Xrz#)e:vO|^:fc4~=L"> <field name="bitbybit.jscad.enums.jscadTextAlignEnum">'left'</field> </block> </value> <value name="ExtrudeOffset"> <block type="math_number" id="RR$ngv*:t9n)btY];,UR"> <field name="NUM">0</field> </block> </value> </block> </value> <value name="Options"> <block type="bitbybit.draw.optionsSimple" id="1+!%:iKQ{$@4cndEc+@r"> <value name="Colours"> <block type="colour_picker" id=")u/|NJgDIil!1Ay,X,[v"> <field name="COLOUR">#6600cc</field> </block> </value> <value name="Size"> <block type="math_number" id="Re4s{.V:U|=FI=p?Au)J"> <field name="NUM">3</field> </block> </value> <value name="Opacity"> <block type="math_number" id="$C*K|snFrls*4FEIQc;("> <field name="NUM">1</field> </block> </value> <value name="Updatable"> <block type="logic_boolean" id="%9)l,ax%3h%wH`Pn(/(J"> <field name="BOOL">FALSE</field> </block> </value> </block> </value> </block> </value> <statement name="Then"> <block type="controls_if" id="!NmvvWCN!ce]_NV]%^;B"> <value name="IF0"> <block type="variables_get" id="]T,ncs+]RXT#5Uvtah5)"> <field name="VAR" id=",x|OVhpyoy8+r1.*WRTj">timeText</field> </block> </value> <statement name="DO0"> <block type="bitbybit.babylon.mesh.dispose" id=";mAWafwbRAPXuaaJ0|9o"> <value name="BabylonMesh"> <block type="variables_get" id="ZouBNZ|3y.:253ek#8d6"> <field name="VAR" id=",x|OVhpyoy8+r1.*WRTj">timeText</field> </block> </value> </block> </statement> <next> <block type="bitbybit.babylon.mesh.setPosition" id="^B=|iX/z1Mb#o]Z#~,le"> <value name="BabylonMesh"> <block type="variables_get" id="Cbp*+*:II;%q`^Nh{xa*"> <field name="VAR" id="W{L4]JR8wmj_O^DxvM+7">resultingTextMesh</field> </block> </value> <value name="Position"> <block type="bitbybit.point.pointXYZ" id="lSz~r;a73$fyj6h_TDy}"> <value name="X"> <block type="math_number" id="A5D*X?ZG4ho3p:4Q72,8"> <field name="NUM">-20</field> </block> </value> <value name="Y"> <block type="math_number" id="%OQV7%6SKfSiFyWrfqsO"> <field name="NUM">20</field> </block> </value> <value name="Z"> <block type="math_number" id="n8CZ8tg(99Szt_`tiNHX"> <field name="NUM">-20</field> </block> </value> </block> </value> <next> <block type="variables_set" id="s/n8TGogDkehdnO/dza*"> <field name="VAR" id=",x|OVhpyoy8+r1.*WRTj">timeText</field> <value name="VALUE"> <block type="variables_get" id="fYV_URG6zhczkli7waju"> <field name="VAR" id="W{L4]JR8wmj_O^DxvM+7">resultingTextMesh</field> </block> </value> </block> </next> </block> </next> </block> </statement> <next> <block type="controls_if" id="9Pc._QB9uanVT~B=j2!;"> <value name="IF0"> <block type="logic_compare" id="pHWiqTN76GAbEi=(o,re"> <field name="OP">LT</field> <value name="A"> <block type="variables_get" id="O;BX7Yp4jm~p?|=r~U!u"> <field name="VAR" id="$/mds]S[E2a%g6Yc,BVE">secondsGiven</field> </block> </value> <value name="B"> <block type="math_number" id="6j7*j{L=tfTr1fhWIu*4"> <field name="NUM">1</field> </block> </value> </block> </value> <statement name="DO0"> <block type="procedures_callnoreturn" id="uBggy#[C0|rfL^xK.A:O"> <mutation name="handleEndOfTheGame"> </mutation> </block> </statement> </block> </next> </block> </next> </block> </statement> </block> </statement> </block> <block type="procedures_defnoreturn" id="XgGA,G{FvGp*TsNzX8vs" x="4280" y="2966"> <field name="NAME">handleEndOfTheGame</field> <comment pinned="false" h="80" w="160">Describe this function...</comment> <statement name="STACK"> <block type="base_time_clear_interval" id="7GAvmf_x3S4H.Yf%k$UZ"> <value name="IntervalHandler"> <block type="variables_get" id=";i+~cro%}1yct#HDcC57"> <field name="VAR" id="QJFOWq0t.:dzCgiYPM*?">handlerTimer</field> </block> </value> <next> <block type="variables_set" id="9%1.v(7Q0(0lX!eT+LA1"> <field name="VAR" id="E;.tH+kiH]AKdVRt|L(X">gamePaused</field> <value name="VALUE"> <block type="logic_boolean" id="_Z.Iz:Th29-KSK;90I-="> <field name="BOOL">TRUE</field> </block> </value> <next> <block type="variables_set" id="iTo1t=t~GuTrExO,Vi!K"> <field name="VAR" id="N55VA*wQ=JZ7)ZzC![e2">gameStarted</field> <value name="VALUE"> <block type="logic_boolean" id="=$@j9?|@A-vGSb$$#s`^"> <field name="BOOL">FALSE</field> </block> </value> <next> <block type="base_time_then" id="fA@11}9-]JdPG3?Nv`9."> <field name="Result" id="{OXHIJ`_y(5[)T%xK}[f">resultTextMeshes</field> <value name="Promise"> <block type="lists_create_with" id="[ULefx$UD5-pd`c1#-)r"> <mutation items="2"> </mutation> <value name="ADD0"> <block type="bitbybit.draw.drawAnyAsync" id="]aNrS9T-snz}gCsXyJSU"> <value name="Entity"> <block type="bitbybit.jscad.text.sphericalText" id="D7fNR`Rr1{BDV+HPb#z]"> <value name="Text"> <block type="text_join" id="@OxFes?e_mxbTFShnig]"> <mutation items="3"> </mutation> <value name="ADD0"> <block type="text" id="6;rY!3%Z(nl|e]SEPIMC"> <field name="TEXT">Nice! Your score -</field> </block> </value> <value name="ADD1"> <block type="variables_get" id="nkKwVYuZC6#_})NZLhn3"> <field name="VAR" id="Qcdx,zyv.,|5{Pv,efhl">hitCount</field> </block> </value> <value name="ADD2"> <block type="text" id="JP=pp!@zdf=DZH-g)?+b"> <field name="TEXT">points</field> </block> </value> </block> </value> <value name="Radius"> <block type="math_number" id="0Vaxx9HQIXM61,069Aaf"> <field name="NUM">0.4</field> </block> </value> <value name="Segments"> <block type="math_number" id="oP1p%Vy[6v@`B1wnwGv5"> <field name="NUM">10</field> </block> </value> <value name="XOffset"> <block type="math_number" id="8-0WW4{N_|TFIibz0;)@"> <field name="NUM">0</field> </block> </value> <value name="YOffset"> <block type="math_number" id="?FapQ7ffa5Lt$p3|IR+V"> <field name="NUM">0</field> </block> </value> <value name="Height"> <block type="math_number" id="iBI`3A(gA|fUoqyvX8Pp"> <field name="NUM">2</field> </block> </value> <value name="LineSpacing"> <block type="math_number" id="ARR0M(SyHc~2=Y*Ev1X("> <field name="NUM">1.4</field> </block> </value> <value name="LetterSpacing"> <block type="math_number" id="B7Bs,DDi@pM!jtfhhn^1"> <field name="NUM">1</field> </block> </value> <value name="Align"> <block type="bitbybit.jscad.enums.jscadTextAlignEnum" id="EmbK)--/?9*z9v2I!R*+"> <field name="bitbybit.jscad.enums.jscadTextAlignEnum">'left'</field> </block> </value> <value name="ExtrudeOffset"> <block type="math_number" id="j*(xq*~3i9Y)st}xVDSr"> <field name="NUM">0</field> </block> </value> </block> </value> </block> </value> <value name="ADD1"> <block type="bitbybit.draw.drawAnyAsync" id="f+O1ll.DFuTR:mjD.]hP"> <value name="Entity"> <block type="bitbybit.jscad.text.sphericalText" id="ZS{+=-AH3+K,hR+DE=!l"> <value name="Text"> <block type="text" id="2,s6a|W^2#165(M).))$"> <field name="TEXT">Try Again!</field> </block> </value> <value name="Radius"> <block type="math_number" id="%.V_ZzRCzgJD]cpB`A0T"> <field name="NUM">1</field> </block> </value> <value name="Segments"> <block type="math_number" id="%=zhOzy)ik0IQ[5?~A_9"> <field name="NUM">10</field> </block> </value> <value name="XOffset"> <block type="math_number" id=")L(C#A}S3`(#X{c,NCw,"> <field name="NUM">0</field> </block> </value> <value name="YOffset"> <block type="math_number" id="J|(*U8#ZUwp-FXtyS2-$"> <field name="NUM">0</field> </block> </value> <value name="Height"> <block type="math_number" id="?:^QB-Lp5/OKR^0:OLXb"> <field name="NUM">4</field> </block> </value> <value name="LineSpacing"> <block type="math_number" id="[8)Xk#ErqekB:?ST!E4f"> <field name="NUM">1.4</field> </block> </value> <value name="LetterSpacing"> <block type="math_number" id="5$[2~oxu5b@I_[nrCagk"> <field name="NUM">1</field> </block> </value> <value name="Align"> <block type="bitbybit.jscad.enums.jscadTextAlignEnum" id="tij4QTg/GEN~T!GrxZnn"> <field name="bitbybit.jscad.enums.jscadTextAlignEnum">'left'</field> </block> </value> <value name="ExtrudeOffset"> <block type="math_number" id="W8)Qn!EIc{R/I^!cm-lX"> <field name="NUM">0</field> </block> </value> </block> </value> </block> </value> </block> </value> <statement name="Then"> <block type="variables_set" id="GvCM)RA@pDSVb6,S!OOG"> <field name="VAR" id="$SRhVP8-8gc/6!PDkc{P">topText</field> <value name="VALUE"> <block type="lists_getIndex" id="D5~w@`*RPyHFRBOW9g+p"> <mutation statement="false" at="false"> </mutation> <field name="MODE">GET</field> <field name="WHERE">FIRST</field> <value name="VALUE"> <block type="variables_get" id=",C//+|GUn_Hx^qpGLe=X"> <field name="VAR" id="{OXHIJ`_y(5[)T%xK}[f">resultTextMeshes</field> </block> </value> </block> </value> <next> <block type="variables_set" id="cju2TD8:}K}[z5U.[4d`"> <field name="VAR" id="C$:Ym:z7US6]SXWDn22:">bottomText</field> <value name="VALUE"> <block type="lists_getIndex" id="_jT)FNmRdC3L(~Ay($]Y"> <mutation statement="false" at="false"> </mutation> <field name="MODE">GET</field> <field name="WHERE">LAST</field> <value name="VALUE"> <block type="variables_get" id="!J.%Tb4rLH.%_L#j`/a)"> <field name="VAR" id="{OXHIJ`_y(5[)T%xK}[f">resultTextMeshes</field> </block> </value> </block> </value> <next> <block type="bitbybit.babylon.mesh.moveUp" id="im?[91jr^3;c^aA_sO/Y"> <value name="BabylonMesh"> <block type="variables_get" id="v~K*{;|i/y/.2(zAbmug"> <field name="VAR" id="$SRhVP8-8gc/6!PDkc{P">topText</field> </block> </value> <value name="Distance"> <block type="math_number" id="i8-g02P|8ixD27Ob9O|j"> <field name="NUM">32</field> </block> </value> <next> <block type="bitbybit.babylon.mesh.moveUp" id="FtjX8!}5,7.dV(+`gfOg"> <value name="BabylonMesh"> <block type="variables_get" id="4hM6R5SD$8BW;r$2R/Pd"> <field name="VAR" id="C$:Ym:z7US6]SXWDn22:">bottomText</field> </block> </value> <value name="Distance"> <block type="math_number" id="(mQA2];}:PSy-xa_ZN3B"> <field name="NUM">20</field> </block> </value> <next> <block type="bitbybit.babylon.mesh.setPickable" id="AjN$I87euhM7t{+UW!U!"> <value name="BabylonMesh"> <block type="variables_get" id=";$E`.^(RM{6+`YBCT.pH"> <field name="VAR" id="C$:Ym:z7US6]SXWDn22:">bottomText</field> </block> </value> <value name="Pickable"> <block type="logic_boolean" id="l4GrjIgQ=eD@YB8C`8aj"> <field name="BOOL">TRUE</field> </block> </value> <value name="IncludeChildren"> <block type="logic_boolean" id="Ph5$2`3)b4QVI_RhKv*1"> <field name="BOOL">TRUE</field> </block> </value> <next> <block type="bitbybit.babylon.mesh.setMaterial" id="j6Dj|aAjz48SjZowogSW"> <value name="BabylonMesh"> <block type="variables_get" id="-rgnLpy`]Hq[#-]tM,0~"> <field name="VAR" id="C$:Ym:z7US6]SXWDn22:">bottomText</field> </block> </value> <value name="Material"> <block type="variables_get" id="6TuH3*soe]Mlx.Ntghge"> <field name="VAR" id="L}.s3i)Ek7.f$`sMC`=I">materialNotSelected</field> </block> </value> <value name="IncludeChildren"> <block type="logic_boolean" id="/9)RQVe}k-u-rcu4te)y"> <field name="BOOL">TRUE</field> </block> </value> <next> <block type="procedures_callnoreturn" id="]T1Ivyp5~#Hv2H_|Gue:"> <mutation name="trackPointing"> <arg name="meshesToTrack"> </arg> <arg name="shouldStartTheGame"> </arg> <arg name="shouldReplay"> </arg> <arg name="cleanMeshOnStart"> </arg> </mutation> <value name="ARG0"> <block type="variables_get" id="1wIO90uEiDiI!6o;+Lif"> <field name="VAR" id="C$:Ym:z7US6]SXWDn22:">bottomText</field> </block> </value> <value name="ARG1"> <block type="logic_boolean" id=")bQW@T[qSu-LZA2%wtYe"> <field name="BOOL">FALSE</field> </block> </value> <value name="ARG2"> <block type="logic_boolean" id=":raWl,0)lwO0#d(d9x@n"> <field name="BOOL">TRUE</field> </block> </value> <value name="ARG3"> <block type="variables_get" id="T{]/opt:hVL|u+T|HEb4"> <field name="VAR" id="$SRhVP8-8gc/6!PDkc{P">topText</field> </block> </value> </block> </next> </block> </next> </block> </next> </block> </next> </block> </next> </block> </next> </block> </statement> </block> </next> </block> </next> </block> </next> </block> </statement> </block> <block type="procedures_defnoreturn" id="BA;MA(ANu/RT]e[d,6d*" x="2301" y="5772"> <mutation> <arg name="target1" varid="ozkOPC,(k5MXzTZLW??7"> </arg> <arg name="target2" varid="/EEv2rdkFR(kTY!]$GXF"> </arg> <arg name="emptyListToFill1" varid="HeR{U3@Of3E#?.N|WiIE"> </arg> <arg name="emptyListToFill2" varid="2^RCzk}@44pn$4oKU!h8"> </arg> </mutation> <field name="NAME">putObstaclesInPositions</field> <comment pinned="false" h="80" w="160">Describe this function...</comment> <statement name="STACK"> <block type="controls_for" id="$Zb8(3n?e;D%Y#=2#Fq8"> <field name="VAR" id="w]F3AtioA-ce0PoUY`(,">i</field> <value name="FROM"> <block type="variables_get" id=".-$TgC81h(fwWf*$#s0N"> <field name="VAR" id="8Ksy1pExe?vRrMC0aiPt">widthMin</field> </block> </value> <value name="TO"> <block type="variables_get" id="W79IeHSAa~UVFk.Up^/z"> <field name="VAR" id=".=vhFsvO;q,.9b)-Qz3l">widthMax</field> </block> </value> <value name="BY"> <block type="variables_get" id="dHKF?eKb3IA1wcGL7tS#"> <field name="VAR" id="XV`eXIBD(bu,LazqRwTT">widthStep</field> </block> </value> <statement name="DO"> <block type="controls_for" id="^;1v04b1Vc$1J(z,hG6U"> <field name="VAR" id="~MwI1K$/`cUlVri|vBBF">j</field> <value name="FROM"> <block type="variables_get" id="CerEU!WG5:iM-I;3UeWC"> <field name="VAR" id="yzLz+vt0vD]TZq3U[UfX">lengthMin</field> </block> </value> <value name="TO"> <block type="variables_get" id=".!3IEIKVOY!o(txzCQ#D"> <field name="VAR" id="2B%.f-FHZS.vmE}c/W@O">lengthMax</field> </block> </value> <value name="BY"> <block type="variables_get" id=")#S(!vwY=]jOG~4%0Tx$"> <field name="VAR" id="vjkw9@`MjdDpte=:F*?k">lengthStep</field> </block> </value> <statement name="DO"> <block type="variables_set" id="}pnRS4O|HR(U}vv{s7p+"> <field name="VAR" id="/|EITw%4+pw$GiW+E:=E">targetCopy1</field> <value name="VALUE"> <block type="bitbybit.babylon.mesh.clone" id="9ek9;zcit+T@bwYD#fwM"> <value name="BabylonMesh"> <block type="variables_get" id="yt,zK=g480Z+(hh%@}f4"> <field name="VAR" id="ozkOPC,(k5MXzTZLW??7">target1</field> </block> </value> </block> </value> <next> <block type="variables_set" id="uJ#[TsHHJ~GqeZY+Zw8N"> <field name="VAR" id="Ow^XX8)-OWW5Cwa=r!ck">targetCopy2</field> <value name="VALUE"> <block type="bitbybit.babylon.mesh.createMeshInstance" id="_Nrqb`pST(lj0lL@=g%]"> <value name="Mesh"> <block type="variables_get" id="egk_lX9Jn)(T;].ui]X0"> <field name="VAR" id="/EEv2rdkFR(kTY!]$GXF">target2</field> </block> </value> </block> </value> <next> <block type="bitbybit.babylon.mesh.setPickable" id="975sAytL0uXF6n.7?Uf{"> <value name="BabylonMesh"> <block type="variables_get" id="A]Uw.nvqmFF%S6*?%B9O"> <field name="VAR" id="Ow^XX8)-OWW5Cwa=r!ck">targetCopy2</field> </block> </value> <value name="Pickable"> <block type="logic_boolean" id="GmJkEQ-Ub.feH$EvMh:#"> <field name="BOOL">FALSE</field> </block> </value> <next> <block type="bitbybit.babylon.mesh.setPickable" id="t!)CwWtv=kedPvSz86;2"> <value name="BabylonMesh"> <block type="variables_get" id="rdM#=Cm53/=?wFIBD*`,"> <field name="VAR" id="Ow^XX8)-OWW5Cwa=r!ck">targetCopy2</field> </block> </value> <value name="Pickable"> <block type="logic_boolean" id="H(PE;iiT+osF-+j7ID$7"> <field name="BOOL">FALSE</field> </block> </value> <value name="IncludeChildren"> <block type="logic_boolean" id="o{%nP;X.o51@TV}1R2T-"> <field name="BOOL">TRUE</field> </block> </value> <next> <block type="variables_set" id="c|,e/G_?SI+J~{i}n.ih"> <field name="VAR" id="9yYuO^L^=eDN@I{PX._i">size</field> <value name="VALUE"> <block type="math_number" id="+b:4L@ApRj+l@CwGI!Qd"> <field name="NUM">5</field> </block> </value> <next> <block type="bitbybit.babylon.mesh.setScale" id="[=2|,v~`00.Dr.B^,4W$"> <value name="BabylonMesh"> <block type="variables_get" id="j;Xq1i]Vfw$tqs~9{/=("> <field name="VAR" id="/|EITw%4+pw$GiW+E:=E">targetCopy1</field> </block> </value> <value name="Scale"> <block type="bitbybit.point.pointXYZ" id="?uI-/u|Cd*}vZZC-Pq[}"> <value name="X"> <block type="variables_get" id="KR,/[U-KoyQ99K`0zFqb"> <field name="VAR" id="9yYuO^L^=eDN@I{PX._i">size</field> </block> </value> <value name="Y"> <block type="variables_get" id="ag#x!F*DN,i#!4k94U{h"> <field name="VAR" id="9yYuO^L^=eDN@I{PX._i">size</field> </block> </value> <value name="Z"> <block type="variables_get" id="m.1WIPXSFNvNKH-,zb1["> <field name="VAR" id="9yYuO^L^=eDN@I{PX._i">size</field> </block> </value> </block> </value> <next> <block type="bitbybit.babylon.mesh.setScale" id="Y~1Rt/Su}Oq-n_y)Q+B8"> <value name="BabylonMesh"> <block type="variables_get" id="YDfXb6u*Q4p^oh`s^bQ!"> <field name="VAR" id="Ow^XX8)-OWW5Cwa=r!ck">targetCopy2</field> </block> </value> <value name="Scale"> <block type="bitbybit.point.pointXYZ" id=";A01-lGPRumw.]d81h|f"> <value name="X"> <block type="variables_get" id=",#?3MhSN$F.pL.|kkQG9"> <field name="VAR" id="9yYuO^L^=eDN@I{PX._i">size</field> </block> </value> <value name="Y"> <block type="variables_get" id="`5BPULI7S{NM=Fq#HW43"> <field name="VAR" id="9yYuO^L^=eDN@I{PX._i">size</field> </block> </value> <value name="Z"> <block type="variables_get" id="[@%z,?!,X~?J=FycloN;"> <field name="VAR" id="9yYuO^L^=eDN@I{PX._i">size</field> </block> </value> </block> </value> <next> <block type="variables_set" id="t1+GcefbGfgW-*-XuQFo"> <field name="VAR" id="M!3Bv!gbzYfWb$DnG;UC">xRand</field> <value name="VALUE"> <block type="math_arithmetic" id="$7/k8/%|v^`^W%JQDVV|"> <field name="OP">ADD</field> <value name="A"> <block type="variables_get" id="V8@KC~GO3kw^FriW{*:_"> <field name="VAR" id="w]F3AtioA-ce0PoUY`(,">i</field> </block> </value> <value name="B"> <block type="math_arithmetic" id="63[{I{%DPf#L=OsM`g)c"> <field name="OP">MULTIPLY</field> <value name="A"> <block type="math_number" id="Cwa@?,;Ec4[FHG).nl$f"> <field name="NUM">50</field> </block> </value> <value name="B"> <block type="bitbybit.math.random" id="-^O}9k[]+m1Z9YPT{-EJ"> </block> </value> </block> </value> </block> </value> <next> <block type="variables_set" id="=!c[zABDKTmi/3|V?(B)"> <field name="VAR" id="Y1LKza4Qbw=?;i{Zju$7">yRand</field> <value name="VALUE"> <block type="math_arithmetic" id="hrBc9L?~|YoDudR))lb="> <field name="OP">MULTIPLY</field> <value name="A"> <block type="variables_get" id="9H*?M|q[((46$fW8N+Q!"> <field name="VAR" id="e[h3;!Y]$kwKjO8#sF(_">height</field> </block> </value> <value name="B"> <block type="bitbybit.math.random" id="uzfTmK^;M441b?24n]5^"> </block> </value> </block> </value> <next> <block type="variables_set" id="m(9xKwmC$^#5|bzUj]7u"> <field name="VAR" id="w6!3dz$x.{owirB$Ucl_">zRand</field> <value name="VALUE"> <block type="math_arithmetic" id=";JV]wk-VI=e4u1x_s(H("> <field name="OP">ADD</field> <value name="A"> <block type="variables_get" id="`[f{RbCcbp=AfZ_G}(:?"> <field name="VAR" id="~MwI1K$/`cUlVri|vBBF">j</field> </block> </value> <value name="B"> <block type="math_arithmetic" id="ie{kmkD!-He}|?^T_13c"> <field name="OP">MULTIPLY</field> <value name="A"> <block type="math_number" id="h:1|In,|Bl|jH`cDh!Lp"> <field name="NUM">28</field> </block> </value> <value name="B"> <block type="bitbybit.math.random" id="NFmmN)2NPu~@ns9fx4=$"> </block> </value> </block> </value> </block> </value> <next> <block type="bitbybit.babylon.mesh.setPosition" id="UeU%]F!52cl3}3*,(m,w"> <value name="BabylonMesh"> <block type="variables_get" id="/sv5]Ql*1F{uWU]x-WI+"> <field name="VAR" id="/|EITw%4+pw$GiW+E:=E">targetCopy1</field> </block> </value> <value name="Position"> <block type="bitbybit.point.pointXYZ" id="dwq.v@*b7^w|+,TL2si!"> <value name="X"> <block type="variables_get" id=",Ubf/W6qxeoAj(GIZ9!Q"> <field name="VAR" id="M!3Bv!gbzYfWb$DnG;UC">xRand</field> </block> </value> <value name="Y"> <block type="variables_get" id="{hP9QgNmab{HH45AX#GY"> <field name="VAR" id="Y1LKza4Qbw=?;i{Zju$7">yRand</field> </block> </value> <value name="Z"> <block type="variables_get" id="A6tr.1M{71~SU=mkZYM%"> <field name="VAR" id="w6!3dz$x.{owirB$Ucl_">zRand</field> </block> </value> </block> </value> <next> <block type="bitbybit.babylon.mesh.setPosition" id="J1rx,1kh|.=Wodl1_e{i"> <value name="BabylonMesh"> <block type="variables_get" id="hdoSj{V~vx7(:k#H`?Lm"> <field name="VAR" id="Ow^XX8)-OWW5Cwa=r!ck">targetCopy2</field> </block> </value> <value name="Position"> <block type="bitbybit.point.pointXYZ" id="]gUTe{Zpx55cj]4n3Cw)"> <value name="X"> <block type="variables_get" id="13WW2b+=3Fh5kMyQUNc{"> <field name="VAR" id="M!3Bv!gbzYfWb$DnG;UC">xRand</field> </block> </value> <value name="Y"> <block type="variables_get" id=",i0+k~SX[c]Gkx}iNhcw"> <field name="VAR" id="Y1LKza4Qbw=?;i{Zju$7">yRand</field> </block> </value> <value name="Z"> <block type="variables_get" id="t)#1XfKZ^!kL2!3aU-0u"> <field name="VAR" id="w6!3dz$x.{owirB$Ucl_">zRand</field> </block> </value> </block> </value> <next> <block type="lists_setIndex" id="~LiSkxH%506Mpnj82#8h"> <mutation at="false"> </mutation> <field name="MODE">INSERT</field> <field name="WHERE">LAST</field> <value name="LIST"> <block type="variables_get" id="OnP*dSXCBHYtJn|g96eU"> <field name="VAR" id="HeR{U3@Of3E#?.N|WiIE">emptyListToFill1</field> </block> </value> <value name="TO"> <block type="variables_get" id=":ZY;MTdl03]g(vC/V@:3"> <field name="VAR" id="/|EITw%4+pw$GiW+E:=E">targetCopy1</field> </block> </value> <next> <block type="lists_setIndex" id="oS*E;;J]^]C5kB)W%OuJ"> <mutation at="false"> </mutation> <field name="MODE">INSERT</field> <field name="WHERE">LAST</field> <value name="LIST"> <block type="variables_get" id="#=V2]rdViLD*o|/NS;$6"> <field name="VAR" id="2^RCzk}@44pn$4oKU!h8">emptyListToFill2</field> </block> </value> <value name="TO"> <block type="variables_get" id="hpc)ce9jiMSm0qW@1Qri"> <field name="VAR" id="Ow^XX8)-OWW5Cwa=r!ck">targetCopy2</field> </block> </value> </block> </next> </block> </next> </block> </next> </block> </next> </block> </next> </block> </next> </block> </next> </block> </next> </block> </next> </block> </next> </block> </next> </block> </next> </block> </next> </block> </statement> </block> </statement> </block> </statement> </block> <block type="procedures_defnoreturn" id="~QSp,tEV)]D#zg.#xx}f" x="3016" y="5768"> <mutation> <arg name="targetList" varid="x,o(L}:en7~l`]VkNwJj"> </arg> <arg name="restoreHit" varid=",NW+u:QXvv0ko/N8gwBk"> </arg> </mutation> <field name="NAME">controlForwardMovement</field> <comment pinned="false" h="80" w="160">Describe this function...</comment> <statement name="STACK"> <block type="controls_forEach" id="842N!8hc~-?YPzD/Y(0F"> <field name="VAR" id="Sl/Sh}i.V2l`]!ci5At@">k</field> <value name="LIST"> <block type="variables_get" id="Ib5r}g,u!/cv.am3/iVS"> <field name="VAR" id="x,o(L}:en7~l`]VkNwJj">targetList</field> </block> </value> <statement name="DO"> <block type="bitbybit.babylon.mesh.moveForward" id="(npd2kAdrBNhh{bf$6h~"> <value name="BabylonMesh"> <block type="variables_get" id="9V/B9Kb/=gRrvm=g(5[w"> <field name="VAR" id="Sl/Sh}i.V2l`]!ci5At@">k</field> </block> </value> <value name="Distance"> <block type="math_single" id=")wn3TMyyR;2eFcnj)de+"> <field name="OP">NEG</field> <value name="NUM"> <block type="variables_get" id="JIQKMOJl5HMW7$U`(~{g"> <field name="VAR" id="QQtWB.!bf|/Xj9,jPJ#+">speed</field> </block> </value> </block> </value> <next> <block type="variables_set" id="4=ISja]TyG(.;;pS4R]6"> <field name="VAR" id="$=~^tUkWXeKr,;u)TkB}">bubbleScale</field> <value name="VALUE"> <block type="lists_getIndex" id="VGO(0A|]=C,Q8$6lmY0;"> <mutation statement="false" at="false"> </mutation> <field name="MODE">GET</field> <field name="WHERE">FIRST</field> <value name="VALUE"> <block type="bitbybit.babylon.mesh.getScale" id="jT|D#dgawZ6iY47ZC-oO"> <value name="BabylonMesh"> <block type="variables_get" id="Ww_kxe]j|6:{PfWR=$|w"> <field name="VAR" id="Sl/Sh}i.V2l`]!ci5At@">k</field> </block> </value> </block> </value> </block> </value> <next> <block type="variables_set" id="3:zRCc=@uJW#J26:xzqO"> <field name="VAR" id="^0%.LXEQTuQf9^a1X[@7">position</field> <value name="VALUE"> <block type="bitbybit.babylon.mesh.getPosition" id="Fn@ddfefB*qryG:EW*SD"> <value name="BabylonMesh"> <block type="variables_get" id="{}3jo]~4!wZk5t#~7Y?M"> <field name="VAR" id="Sl/Sh}i.V2l`]!ci5At@">k</field> </block> </value> </block> </value> <next> <block type="variables_set" id="E7N9b-tDRCIh4p[bz1GI"> <field name="VAR" id="TX@@oa.EcQQv=/a/ylAv">zCoord</field> <value name="VALUE"> <block type="bitbybit.point.getZ" id="7c=*F5lQ@4v7$N7m8|5/"> <value name="Point"> <block type="variables_get" id=",[N7;=9s$PKU[p1tN2(C"> <field name="VAR" id="^0%.LXEQTuQf9^a1X[@7">position</field> </block> </value> </block> </value> <next> <block type="controls_if" id="GnlARwVV@#{$Yf}Ae=AT"> <value name="IF0"> <block type="logic_operation" id="0t*W}6qWeB}9wq=)1rR*"> <field name="OP">AND</field> <value name="A"> <block type="logic_compare" id="Wq3iW+0(p(#kT3M45iJ$"> <field name="OP">LT</field> <value name="A"> <block type="variables_get" id="Pk+9$KcggQ!Whgf-M0a7"> <field name="VAR" id="$=~^tUkWXeKr,;u)TkB}">bubbleScale</field> </block> </value> <value name="B"> <block type="math_number" id="}ZEF.lE}A3xJL!O:=]kn"> <field name="NUM">5</field> </block> </value> </block> </value> <value name="B"> <block type="logic_compare" id="eb(ejnWOfw8k{~5qHS**"> <field name="OP">GT</field> <value name="A"> <block type="variables_get" id="ru9_%YG{$Zu);)VfJwoT"> <field name="VAR" id="TX@@oa.EcQQv=/a/ylAv">zCoord</field> </block> </value> <value name="B"> <block type="math_number" id="J}@Xf{u86S2.$sxCWDJW"> <field name="NUM">35</field> </block> </value> </block> </value> </block> </value> <statement name="DO0"> <block type="math_change" id="Rw?X]$,C)YnxQJWP.MS8"> <field name="VAR" id="$=~^tUkWXeKr,;u)TkB}">bubbleScale</field> <value name="DELTA"> <shadow type="math_number" id="l1n^hfPNh_=xFIVw*#0e"> <field name="NUM">0.2</field> </shadow> </value> <next> <block type="bitbybit.babylon.mesh.setScale" id="cuME_yuq*4_,j^,A[Qk:"> <value name="BabylonMesh"> <block type="variables_get" id="QgbKSSlS:,t]8:lkl~iD"> <field name="VAR" id="Sl/Sh}i.V2l`]!ci5At@">k</field> </block> </value> <value name="Scale"> <block type="bitbybit.point.pointXYZ" id="(Tke1;Mbgf@XO%Od.UfK"> <value name="X"> <block type="variables_get" id="^6X4lXZ9gVLa-a^2:Ty?"> <field name="VAR" id="$=~^tUkWXeKr,;u)TkB}">bubbleScale</field> </block> </value> <value name="Y"> <block type="variables_get" id="DMX~vR|J_.#[-cW#L$1A"> <field name="VAR" id="$=~^tUkWXeKr,;u)TkB}">bubbleScale</field> </block> </value> <value name="Z"> <block type="variables_get" id="%^Es|`b6~6Hm{.`~rt#["> <field name="VAR" id="$=~^tUkWXeKr,;u)TkB}">bubbleScale</field> </block> </value> </block> </value> </block> </next> </block> </statement> <next> <block type="controls_if" id="k=1ZTl~wPQmG.zB*{h]7"> <value name="IF0"> <block type="logic_compare" id="^a13;GsGg.mTKE:%(x+f"> <field name="OP">LT</field> <value name="A"> <block type="variables_get" id="?hUG8qUk=?HX2vT#|E??"> <field name="VAR" id="TX@@oa.EcQQv=/a/ylAv">zCoord</field> </block> </value> <value name="B"> <block type="math_number" id="fPkz!?8F`ge$XMl*U[9n"> <field name="NUM">25</field> </block> </value> </block> </value> <statement name="DO0"> <block type="bitbybit.babylon.mesh.show" id="6dUC+HRss+1(LMZt8Wb4"> <value name="BabylonMesh"> <block type="variables_get" id="JK+%,jN${Xi~{D~O,r^k"> <field name="VAR" id="Sl/Sh}i.V2l`]!ci5At@">k</field> </block> </value> <next> <block type="bitbybit.babylon.mesh.setPosition" id="K3*-w?.|/5qEWzORpZKI"> <value name="BabylonMesh"> <block type="variables_get" id="@9`Ev5$Y9ZdQeTtwz@;1"> <field name="VAR" id="Sl/Sh}i.V2l`]!ci5At@">k</field> </block> </value> <value name="Position"> <block type="bitbybit.point.pointXYZ" id="u]5za;BM)tAP[H]A5x;_"> <value name="X"> <block type="bitbybit.point.getX" id="9eyJN+eZ_ALZ_+E[Vx5s"> <value name="Point"> <block type="variables_get" id="nrM(zlv`e^a+=wYEpHm~"> <field name="VAR" id="^0%.LXEQTuQf9^a1X[@7">position</field> </block> </value> </block> </value> <value name="Y"> <block type="bitbybit.point.getY" id="3Yefh{%6$q:e4k)jxWZ2"> <value name="Point"> <block type="variables_get" id="W%$lu,^Q_e@hcRz-=o)9"> <field name="VAR" id="^0%.LXEQTuQf9^a1X[@7">position</field> </block> </value> </block> </value> <value name="Z"> <block type="math_number" id="[?gQz(pFD@09Li^RZ9$."> <field name="NUM">350</field> </block> </value> </block> </value> <next> <block type="variables_set" id="LhX^3G{*]tbDb.(gkvG/"> <field name="VAR" id="$=~^tUkWXeKr,;u)TkB}">bubbleScale</field> <value name="VALUE"> <block type="math_number" id="*DM8J?Dw_8TnyMgtL}qV"> <field name="NUM">0.1</field> </block> </value> <next> <block type="bitbybit.babylon.mesh.setScale" id="X/7_t%zoAZd,)vs88ab9"> <value name="BabylonMesh"> <block type="variables_get" id="oE*#o]a94jEPDMs?Zlo["> <field name="VAR" id="Sl/Sh}i.V2l`]!ci5At@">k</field> </block> </value> <value name="Scale"> <block type="bitbybit.point.pointXYZ" id="dn7nO-)NWfN/[bwIlXG`"> <value name="X"> <block type="variables_get" id="mI8Jv[-o07+])HmidT3+"> <field name="VAR" id="$=~^tUkWXeKr,;u)TkB}">bubbleScale</field> </block> </value> <value name="Y"> <block type="variables_get" id="Ws-b7{{hZ7JJkV9)[D)5"> <field name="VAR" id="$=~^tUkWXeKr,;u)TkB}">bubbleScale</field> </block> </value> <value name="Z"> <block type="variables_get" id="$w}fMUx!zE;ct~ZykGh`"> <field name="VAR" id="$=~^tUkWXeKr,;u)TkB}">bubbleScale</field> </block> </value> </block> </value> <next> <block type="controls_if" id=";#R..u7y_`UnU?ISr_|("> <value name="IF0"> <block type="variables_get" id="Q?0OR!LLjH~/f;*b4|jz"> <field name="VAR" id=",NW+u:QXvv0ko/N8gwBk">restoreHit</field> </block> </value> <statement name="DO0"> <block type="bitbybit.babylon.mesh.show" id=".kI]YgQ(`tQe=5J+ZD`Y"> <value name="BabylonMesh"> <block type="variables_get" id="mI6xp=n827]-kV=}#8OY"> <field name="VAR" id="Sl/Sh}i.V2l`]!ci5At@">k</field> </block> </value> <next> <block type="bitbybit.babylon.mesh.setPickable" id="|UkPS;DJsk:`z}qqnOzN"> <value name="BabylonMesh"> <block type="variables_get" id="n0a]!:`T}FC`a%XOsw%)"> <field name="VAR" id="Sl/Sh}i.V2l`]!ci5At@">k</field> </block> </value> <value name="Pickable"> <block type="logic_boolean" id="pQ|$?DgP)dSR!Yq*dV_="> <field name="BOOL">TRUE</field> </block> </value> </block> </next> </block> </statement> </block> </next> </block> </next> </block> </next> </block> </next> </block> </statement> <next> <block type="controls_if" id="OC+?p8DR+,9K@TJBU{vF"> <value name="IF0"> <block type="logic_operation" id="b5On`wSwWJuCcgd]d!C="> <field name="OP">AND</field> <value name="A"> <block type="logic_compare" id="!rM//Aw2?^Zfe3`eFNS!"> <field name="OP">GT</field> <value name="A"> <block type="variables_get" id=":#CTaO^}*PVuRvz[L.%u"> <field name="VAR" id="$=~^tUkWXeKr,;u)TkB}">bubbleScale</field> </block> </value> <value name="B"> <block type="math_number" id="TQ/,Jk/R%5|dO7$C^69v"> <field name="NUM">0.1</field> </block> </value> </block> </value> <value name="B"> <block type="logic_compare" id="2pMOl1jrAu=+35z-eKzX"> <field name="OP">LT</field> <value name="A"> <block type="variables_get" id="WyqrA~oO]gwgdn.2d~h("> <field name="VAR" id="TX@@oa.EcQQv=/a/ylAv">zCoord</field> </block> </value> <value name="B"> <block type="math_number" id="Um!z|nf#dc8pp5xx@B71"> <field name="NUM">35</field> </block> </value> </block> </value> </block> </value> <statement name="DO0"> <block type="math_change" id="XK97R`qxfE3[]4~A,jDi"> <field name="VAR" id="$=~^tUkWXeKr,;u)TkB}">bubbleScale</field> <value name="DELTA"> <shadow type="math_number" id="*%.PB!^Gg0}i8D;F7#Z-"> <field name="NUM">-0.1</field> </shadow> </value> <next> <block type="bitbybit.babylon.mesh.setScale" id="R9?a#jSj#82K[MPbd9*L"> <value name="BabylonMesh"> <block type="variables_get" id="ilz|1.{%AO=GBLs?4L6u"> <field name="VAR" id="Sl/Sh}i.V2l`]!ci5At@">k</field> </block> </value> <value name="Scale"> <block type="bitbybit.point.pointXYZ" id="5X9ob@bvnR59Y2=%?Kg~"> <value name="X"> <block type="variables_get" id="BjI(f`?6Y:;(RMxZtLp9"> <field name="VAR" id="$=~^tUkWXeKr,;u)TkB}">bubbleScale</field> </block> </value> <value name="Y"> <block type="variables_get" id="tu$}9fCmt,ezQeduB%PE"> <field name="VAR" id="$=~^tUkWXeKr,;u)TkB}">bubbleScale</field> </block> </value> <value name="Z"> <block type="variables_get" id="j!L2uZLU[jcXm$*c?3Ef"> <field name="VAR" id="$=~^tUkWXeKr,;u)TkB}">bubbleScale</field> </block> </value> </block> </value> </block> </next> </block> </statement> </block> </next> </block> </next> </block> </next> </block> </next> </block> </next> </block> </next> </block> </statement> </block> </statement> </block> <block type="procedures_defnoreturn" id="vVGoi%jvAs_;O|=V{#8/" x="3831" y="5767"> <mutation> <arg name="meshesToMove" varid="$XN?nkp3eG*qvi`6ebC+"> </arg> </mutation> <field name="NAME">controlObstacleMovement</field> <comment pinned="false" h="80" w="160">Describe this function...</comment> <statement name="STACK"> <block type="controls_if" id="3~NB#FJ@nUD8Uy5B9VO4"> <value name="IF0"> <block type="logic_operation" id="Uve|?*Mzv)aMLQ}q^%;3"> <field name="OP">OR</field> <value name="A"> <block type="base_time_event_is_key_pressed" id="8=E4P{!1?sKkg%xD3=g$"> <value name="KeyType"> <block type="base_time_events_key_types" id="sw=e5xs/9]v|4hq(tj(!"> <field name="KeyType">'s'</field> </block> </value> </block> </value> <value name="B"> <block type="base_time_event_is_key_pressed" id="d;rjC4!CMn2Dju^g`pn3"> <value name="KeyType"> <block type="base_time_events_key_types" id="#VLyd_d($%Jtu+@bpL_t"> <field name="KeyType">'ArrowDown'</field> </block> </value> </block> </value> </block> </value> <statement name="DO0"> <block type="controls_forEach" id="ouuJH%%_S-[S_=ns?bJ#"> <field name="VAR" id="Sl/Sh}i.V2l`]!ci5At@">k</field> <value name="LIST"> <block type="variables_get" id="%dV1FfBBMn;_=dmOw[zi"> <field name="VAR" id="$XN?nkp3eG*qvi`6ebC+">meshesToMove</field> </block> </value> <statement name="DO"> <block type="bitbybit.babylon.mesh.moveUp" id=":XB0[_rxf#|-6%.Xq2|N"> <value name="BabylonMesh"> <block type="variables_get" id="[v|QJ-o6C~hAXQrveZEP"> <field name="VAR" id="Sl/Sh}i.V2l`]!ci5At@">k</field> </block> </value> <value name="Distance"> <block type="variables_get" id="$$h#58fgH~+#fbV1-_79"> <field name="VAR" id="QQtWB.!bf|/Xj9,jPJ#+">speed</field> </block> </value> </block> </statement> </block> </statement> <next> <block type="controls_if" id="y^mpp1nsH4+cJJYKd?L/"> <value name="IF0"> <block type="logic_operation" id="d5|aqDV^pJcF/r)yv,4V"> <field name="OP">OR</field> <value name="A"> <block type="base_time_event_is_key_pressed" id="vpq#+q%SeWY2z%)|4!#`"> <value name="KeyType"> <block type="base_time_events_key_types" id="u]BfY4lD80!*xWMd)0On"> <field name="KeyType">'w'</field> </block> </value> </block> </value> <value name="B"> <block type="base_time_event_is_key_pressed" id="^`g^uhm~1S^n?Rkepo?J"> <value name="KeyType"> <block type="base_time_events_key_types" id="a}MBALo)z7KD%JOhgoMe"> <field name="KeyType">'ArrowUp'</field> </block> </value> </block> </value> </block> </value> <statement name="DO0"> <block type="controls_forEach" id="}G?N]^E!w7!?LK_SG7~E"> <field name="VAR" id="Sl/Sh}i.V2l`]!ci5At@">k</field> <value name="LIST"> <block type="variables_get" id="oBs({j[5YMp!kWiHB-T,"> <field name="VAR" id="$XN?nkp3eG*qvi`6ebC+">meshesToMove</field> </block> </value> <statement name="DO"> <block type="bitbybit.babylon.mesh.moveDown" id="8vn4{!2]nFU1`5ovUU/w"> <value name="BabylonMesh"> <block type="variables_get" id="w+O*O(eG/FDoR]4jJ-^A"> <field name="VAR" id="Sl/Sh}i.V2l`]!ci5At@">k</field> </block> </value> <value name="Distance"> <block type="variables_get" id="fkqO8_a2mfc.JbP;ti~K"> <field name="VAR" id="QQtWB.!bf|/Xj9,jPJ#+">speed</field> </block> </value> </block> </statement> </block> </statement> <next> <block type="controls_if" id="BU~_cm|k{!Zr30%SNu]i"> <value name="IF0"> <block type="logic_operation" id="%:z|p*,kR:O5u-)y{j#`"> <field name="OP">OR</field> <value name="A"> <block type="base_time_event_is_key_pressed" id="U[8{ZaW?|g7oiio]5/8R"> <value name="KeyType"> <block type="base_time_events_key_types" id="!;k5yoav#^q%zM!M#Phh"> <field name="KeyType">'a'</field> </block> </value> </block> </value> <value name="B"> <block type="base_time_event_is_key_pressed" id="DCIT|0Y_V(=QXxhoK`O^"> <value name="KeyType"> <block type="base_time_events_key_types" id="}YIOnH~rzf+fp(~iDo,;"> <field name="KeyType">'ArrowLeft'</field> </block> </value> </block> </value> </block> </value> <statement name="DO0"> <block type="controls_forEach" id="{aZ2Acid!N|AqQNTye}:"> <field name="VAR" id="Sl/Sh}i.V2l`]!ci5At@">k</field> <value name="LIST"> <block type="variables_get" id="KaL-f(;5H(=m(6zV={y6"> <field name="VAR" id="$XN?nkp3eG*qvi`6ebC+">meshesToMove</field> </block> </value> <statement name="DO"> <block type="bitbybit.babylon.mesh.moveRight" id="aPrN83}Vp%JsS7Q95UVF"> <value name="BabylonMesh"> <block type="variables_get" id="_`i!)-L8d$[6NJ^`PuG*"> <field name="VAR" id="Sl/Sh}i.V2l`]!ci5At@">k</field> </block> </value> <value name="Distance"> <block type="variables_get" id="`YO1A/%C(M?%Jsq,d~_J"> <field name="VAR" id="QQtWB.!bf|/Xj9,jPJ#+">speed</field> </block> </value> </block> </statement> </block> </statement> <next> <block type="controls_if" id="=J[,Mh0N#(PnanhOz[BT"> <value name="IF0"> <block type="logic_operation" id="6asMDhuZPyn]D/:0U(I,"> <field name="OP">OR</field> <value name="A"> <block type="base_time_event_is_key_pressed" id="#5.c6lXRw|v+(%$,cPIw"> <value name="KeyType"> <block type="base_time_events_key_types" id="~gyrm22R+~GMH2~a|;t|"> <field name="KeyType">'d'</field> </block> </value> </block> </value> <value name="B"> <block type="base_time_event_is_key_pressed" id="A`GEi@tkPN@+^{h:;52L"> <value name="KeyType"> <block type="base_time_events_key_types" id="0h=8Pow-r$G#+UCLYh+4"> <field name="KeyType">'ArrowRight'</field> </block> </value> </block> </value> </block> </value> <statement name="DO0"> <block type="controls_forEach" id="q{rsAh+^GBwD5nP#Kmi}"> <field name="VAR" id="Sl/Sh}i.V2l`]!ci5At@">k</field> <value name="LIST"> <block type="variables_get" id="LD{JpT_D9TjP6O0XQ^#q"> <field name="VAR" id="$XN?nkp3eG*qvi`6ebC+">meshesToMove</field> </block> </value> <statement name="DO"> <block type="bitbybit.babylon.mesh.moveLeft" id="P:C~X3IYCzdLQaL?yF5:"> <value name="BabylonMesh"> <block type="variables_get" id="lV.=,NutnObX?pe67PXc"> <field name="VAR" id="Sl/Sh}i.V2l`]!ci5At@">k</field> </block> </value> <value name="Distance"> <block type="variables_get" id="]$raq~J3(Sz-n|WwJCJ5"> <field name="VAR" id="QQtWB.!bf|/Xj9,jPJ#+">speed</field> </block> </value> </block> </statement> </block> </statement> </block> </next> </block> </next> </block> </next> </block> </statement> </block> <block type="procedures_defnoreturn" id="k#H+85Sn]_mo,I,6dlaU" x="4570" y="5767"> <mutation> <arg name="plane" varid=")OGJ%%9UXX/|XR6_1]h`"> </arg> </mutation> <field name="NAME">controlPlaneRotations</field> <comment pinned="false" h="80" w="160">Describe this function...</comment> <statement name="STACK"> <block type="controls_if" id=";son*eAN}R:@m_Y9Ne9d"> <mutation else="1"> </mutation> <value name="IF0"> <block type="logic_operation" id="/`u58U6;p}},E2:I@t4d"> <field name="OP">OR</field> <value name="A"> <block type="base_time_event_is_key_pressed" id="U!#=..0acv`L4mNKF/T6"> <value name="KeyType"> <block type="base_time_events_key_types" id="2e-F3NDaAd$dRr~4*S}p"> <field name="KeyType">'s'</field> </block> </value> </block> </value> <value name="B"> <block type="base_time_event_is_key_pressed" id="{GD,0oNqjG:Ah_w_e}7["> <value name="KeyType"> <block type="base_time_events_key_types" id="VLdskD{|Lb0dKh/mhCw,"> <field name="KeyType">'ArrowDown'</field> </block> </value> </block> </value> </block> </value> <statement name="DO0"> <block type="controls_if" id="ywaUmw0xO@.V#594yv`;"> <value name="IF0"> <block type="logic_compare" id="$a3_aVz+6Inc|nSnzY8$"> <field name="OP">LT</field> <value name="A"> <block type="variables_get" id="H)$CbxMJIB.Q[A`-Agr)"> <field name="VAR" id="Q`UnZN[AiZpg%1(P%F[7">xRotation</field> </block> </value> <value name="B"> <block type="math_number" id="L2-B6IkF%i3[NYHcrKhc"> <field name="NUM">45</field> </block> </value> </block> </value> <statement name="DO0"> <block type="math_change" id="(3:M`8`3)|zowkQ=YEYb"> <field name="VAR" id="Q`UnZN[AiZpg%1(P%F[7">xRotation</field> <value name="DELTA"> <shadow type="math_number" id="dQQ9?10!I{:w:/fkH@}m"> <field name="NUM">0.5</field> </shadow> <block type="variables_get" id="33#,Vt{2hn8*sJ-mtW+~"> <field name="VAR" id="Gn+k:ablb+I@(!A@r~[u">rotationSpeed</field> </block> </value> </block> </statement> </block> </statement> <statement name="ELSE"> <block type="controls_if" id="AK,l/pqq!_OaqtpgGV]A"> <value name="IF0"> <block type="logic_compare" id="!)birR:V(^T[^^?},q{V"> <field name="OP">GT</field> <value name="A"> <block type="variables_get" id="vLVLyElNk{o@7n8J5D?`"> <field name="VAR" id="Q`UnZN[AiZpg%1(P%F[7">xRotation</field> </block> </value> <value name="B"> <block type="math_number" id="l^8c,0qC~)czd5=Rc[L."> <field name="NUM">0</field> </block> </value> </block> </value> <statement name="DO0"> <block type="math_change" id="Bhs9{Ilpdoz)`{OO^@yx"> <field name="VAR" id="Q`UnZN[AiZpg%1(P%F[7">xRotation</field> <value name="DELTA"> <shadow type="math_number" id="L%.(1/B1;Vic|gp|m1K3"> <field name="NUM">-0.5</field> </shadow> <block type="math_single" id="7+oj/Fst(.rnH#N|Gu9_"> <field name="OP">NEG</field> <value name="NUM"> <block type="variables_get" id="*)Bn.V}*]N83t8LaThC8"> <field name="VAR" id="Gn+k:ablb+I@(!A@r~[u">rotationSpeed</field> </block> </value> </block> </value> </block> </statement> </block> </statement> <next> <block type="controls_if" id="5EA@kHs^J.f]3Jo=c+Ay"> <mutation else="1"> </mutation> <value name="IF0"> <block type="logic_operation" id=".PfACQU$Dcw,LkN*%i_n"> <field name="OP">OR</field> <value name="A"> <block type="base_time_event_is_key_pressed" id="@YUlLls*|v[q.c4`)-d#"> <value name="KeyType"> <block type="base_time_events_key_types" id="4=qZGhXs(vtPIUNeHy;,"> <field name="KeyType">'w'</field> </block> </value> </block> </value> <value name="B"> <block type="base_time_event_is_key_pressed" id="k6?INFc.XbS?+#I@m.QL"> <value name="KeyType"> <block type="base_time_events_key_types" id="/]$o8%IJCFdL|E|2XMnr"> <field name="KeyType">'ArrowUp'</field> </block> </value> </block> </value> </block> </value> <statement name="DO0"> <block type="controls_if" id="t65n.vfBe49D$*)FboF:"> <value name="IF0"> <block type="logic_compare" id="aXTd^Di=c_gi)So7R%|%"> <field name="OP">GT</field> <value name="A"> <block type="variables_get" id="1op$KrVX;+NtH]OMVdG."> <field name="VAR" id="Q`UnZN[AiZpg%1(P%F[7">xRotation</field> </block> </value> <value name="B"> <block type="math_number" id="-0|8C_ITv[vFaYCWTF=Y"> <field name="NUM">-45</field> </block> </value> </block> </value> <statement name="DO0"> <block type="math_change" id="boD/$+}klJ#qp6~5@(~V"> <field name="VAR" id="Q`UnZN[AiZpg%1(P%F[7">xRotation</field> <value name="DELTA"> <shadow type="math_number" id="dQQ9?10!I{:w:/fkH@}m"> <field name="NUM">0.5</field> </shadow> <block type="math_single" id="w4Syu-@A~WQBEe34dYj6"> <field name="OP">NEG</field> <value name="NUM"> <block type="variables_get" id="R}bW_U#!|_H,[0/ciO?w"> <field name="VAR" id="Gn+k:ablb+I@(!A@r~[u">rotationSpeed</field> </block> </value> </block> </value> </block> </statement> </block> </statement> <statement name="ELSE"> <block type="controls_if" id="O^wt6B)8IJUvPy8]7-4J"> <value name="IF0"> <block type="logic_compare" id="VsA~ftCJXzz)/Y^DJv.R"> <field name="OP">LT</field> <value name="A"> <block type="variables_get" id="YCwZi}N5ca!.fWnUODnj"> <field name="VAR" id="Q`UnZN[AiZpg%1(P%F[7">xRotation</field> </block> </value> <value name="B"> <block type="math_number" id="P:Sl__|]a,b1/6X4]x9b"> <field name="NUM">0</field> </block> </value> </block> </value> <statement name="DO0"> <block type="math_change" id="h(zsyxZq/AGttKSWB~cO"> <field name="VAR" id="Q`UnZN[AiZpg%1(P%F[7">xRotation</field> <value name="DELTA"> <shadow type="math_number" id="dQQ9?10!I{:w:/fkH@}m"> <field name="NUM">0.5</field> </shadow> <block type="variables_get" id=":om:,HJQT)y*9G*qk|:}"> <field name="VAR" id="Gn+k:ablb+I@(!A@r~[u">rotationSpeed</field> </block> </value> </block> </statement> </block> </statement> <next> <block type="controls_if" id="N9Vl)SSr}(t8A:Q6,i1/"> <mutation else="1"> </mutation> <value name="IF0"> <block type="logic_operation" id="HIZ[gRKVkS3h:DHOz-Xt"> <field name="OP">OR</field> <value name="A"> <block type="base_time_event_is_key_pressed" id="k._MCBtgi-s}GpoV|aKM"> <value name="KeyType"> <block type="base_time_events_key_types" id="k6Pv_zr{T:n5fm.Ym_lC"> <field name="KeyType">'a'</field> </block> </value> </block> </value> <value name="B"> <block type="base_time_event_is_key_pressed" id="-i^4Tdp#6;-8|`$^E:GZ"> <value name="KeyType"> <block type="base_time_events_key_types" id="T]IvX%I=N7Ga~VM)X]x%"> <field name="KeyType">'ArrowLeft'</field> </block> </value> </block> </value> </block> </value> <statement name="DO0"> <block type="controls_if" id="y{e5v-Jl*.P@OP*G@MP#"> <value name="IF0"> <block type="logic_compare" id="al?VY+Pk#M)-P-^CKf4a"> <field name="OP">LT</field> <value name="A"> <block type="variables_get" id="+-HTAT#s9j`GSGShS,lP"> <field name="VAR" id="w-`jw_]`h4sSN7j6v%FG">zRotation</field> </block> </value> <value name="B"> <block type="math_number" id="EEyO5}6)?o|*QPYA;C/p"> <field name="NUM">45</field> </block> </value> </block> </value> <statement name="DO0"> <block type="math_change" id="%$}YtThid-1,l[%,h};`"> <field name="VAR" id="w-`jw_]`h4sSN7j6v%FG">zRotation</field> <value name="DELTA"> <shadow type="math_number" id="dQQ9?10!I{:w:/fkH@}m"> <field name="NUM">0.5</field> </shadow> <block type="variables_get" id="6VLs.@]3^2oy5wQJi7z}"> <field name="VAR" id="Gn+k:ablb+I@(!A@r~[u">rotationSpeed</field> </block> </value> </block> </statement> </block> </statement> <statement name="ELSE"> <block type="controls_if" id="94%?}Xx]wxmbU7+HfMT1"> <value name="IF0"> <block type="logic_compare" id="F=Pb{HkM*(Us4k?/0)!I"> <field name="OP">GT</field> <value name="A"> <block type="variables_get" id="P+pOH`4P_W**KWc|QT=m"> <field name="VAR" id="w-`jw_]`h4sSN7j6v%FG">zRotation</field> </block> </value> <value name="B"> <block type="math_number" id="CHPAi)Bf8+CBG!AI.rT2"> <field name="NUM">0</field> </block> </value> </block> </value> <statement name="DO0"> <block type="math_change" id="Gu9!,XY?P8bFm:^ssOm6"> <field name="VAR" id="w-`jw_]`h4sSN7j6v%FG">zRotation</field> <value name="DELTA"> <shadow type="math_number" id="dQQ9?10!I{:w:/fkH@}m"> <field name="NUM">0.5</field> </shadow> <block type="math_single" id="jV|qd?i+58c6PzW=[+eB"> <field name="OP">NEG</field> <value name="NUM"> <block type="variables_get" id="_|;Zm8d7-k?iJ-f3TJa-"> <field name="VAR" id="Gn+k:ablb+I@(!A@r~[u">rotationSpeed</field> </block> </value> </block> </value> </block> </statement> </block> </statement> <next> <block type="controls_if" id="(b@O/E2mbH4X#0_8tJk?"> <mutation else="1"> </mutation> <value name="IF0"> <block type="logic_operation" id="k*W}%Z!;4P@~IP[cYods"> <field name="OP">OR</field> <value name="A"> <block type="base_time_event_is_key_pressed" id="Ov6vO?OiCNRx#]%cYR7}"> <value name="KeyType"> <block type="base_time_events_key_types" id="B$fVOyp6;1vLlZ8Yt@?0"> <field name="KeyType">'d'</field> </block> </value> </block> </value> <value name="B"> <block type="base_time_event_is_key_pressed" id="sA?yFdeDz[+Q,cIrJ@o("> <value name="KeyType"> <block type="base_time_events_key_types" id="U}t5eKt1UXk1jJ{(Yr2!"> <field name="KeyType">'ArrowRight'</field> </block> </value> </block> </value> </block> </value> <statement name="DO0"> <block type="controls_if" id="%kv9k6`!NEOjaj.5bBUA"> <value name="IF0"> <block type="logic_compare" id=":9JE6*a^n#$xmXfKMBG#"> <field name="OP">GT</field> <value name="A"> <block type="variables_get" id="cMg+`Rs|J=U@:({U.*a%"> <field name="VAR" id="w-`jw_]`h4sSN7j6v%FG">zRotation</field> </block> </value> <value name="B"> <block type="math_number" id="P1T,qOfXHodRS/}?Q)Zo"> <field name="NUM">-45</field> </block> </value> </block> </value> <statement name="DO0"> <block type="math_change" id="{iAhbB_5@N%emW#ncseZ"> <field name="VAR" id="w-`jw_]`h4sSN7j6v%FG">zRotation</field> <value name="DELTA"> <shadow type="math_number" id="dQQ9?10!I{:w:/fkH@}m"> <field name="NUM">0.5</field> </shadow> <block type="math_single" id="VHF3=K_9A9,lu;0._-Vq"> <field name="OP">NEG</field> <value name="NUM"> <block type="variables_get" id="f~kt]s7l!kr;SlbqFDa^"> <field name="VAR" id="Gn+k:ablb+I@(!A@r~[u">rotationSpeed</field> </block> </value> </block> </value> </block> </statement> </block> </statement> <statement name="ELSE"> <block type="controls_if" id="$ngVfo@rXu-n$XG$`G3w"> <value name="IF0"> <block type="logic_compare" id="ywoKmI-mc^qFbJnbG5`:"> <field name="OP">LT</field> <value name="A"> <block type="variables_get" id="Hr42[eSSr9y0(_)Zz,e;"> <field name="VAR" id="w-`jw_]`h4sSN7j6v%FG">zRotation</field> </block> </value> <value name="B"> <block type="math_number" id="ziJIW?g/#P.{%l{{}uP%"> <field name="NUM">0</field> </block> </value> </block> </value> <statement name="DO0"> <block type="math_change" id="j_q:!{[~SJ+vB6Y{+3k/"> <field name="VAR" id="w-`jw_]`h4sSN7j6v%FG">zRotation</field> <value name="DELTA"> <shadow type="math_number" id="dQQ9?10!I{:w:/fkH@}m"> <field name="NUM">0.5</field> </shadow> <block type="variables_get" id="(OHGSULYRRWg^EJye@Mf"> <field name="VAR" id="Gn+k:ablb+I@(!A@r~[u">rotationSpeed</field> </block> </value> </block> </statement> </block> </statement> <next> <block type="bitbybit.babylon.mesh.setRotation" id="Qci/P*pBR^/6Qi6GC)K9"> <value name="BabylonMesh"> <block type="variables_get" id="!_7o=7EsrF9N@H~!kD?!"> <field name="VAR" id=")OGJ%%9UXX/|XR6_1]h`">plane</field> </block> </value> <value name="Rotation"> <block type="bitbybit.point.pointXYZ" id=";T(l8Z1E#lcG15RrW@2O"> <value name="X"> <block type="variables_get" id="j3kY~j3}4aayRcwppfX6"> <field name="VAR" id="Q`UnZN[AiZpg%1(P%F[7">xRotation</field> </block> </value> <value name="Y"> <block type="math_number" id="bGWCH%h=kzG_#N-.vWrE"> <field name="NUM">0</field> </block> </value> <value name="Z"> <block type="variables_get" id="iFRGuyd}||AVbnu8VXFc"> <field name="VAR" id="w-`jw_]`h4sSN7j6v%FG">zRotation</field> </block> </value> </block> </value> </block> </next> </block> </next> </block> </next> </block> </next> </block> </statement> </block> </xml>