<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>