Example in Blockly

Example in Blockly script details
Type
Blockly logo image
blockly
App Version
0.13.0
Visibility
public
Date Created
Mar 19, 2021, 12:57:45 PM
Last Edit Date
Dec 5, 2023, 6:08:12 PM

Script Details

The Code
<xml xmlns="https://developers.google.com/blockly/xml"> <variables> <variable id="[k}[jVtbBfRp_,m1xEFT">width</variable> <variable id="E6`1~2.j5kn__{b3VrT_">length</variable> <variable id="#.u:oE_F6^~QOUC@d=|t">height</variable> <variable id="F=PFfQow3+HR58=B-)lk">nrOfAttractorAgents</variable> <variable id="6jxq8f#z4-RPdLwiLSb;">squareBottom</variable> <variable id="v^-:mBgKWl/0[8O@*4B.">squareTop</variable> <variable id="]tU_J_`rz=hlv.[kfC#i">attractorAgentPositions</variable> <variable id="C3G+f[(BMhatg_L,s8Nj">attractorSpeeds</variable> <variable id="AS/6?QO)KX+lF{L(*%[s">attractorHeights</variable> <variable id="Rmn+rPH2Ug%d;Irv*kox">agentHeight</variable> <variable id="RF@1uO!Hj#o5Mi0S$~k/">lengthStepFactor</variable> <variable id="p_M4;Z*}8pQ0X^-|T%xo">linePoints</variable> <variable id="%/m`,G%lXSp/N*(IfWQk">closestAttractorIndexes</variable> <variable id="qQ!HYT+Z,Ll@h1kz.UB!">closestAttractorDistanceWeights</variable> <variable id="sBaq6V+P*jw-1f-6H)a.">widthIndex</variable> <variable id="ih~1tpwM`8PjuYKSPNB[">lengthIndex</variable> <variable id="tu2Wn;tRH##F1Gf[rSga">tailPolylines</variable> <variable id="U@2]CRYaGs-?CE=SsQK9">tailFramesLength</variable> <variable id="AS5tNM^tSb``Qv.;dZVF">closestAttractorIndex</variable> <variable id="V#d9rRJJUTRCl?no)|68">linesMesh</variable> <variable id="{;clp1E92MRCPY;bEk}k">closestAttractorPoint</variable> <variable id="F(D,Gf5Fa|4!MH}O:cTb">timeElapsedFromPreviousFrame</variable> <variable id="Qvb5k;nPR(IUoCt(1K1y">currentAttractorIndex</variable> <variable id="-GIFo1#NEk=dp5ne6CDw">grid</variable> <variable id=",?oWOycYdx;XdA.nH6_n">attractorSpeed</variable> <variable id="yhGZ99v7FP41YtQEzc(0">mesh</variable> <variable id="woncE=#;cizgyX.b4|P+">linePointsIndex</variable> <variable id="[JJ_#]3N]1sW~Mi!sJ6P">attractorHeight</variable> <variable id="=kO_A0=f=F$o,(zYpQz5">currentLinePoint</variable> <variable id="je2p()I,OS;Nvy*e`BRy">gridPolylines</variable> <variable id="i?cpa=$WwJ!QDnYNVx#I">attractorPoint</variable> <variable id="5#2$OOOfYk)~h=9DI_ln">activeAttractorIndexForPoint</variable> <variable id="6BIY.H!EmKf3MKpcWzl~">polylinePoints</variable> <variable id="]si*)%{~^jnSm!]0P?o,">activeDistanceWeightForPoint</variable> <variable id="wyZ@=4]17Mx?Xi%6aNry">activeAgentPositionForPoint</variable> <variable id="[MSm^gAn#pc+]Yj`dukM">pointHeight</variable> <variable id="vxez[HG~S;n~s_,VmeBj">linesMesh4</variable> <variable id=".c3t!|_N~OFn4h@v1N(v">linesMesh3</variable> <variable id="HaI?Ay.oZNqjH(:sLd[a">linesMesh2</variable> </variables> <block type="variables_set" id="n(/UgD~m;-{GBT|;pWDK" x="1309" y="-564"> <field name="VAR" id="[k}[jVtbBfRp_,m1xEFT">width</field> <value name="VALUE"> <block type="math_number" id="/99|kw3AV]NkPq)kz`on"> <field name="NUM">20</field> </block> </value> <next> <block type="variables_set" id="-=ECj}^a}`vH(pktP+#U"> <field name="VAR" id="E6`1~2.j5kn__{b3VrT_">length</field> <value name="VALUE"> <block type="math_number" id="W{-=D[J:UuL_@|8i4baz"> <field name="NUM">60</field> </block> </value> <next> <block type="variables_set" id="kh+H;qb1)q=f/mnflTQ!"> <field name="VAR" id="#.u:oE_F6^~QOUC@d=|t">height</field> <value name="VALUE"> <block type="math_number" id="EC%=t0/[09(RkS,$NtH?"> <field name="NUM">10</field> </block> </value> <next> <block type="variables_set" id=";|fbL#uO#rZTy4r2P8!4"> <field name="VAR" id="F=PFfQow3+HR58=B-)lk">nrOfAttractorAgents</field> <value name="VALUE"> <block type="math_number" id="[gg(%L7Z{#dE{s`w;c7R"> <field name="NUM">30</field> </block> </value> <next> <block type="variables_set" id="#}`UMNz}^=e%{m`k-/Aq"> <field name="VAR" id="6jxq8f#z4-RPdLwiLSb;">squareBottom</field> <value name="VALUE"> <block type="bitbybit.polyline.create" id="o(zCo]jCh{*u~RmKEWvS"> <value name="Points"> <block type="lists_create_with" id="^JVV(VA}u.Z7Gf5G?Fe`"> <mutation items="5"> </mutation> <value name="ADD0"> <block type="bitbybit.point.pointXYZ" id="x1g~I{LT@w)lzsR3_g?("> <value name="X"> <block type="math_single" id="h];pG(Wy2sRo4=F=Uu8["> <field name="OP">NEG</field> <value name="NUM"> <block type="math_arithmetic" id="LK1XAr$nML{D3@a,-dYY"> <field name="OP">DIVIDE</field> <value name="A"> <block type="variables_get" id="NMS8E:FdO8:GAeh#!`Cn"> <field name="VAR" id="[k}[jVtbBfRp_,m1xEFT">width</field> </block> </value> <value name="B"> <block type="math_number" id="}E_hHt+)(fF*3wnZd#4q"> <field name="NUM">2</field> </block> </value> </block> </value> </block> </value> <value name="Y"> <block type="math_number" id="m(T2dgB.*ai(N$z.K=}K"> <field name="NUM">0</field> </block> </value> <value name="Z"> <block type="math_arithmetic" id="Z8c`X!?X4%w)C@|@*`,X"> <field name="OP">DIVIDE</field> <value name="A"> <block type="variables_get" id="(ptVkqY~9`$(B:J9L+t1"> <field name="VAR" id="E6`1~2.j5kn__{b3VrT_">length</field> </block> </value> <value name="B"> <block type="math_number" id="0ns@5gs]-Jl$1is]!u(;"> <field name="NUM">2</field> </block> </value> </block> </value> </block> </value> <value name="ADD1"> <block type="bitbybit.point.pointXYZ" id="J^W;]J=VGUPxewl8[BV-"> <value name="X"> <block type="math_arithmetic" id="d:]X$5K9GzuQA9j*J$5t"> <field name="OP">DIVIDE</field> <value name="A"> <block type="variables_get" id="!HM;k~,QM}Nl9W5OIXG4"> <field name="VAR" id="[k}[jVtbBfRp_,m1xEFT">width</field> </block> </value> <value name="B"> <block type="math_number" id="c@R|`z;bvV4(+j/+7`7v"> <field name="NUM">2</field> </block> </value> </block> </value> <value name="Y"> <block type="math_number" id="6r0oJWy${)mmFZv(OQ/Y"> <field name="NUM">0</field> </block> </value> <value name="Z"> <block type="math_arithmetic" id="%w~;PwrH1dS-VpY?6SHL"> <field name="OP">DIVIDE</field> <value name="A"> <block type="variables_get" id="j5~V1[DvXWPT57Ira5v_"> <field name="VAR" id="E6`1~2.j5kn__{b3VrT_">length</field> </block> </value> <value name="B"> <block type="math_number" id="x93i%wve{+#xU=Dr9d~c"> <field name="NUM">2</field> </block> </value> </block> </value> </block> </value> <value name="ADD2"> <block type="bitbybit.point.pointXYZ" id="U]Yrjxdc)gQqWjbJlXZQ"> <value name="X"> <block type="math_arithmetic" id="*eb6K-*BOJ`iT5YA8n,*"> <field name="OP">DIVIDE</field> <value name="A"> <block type="variables_get" id="ap-S,zd4TVf(f:U$ewpW"> <field name="VAR" id="[k}[jVtbBfRp_,m1xEFT">width</field> </block> </value> <value name="B"> <block type="math_number" id=";B^~MhwHG+L]o+9VaRoi"> <field name="NUM">2</field> </block> </value> </block> </value> <value name="Y"> <block type="math_number" id="nKlC^9YP}BB5WihGQj^c"> <field name="NUM">0</field> </block> </value> <value name="Z"> <block type="math_single" id="ZAh];wHfRf*GDNInljoC"> <field name="OP">NEG</field> <value name="NUM"> <block type="math_arithmetic" id="J#IAE,%Ttkz|3(`DnBm/"> <field name="OP">DIVIDE</field> <value name="A"> <block type="variables_get" id="I[9pn./;SX/7N],5yi=$"> <field name="VAR" id="E6`1~2.j5kn__{b3VrT_">length</field> </block> </value> <value name="B"> <block type="math_number" id=",H:gGI`Fa$7}5@}pKNrN"> <field name="NUM">2</field> </block> </value> </block> </value> </block> </value> </block> </value> <value name="ADD3"> <block type="bitbybit.point.pointXYZ" id="m1{farv0+B[`[{TS4|4t"> <value name="X"> <block type="math_single" id="^W_|7Pe]^}Ra$N;`.ctg"> <field name="OP">NEG</field> <value name="NUM"> <block type="math_arithmetic" id="Z}SU`Ax$ohqWtPw$#(Bs"> <field name="OP">DIVIDE</field> <value name="A"> <block type="variables_get" id="J9D%ZMMq9qUp1:D_^Dv]"> <field name="VAR" id="[k}[jVtbBfRp_,m1xEFT">width</field> </block> </value> <value name="B"> <block type="math_number" id="ZdC*zN*S?oPVQ;S8IJWa"> <field name="NUM">2</field> </block> </value> </block> </value> </block> </value> <value name="Y"> <block type="math_number" id="%S!*oU2I@Vf~f;6mSgyO"> <field name="NUM">0</field> </block> </value> <value name="Z"> <block type="math_single" id="]7|`Q?15Yh6Vi@)l{[V["> <field name="OP">NEG</field> <value name="NUM"> <block type="math_arithmetic" id="8993N/X}WMtf(l}fWwu~"> <field name="OP">DIVIDE</field> <value name="A"> <block type="variables_get" id="|+f*4wxBo+pHWgu}vq(5"> <field name="VAR" id="E6`1~2.j5kn__{b3VrT_">length</field> </block> </value> <value name="B"> <block type="math_number" id="c=yO,WEi|[U(Jv4dmn}+"> <field name="NUM">2</field> </block> </value> </block> </value> </block> </value> </block> </value> <value name="ADD4"> <block type="bitbybit.point.pointXYZ" id="=O.Q~RelwP=qp_Xj6?j."> <value name="X"> <block type="math_single" id="^7*DU.V`6GP69%STz|Yu"> <field name="OP">NEG</field> <value name="NUM"> <block type="math_arithmetic" id="r/O@0Gf;:s7RFvL6Zg2B"> <field name="OP">DIVIDE</field> <value name="A"> <block type="variables_get" id="As}ikAyzK3mdmvf6XGqz"> <field name="VAR" id="[k}[jVtbBfRp_,m1xEFT">width</field> </block> </value> <value name="B"> <block type="math_number" id="@6Y6ebOg7hH$CMq-G~qh"> <field name="NUM">2</field> </block> </value> </block> </value> </block> </value> <value name="Y"> <block type="math_number" id="ySdnzD:1(f7ORrwtf@%E"> <field name="NUM">0</field> </block> </value> <value name="Z"> <block type="math_arithmetic" id="I]diHPu5M0/jsrQp{,||"> <field name="OP">DIVIDE</field> <value name="A"> <block type="variables_get" id="L42l*UOzWje;F(JW~?yR"> <field name="VAR" id="E6`1~2.j5kn__{b3VrT_">length</field> </block> </value> <value name="B"> <block type="math_number" id="AH]P!igv(2/$GZy9J2cq"> <field name="NUM">2</field> </block> </value> </block> </value> </block> </value> </block> </value> </block> </value> <next> <block type="variables_set" id="s@#8x*~=|H2H#;tSyB+Q"> <field name="VAR" id="v^-:mBgKWl/0[8O@*4B.">squareTop</field> <value name="VALUE"> <block type="bitbybit.polyline.transformPolyline" id="-Q%VTPi$#y*_UVBE@n:q"> <value name="Polyline"> <block type="variables_get" id="2;Q5-9WguiFVrWNppF/v"> <field name="VAR" id="6jxq8f#z4-RPdLwiLSb;">squareBottom</field> </block> </value> <value name="Transformation"> <block type="bitbybit.babylon.transforms.translationXYZ" id="CA;hrKN8CCn!JUZ?MH^?"> <value name="Translation"> <block type="bitbybit.point.pointXYZ" id="%#LC(7G6O+M/O/BKw#[,"> <value name="X"> <block type="math_number" id=",tR/MC0u;JUdWIqEY:hS"> <field name="NUM">0</field> </block> </value> <value name="Y"> <block type="variables_get" id="RS[!l!F7gL3EUglX^]D|"> <field name="VAR" id="#.u:oE_F6^~QOUC@d=|t">height</field> </block> </value> <value name="Z"> <block type="math_number" id=".~|LsIRFhnDZxj+cxJ!_"> <field name="NUM">0</field> </block> </value> </block> </value> </block> </value> </block> </value> <next> <block type="variables_set" id="U[~1/o__#QO90k#;t@qL"> <field name="VAR" id="]tU_J_`rz=hlv.[kfC#i">attractorAgentPositions</field> <value name="VALUE"> <block type="lists_create_with" id="9`eO^lKOUGr@o,B/g%PH"> <mutation items="0"> </mutation> </block> </value> <next> <block type="variables_set" id="Jn[1%nuTCdS_+yiIWGMg"> <field name="VAR" id="C3G+f[(BMhatg_L,s8Nj">attractorSpeeds</field> <value name="VALUE"> <block type="lists_create_with" id="=wA4LJg2(PJeKtNivXj("> <mutation items="0"> </mutation> </block> </value> <next> <block type="variables_set" id="MpAy[n]puh^;Hh8.Ryl*"> <field name="VAR" id="AS/6?QO)KX+lF{L(*%[s">attractorHeights</field> <value name="VALUE"> <block type="lists_create_with" id="*$DhnFg@~[D~BLz|NSQ{"> <mutation items="0"> </mutation> </block> </value> <next> <block type="controls_repeat_ext" id="@tg4z5c=teY3mAPjgV$o"> <value name="TIMES"> <block type="variables_get" id="b.J0yJ|~o1~AQ-61(?FN"> <field name="VAR" id="F=PFfQow3+HR58=B-)lk">nrOfAttractorAgents</field> </block> </value> <statement name="DO"> <block type="variables_set" id="``WskmPh:SISVoQFl4Ez"> <field name="VAR" id="Rmn+rPH2Ug%d;Irv*kox">agentHeight</field> <value name="VALUE"> <block type="math_number" id="yxAwu(D0l^e|,;G_h4a1"> <field name="NUM">0</field> </block> </value> <next> <block type="lists_setIndex" id="`K!CxT)N$8;|d(a*FPv4"> <mutation at="false"> </mutation> <field name="MODE">INSERT</field> <field name="WHERE">LAST</field> <value name="LIST"> <block type="variables_get" id="Xo-I?TMxUQVc|yF6}%i+"> <field name="VAR" id="]tU_J_`rz=hlv.[kfC#i">attractorAgentPositions</field> </block> </value> <value name="TO"> <block type="bitbybit.point.pointXYZ" id="d,mRs``)AG-th!#b5`}F"> <value name="X"> <block type="bitbybit.math.remap" id="c],-@5NYnH]YP9}J1dzL"> <value name="Number"> <block type="bitbybit.math.random" id="H0mk{`V@BDkL_Wnyj#^M"> </block> </value> <value name="FromLow"> <block type="math_number" id="m6k#O=FQ5[PPKbeR7Z=_"> <field name="NUM">0</field> </block> </value> <value name="FromHigh"> <block type="math_number" id=")$h1UVbaAk=,KT.E@j1x"> <field name="NUM">1</field> </block> </value> <value name="ToLow"> <block type="math_arithmetic" id="AYL|OmY@lwpiv$4NM_)0"> <field name="OP">DIVIDE</field> <value name="A"> <block type="math_single" id="K]J4AF/MtR[sNwTlj*.-"> <field name="OP">NEG</field> <value name="NUM"> <block type="variables_get" id="s,T.AJ{ykRJ$Jt9K3LSZ"> <field name="VAR" id="[k}[jVtbBfRp_,m1xEFT">width</field> </block> </value> </block> </value> <value name="B"> <block type="math_number" id="()qXdLrd1tK$m}w]#qVK"> <field name="NUM">2</field> </block> </value> </block> </value> <value name="ToHigh"> <block type="math_arithmetic" id="z5E%RVU%3oP4rM:poI3g"> <field name="OP">DIVIDE</field> <value name="A"> <block type="variables_get" id="H=eT0l%IP/PgL:9i-JGP"> <field name="VAR" id="[k}[jVtbBfRp_,m1xEFT">width</field> </block> </value> <value name="B"> <block type="math_number" id="Uoi{Br:,+ah[f*Y3TFR6"> <field name="NUM">2</field> </block> </value> </block> </value> </block> </value> <value name="Y"> <block type="variables_get" id="e4s,kX^1wcEA(IlQQ_DJ"> <field name="VAR" id="Rmn+rPH2Ug%d;Irv*kox">agentHeight</field> </block> </value> <value name="Z"> <block type="bitbybit.math.remap" id="*@O{bgsN:#;goaV;_nsm"> <value name="Number"> <block type="bitbybit.math.random" id="w+y8!T!D#LqrTOustxab"> </block> </value> <value name="FromLow"> <block type="math_number" id="9=VG(h#PM1]!mYV0qd@A"> <field name="NUM">0</field> </block> </value> <value name="FromHigh"> <block type="math_number" id="lLtZDvYSMddyjnvz7;/_"> <field name="NUM">1</field> </block> </value> <value name="ToLow"> <block type="math_arithmetic" id="+kJ!29u)s?K!iATmMMb+"> <field name="OP">DIVIDE</field> <value name="A"> <block type="math_single" id="WKsbp[Z,r+]AHQ?8G0H,"> <field name="OP">NEG</field> <value name="NUM"> <block type="variables_get" id="Asx$S9b6yF}P!(M_+ibt"> <field name="VAR" id="E6`1~2.j5kn__{b3VrT_">length</field> </block> </value> </block> </value> <value name="B"> <block type="math_number" id="b%H,D(r|O2CA{lo}p[Ay"> <field name="NUM">2</field> </block> </value> </block> </value> <value name="ToHigh"> <block type="math_arithmetic" id="/%}-f_*NpYiloA4od|Wr"> <field name="OP">DIVIDE</field> <value name="A"> <block type="variables_get" id="hZkH=iTA~v1Y[%e]yg{u"> <field name="VAR" id="E6`1~2.j5kn__{b3VrT_">length</field> </block> </value> <value name="B"> <block type="math_number" id="IGr(`k;?ws9aca}FRZKL"> <field name="NUM">2</field> </block> </value> </block> </value> </block> </value> </block> </value> <next> <block type="lists_setIndex" id="%CRFzC[6gHR}WR@KG8O$"> <mutation at="false"> </mutation> <field name="MODE">INSERT</field> <field name="WHERE">LAST</field> <value name="LIST"> <block type="variables_get" id="Hn[+r2Bk,9WX:4d^=;5;"> <field name="VAR" id="C3G+f[(BMhatg_L,s8Nj">attractorSpeeds</field> </block> </value> <value name="TO"> <block type="bitbybit.math.remap" id="C*uX;51y1bb=OkXsS8qs"> <value name="Number"> <block type="bitbybit.math.random" id="{Kviwhob;N3N[/H.h14Z"> </block> </value> <value name="FromLow"> <block type="math_number" id="0`5A*kw#~QnTkd_t//nt"> <field name="NUM">0</field> </block> </value> <value name="FromHigh"> <block type="math_number" id="f%eE({U4G2-nMSA*5q@u"> <field name="NUM">1</field> </block> </value> <value name="ToLow"> <block type="math_number" id="{2@|URW^u3KTS9Ujy4FI"> <field name="NUM">0.02</field> </block> </value> <value name="ToHigh"> <block type="math_number" id="Z#D_kC}!+:40{DAD#`,g"> <field name="NUM">0.05</field> </block> </value> </block> </value> <next> <block type="lists_setIndex" id="Rn@R^He1~KWFuF@G9Zur"> <mutation at="false"> </mutation> <field name="MODE">INSERT</field> <field name="WHERE">LAST</field> <value name="LIST"> <block type="variables_get" id="K2JCJ2$IkJF]M]y2M`I3"> <field name="VAR" id="AS/6?QO)KX+lF{L(*%[s">attractorHeights</field> </block> </value> <value name="TO"> <block type="variables_get" id="r1EFpoV!MVToB#!b|ko5"> <field name="VAR" id="Rmn+rPH2Ug%d;Irv*kox">agentHeight</field> </block> </value> </block> </next> </block> </next> </block> </next> </block> </statement> <next> <block type="variables_set" id="RJIf2gTSIkZFF^;~qn^2"> <field name="VAR" id="RF@1uO!Hj#o5Mi0S$~k/">lengthStepFactor</field> <value name="VALUE"> <block type="math_number" id="Z9IQlld]c-.@@LLk:T|f"> <field name="NUM">2</field> </block> </value> <next> <block type="variables_set" id="[)d5D{}i5hbFB(4Kl)^X"> <field name="VAR" id="p_M4;Z*}8pQ0X^-|T%xo">linePoints</field> <value name="VALUE"> <block type="lists_create_with" id="tdX3W_m.p+yYYkk*q1[n"> <mutation items="0"> </mutation> </block> </value> <next> <block type="variables_set" id=")/u6Dg^LYY1vpa*=$|_%"> <field name="VAR" id="%/m`,G%lXSp/N*(IfWQk">closestAttractorIndexes</field> <value name="VALUE"> <block type="lists_create_with" id="6O7S@|*~bg(6y@s=`bQe"> <mutation items="0"> </mutation> </block> </value> <next> <block type="variables_set" id="C.OSs;GB/TlE.sot,4j+"> <field name="VAR" id="qQ!HYT+Z,Ll@h1kz.UB!">closestAttractorDistanceWeights</field> <value name="VALUE"> <block type="lists_create_with" id="F8.?}!g9_Hz6gCRnIn=c"> <mutation items="0"> </mutation> </block> </value> <next> <block type="controls_for" id="QiDxg1$_8}:H=xsMMA9I"> <field name="VAR" id="sBaq6V+P*jw-1f-6H)a.">widthIndex</field> <value name="FROM"> <block type="math_single" id="c!I|=N7Pqi(c[#xPh$fq"> <field name="OP">NEG</field> <value name="NUM"> <block type="math_arithmetic" id="_31$U4ab5ucc*f(c6QR~"> <field name="OP">DIVIDE</field> <value name="A"> <block type="variables_get" id="!;.r0`n:+-;!8RpRmyor"> <field name="VAR" id="[k}[jVtbBfRp_,m1xEFT">width</field> </block> </value> <value name="B"> <block type="math_number" id="H6wAP$tAKo6Zo/rom:vP"> <field name="NUM">2</field> </block> </value> </block> </value> </block> </value> <value name="TO"> <block type="math_arithmetic" id="Qkd]6eE1dKRqBNteg,Ww"> <field name="OP">DIVIDE</field> <value name="A"> <block type="variables_get" id="PG%-=lyOYl~8ru%`e#]-"> <field name="VAR" id="[k}[jVtbBfRp_,m1xEFT">width</field> </block> </value> <value name="B"> <block type="math_number" id="OT]D;6]oS@Lu:J{Tf)hL"> <field name="NUM">2</field> </block> </value> </block> </value> <value name="BY"> <block type="math_number" id="Rb:DDp/$~]pzTBp~XaeD"> <field name="NUM">0.5</field> </block> </value> <statement name="DO"> <block type="controls_for" id="~rbK8kRFlkwbGS=!.;f2"> <field name="VAR" id="ih~1tpwM`8PjuYKSPNB[">lengthIndex</field> <value name="FROM"> <block type="math_single" id="/5@j?3nPY-}hv5Lahv5k"> <field name="OP">NEG</field> <value name="NUM"> <block type="math_arithmetic" id="MvF,aeOmw{cvTLV:8Ed%"> <field name="OP">DIVIDE</field> <value name="A"> <block type="variables_get" id="3/`_tcZt~rHhmi8Q~@e^"> <field name="VAR" id="E6`1~2.j5kn__{b3VrT_">length</field> </block> </value> <value name="B"> <block type="math_number" id="-/@-QK^^1OrmED;gqP7b"> <field name="NUM">2</field> </block> </value> </block> </value> </block> </value> <value name="TO"> <block type="math_arithmetic" id=".VCbI=XWRRV,|g)y)UjA"> <field name="OP">DIVIDE</field> <value name="A"> <block type="variables_get" id="?uq*fB[i8$q2;#-gLQ#O"> <field name="VAR" id="E6`1~2.j5kn__{b3VrT_">length</field> </block> </value> <value name="B"> <block type="math_number" id="]3^]FQn|}Ate8Ald5mZ/"> <field name="NUM">2</field> </block> </value> </block> </value> <value name="BY"> <block type="variables_get" id="e^#OjHTO1rp],5D;O*v7"> <field name="VAR" id="RF@1uO!Hj#o5Mi0S$~k/">lengthStepFactor</field> </block> </value> <statement name="DO"> <block type="lists_setIndex" id="Gvwra!D3]8RA;b/dpd?."> <mutation at="false"> </mutation> <field name="MODE">INSERT</field> <field name="WHERE">LAST</field> <value name="LIST"> <block type="variables_get" id="H7o*K1Gk$NwnmP)xkMbr"> <field name="VAR" id="p_M4;Z*}8pQ0X^-|T%xo">linePoints</field> </block> </value> <value name="TO"> <block type="bitbybit.point.pointXYZ" id="@@-*?8lClJ#F[u%tbayS"> <value name="X"> <block type="variables_get" id="ycC+zR2{B=M(p6:fpVQV"> <field name="VAR" id="sBaq6V+P*jw-1f-6H)a.">widthIndex</field> </block> </value> <value name="Y"> <block type="math_number" id="(ivEc;fw!1J|{+rmRFN!"> <field name="NUM">0</field> </block> </value> <value name="Z"> <block type="variables_get" id="wIRDhS26UHz:Il#g4DAO"> <field name="VAR" id="ih~1tpwM`8PjuYKSPNB[">lengthIndex</field> </block> </value> </block> </value> <next> <block type="variables_set" id="9zW^RdwVlCx8~))KU,`M"> <field name="VAR" id="AS5tNM^tSb``Qv.;dZVF">closestAttractorIndex</field> <value name="VALUE"> <block type="bitbybit.point.closestPointFromPointsIndex" id="1}BD[4V+0GrHw.c[K8+{"> <value name="Points"> <block type="variables_get" id=";In[6Xd1t`:BoU5En8PE"> <field name="VAR" id="]tU_J_`rz=hlv.[kfC#i">attractorAgentPositions</field> </block> </value> <value name="Point"> <block type="bitbybit.point.pointXYZ" id="lKF?/0b/8E5=3C{QTz]I"> <value name="X"> <block type="variables_get" id="ki]?o446NH4Wc0)0,g~J"> <field name="VAR" id="sBaq6V+P*jw-1f-6H)a.">widthIndex</field> </block> </value> <value name="Y"> <block type="math_number" id="VGV0d8LuUcjC0k!YtH@i"> <field name="NUM">0</field> </block> </value> <value name="Z"> <block type="variables_get" id="b_iZxh?QYrvqq:s#YSJn"> <field name="VAR" id="ih~1tpwM`8PjuYKSPNB[">lengthIndex</field> </block> </value> </block> </value> </block> </value> <next> <block type="lists_setIndex" id="]LtXW+CNh;LAc{ka=[iX"> <mutation at="false"> </mutation> <field name="MODE">INSERT</field> <field name="WHERE">LAST</field> <value name="LIST"> <block type="variables_get" id="!!W5UI@xt@0xydv11id`"> <field name="VAR" id="%/m`,G%lXSp/N*(IfWQk">closestAttractorIndexes</field> </block> </value> <value name="TO"> <block type="variables_get" id="nZ;DxnLBf!`yPD45~:/o"> <field name="VAR" id="AS5tNM^tSb``Qv.;dZVF">closestAttractorIndex</field> </block> </value> <next> <block type="variables_set" id="7B?Y/x-N%po$L$+X(r#{"> <field name="VAR" id="{;clp1E92MRCPY;bEk}k">closestAttractorPoint</field> <value name="VALUE"> <block type="lists_getIndex" id="t|}h#yc~3re~8ng|kPZQ"> <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="lgv*DW{y%M8rgC9brpOK"> <field name="VAR" id="]tU_J_`rz=hlv.[kfC#i">attractorAgentPositions</field> </block> </value> <value name="AT"> <block type="variables_get" id="m|1-o#hqaI!S0t:xz~s9"> <field name="VAR" id="AS5tNM^tSb``Qv.;dZVF">closestAttractorIndex</field> </block> </value> </block> </value> <next> <block type="lists_setIndex" id="cz(|UgK*~LD5=`?J;=.z"> <mutation at="false"> </mutation> <field name="MODE">INSERT</field> <field name="WHERE">LAST</field> <value name="LIST"> <block type="variables_get" id="IrspFMk!DaI3VnjhF~#8"> <field name="VAR" id="qQ!HYT+Z,Ll@h1kz.UB!">closestAttractorDistanceWeights</field> </block> </value> <value name="TO"> <block type="bitbybit.math.remap" id="^x-g*{3Z}|Jt3%dn{uRS"> <value name="Number"> <block type="bitbybit.point.distance" id="%z?7cA%|p.VNk$^V*L`-"> <value name="StartPoint"> <block type="bitbybit.point.pointXYZ" id="T.VtSlebprjTotmfl7hM"> <value name="X"> <block type="variables_get" id="70jESFB.R@s`NTxaR2go"> <field name="VAR" id="sBaq6V+P*jw-1f-6H)a.">widthIndex</field> </block> </value> <value name="Y"> <block type="math_number" id="o4$=}AxLUX,6Wp%?e?6g"> <field name="NUM">0</field> </block> </value> <value name="Z"> <block type="variables_get" id="?LzgW-8*nHkzG5_SL,tA"> <field name="VAR" id="ih~1tpwM`8PjuYKSPNB[">lengthIndex</field> </block> </value> </block> </value> <value name="EndPoint"> <block type="variables_get" id="q~mylF`WOCMl;[ia^|J."> <field name="VAR" id="{;clp1E92MRCPY;bEk}k">closestAttractorPoint</field> </block> </value> </block> </value> <value name="FromLow"> <block type="math_number" id="N~a/QIn3klB9fn+vgok?"> <field name="NUM">0</field> </block> </value> <value name="FromHigh"> <block type="math_number" id=")PdcMmRrLR4J.X;,.;:P"> <field name="NUM">4</field> </block> </value> <value name="ToLow"> <block type="math_number" id=",#^o^3`mb7Bj,vw@cyk*"> <field name="NUM">0.4</field> </block> </value> <value name="ToHigh"> <block type="math_number" id="k8x~.!_CLg}l#I6V|S(Q"> <field name="NUM">0</field> </block> </value> </block> </value> </block> </next> </block> </next> </block> </next> </block> </next> </block> </statement> </block> </statement> <next> <block type="variables_set" id="?/pciF1cIP#p8^2RZhF_"> <field name="VAR" id="tu2Wn;tRH##F1Gf[rSga">tailPolylines</field> <value name="VALUE"> <block type="lists_create_with" id="Nm/[RQZ?uwNA%b/i]GE4"> <mutation items="0"> </mutation> </block> </value> <next> <block type="variables_set" id="m#:!Gz)][a4A[Lxv.^C^"> <field name="VAR" id="U@2]CRYaGs-?CE=SsQK9">tailFramesLength</field> <value name="VALUE"> <block type="math_number" id="/47K0//+IgMFT@)V@m,n"> <field name="NUM">150</field> </block> </value> <next> <block type="variables_set" id="NJk@THbVWDOQ|WD^08bP"> <field name="VAR" id="V#d9rRJJUTRCl?no)|68">linesMesh</field> <value name="VALUE"> <block type="logic_boolean" id="+=d)z$R63bU#fmrRV[1u"> <field name="BOOL">FALSE</field> </block> </value> <next> <block type="variables_set" id="o9Q@#,$XNP(Fq1hA2#]c"> <field name="VAR" id="V#d9rRJJUTRCl?no)|68">linesMesh</field> <value name="VALUE"> <block type="logic_boolean" id="ms$.Ro6@1[oZ3jOz%[cw"> <field name="BOOL">FALSE</field> </block> </value> <next> <block type="base_time_update" id="`{!9towq]J6ekTb/2_U7"> <field name="TimePassedMs" id="F(D,Gf5Fa|4!MH}O:cTb">timeElapsedFromPreviousFrame</field> <statement name="Update"> <block type="controls_if" id="NCJyDvj0S=UQI|z`k;IM"> <value name="IF0"> <block type="logic_boolean" id="}lJN{DSd,=a)pWz^N*.w"> <field name="BOOL">TRUE</field> </block> </value> <statement name="DO0"> <block type="controls_for" id="hi]YG;vq`T~Z^s];tIm$"> <field name="VAR" id="Qvb5k;nPR(IUoCt(1K1y">currentAttractorIndex</field> <value name="FROM"> <block type="math_number" id="}#L3w3wT}_7WY4%z_?QY"> <field name="NUM">1</field> </block> </value> <value name="TO"> <block type="variables_get" id="xeZ5[=|[-weSFNn4tvn_"> <field name="VAR" id="F=PFfQow3+HR58=B-)lk">nrOfAttractorAgents</field> </block> </value> <value name="BY"> <block type="math_number" id=",/^gzf}:?{o[bx`;-[Pz"> <field name="NUM">1</field> </block> </value> <statement name="DO"> <block type="variables_set" id="/gTj[YcE?bs3h;o5%R{C"> <field name="VAR" id=",?oWOycYdx;XdA.nH6_n">attractorSpeed</field> <value name="VALUE"> <block type="lists_getIndex" id="2kS+JHcdWS%|k,)C##7%"> <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="qFTEUS`aRRV/!ff0MGfo"> <field name="VAR" id="C3G+f[(BMhatg_L,s8Nj">attractorSpeeds</field> </block> </value> <value name="AT"> <block type="variables_get" id="9r7@T6@EI3Jc,Wy~@Co."> <field name="VAR" id="Qvb5k;nPR(IUoCt(1K1y">currentAttractorIndex</field> </block> </value> </block> </value> <next> <block type="variables_set" id="U0-dicUsir})^W*hCxV="> <field name="VAR" id="[JJ_#]3N]1sW~Mi!sJ6P">attractorHeight</field> <value name="VALUE"> <block type="lists_getIndex" id="D)v^g=tb0%cS[^UI=(cG"> <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="DEEmT4_Gr-C4f?c6C2SH"> <field name="VAR" id="AS/6?QO)KX+lF{L(*%[s">attractorHeights</field> </block> </value> <value name="AT"> <block type="variables_get" id="pmMeZW94yDUh!+cJ,P?V"> <field name="VAR" id="Qvb5k;nPR(IUoCt(1K1y">currentAttractorIndex</field> </block> </value> </block> </value> <next> <block type="variables_set" id="{H0rF7Y@y44ER(QDbs/m"> <field name="VAR" id="i?cpa=$WwJ!QDnYNVx#I">attractorPoint</field> <value name="VALUE"> <block type="lists_getIndex" id="E](H`;Gu8gk?r~31jh8)"> <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="Wc(x@A=x_VBNDvf0x^wv"> <field name="VAR" id="]tU_J_`rz=hlv.[kfC#i">attractorAgentPositions</field> </block> </value> <value name="AT"> <block type="variables_get" id="!Ao)r_.EzLr,46(yR/~*"> <field name="VAR" id="Qvb5k;nPR(IUoCt(1K1y">currentAttractorIndex</field> </block> </value> </block> </value> <next> <block type="controls_if" id="hQY^o_usVSDcQFEQKQJa"> <mutation elseif="1"> </mutation> <value name="IF0"> <block type="logic_compare" id="]2}Bf=RI=:i0j?-=KWsb"> <field name="OP">GT</field> <value name="A"> <block type="variables_get" id="l.Z2ud;BKE!1y_+#0wZE"> <field name="VAR" id="[JJ_#]3N]1sW~Mi!sJ6P">attractorHeight</field> </block> </value> <value name="B"> <block type="variables_get" id="j1H0y+HBu;sLAq~{d/D{"> <field name="VAR" id="#.u:oE_F6^~QOUC@d=|t">height</field> </block> </value> </block> </value> <statement name="DO0"> <block type="variables_set" id="ri9LRzFt7n.FQTJ.=3$Q"> <field name="VAR" id=",?oWOycYdx;XdA.nH6_n">attractorSpeed</field> <value name="VALUE"> <block type="math_arithmetic" id="2k}Do!V{G]HIG{piP/yB"> <field name="OP">MULTIPLY</field> <value name="A"> <block type="variables_get" id="vEYrIJN6z4pn_]lS4PE7"> <field name="VAR" id=",?oWOycYdx;XdA.nH6_n">attractorSpeed</field> </block> </value> <value name="B"> <block type="math_number" id="upjh,}]vWC.g+AUdqV{+"> <field name="NUM">-1</field> </block> </value> </block> </value> </block> </statement> <value name="IF1"> <block type="logic_compare" id="4q*wmjr/Z.uUFd:e83N+"> <field name="OP">LT</field> <value name="A"> <block type="variables_get" id="F@e1Eic$#Pxz({j*u!TT"> <field name="VAR" id="[JJ_#]3N]1sW~Mi!sJ6P">attractorHeight</field> </block> </value> <value name="B"> <block type="math_number" id="FY(/s+Wt+a2p,cuHxnu#"> <field name="NUM">0</field> </block> </value> </block> </value> <statement name="DO1"> <block type="variables_set" id="D(;YK=4=%^?(Ir?;yffS"> <field name="VAR" id=",?oWOycYdx;XdA.nH6_n">attractorSpeed</field> <value name="VALUE"> <block type="math_arithmetic" id="YK=ux;J9Y-@1*Y+xm`0M"> <field name="OP">MULTIPLY</field> <value name="A"> <block type="variables_get" id="Z9!t2_WBgq.eQ|-4#KNB"> <field name="VAR" id=",?oWOycYdx;XdA.nH6_n">attractorSpeed</field> </block> </value> <value name="B"> <block type="math_number" id="zs15`P|a-}Ks4Kz_LH?/"> <field name="NUM">-1</field> </block> </value> </block> </value> </block> </statement> <next> <block type="math_change" id="i2+7t|b[Vkuaz`59#0Q_"> <field name="VAR" id="[JJ_#]3N]1sW~Mi!sJ6P">attractorHeight</field> <value name="DELTA"> <block type="variables_get" id="4zhJ$m.huUDO;.!%DHjr"> <field name="VAR" id=",?oWOycYdx;XdA.nH6_n">attractorSpeed</field> </block> </value> <next> <block type="variables_set" id="wvJggVM,._aP5)vjVKnT"> <field name="VAR" id="i?cpa=$WwJ!QDnYNVx#I">attractorPoint</field> <value name="VALUE"> <block type="bitbybit.point.transformPoint" id="Co,7N)PJBn3HDc$zx]^b"> <value name="Point"> <block type="variables_get" id="!$iaev|pJvPM@yHGe[bR"> <field name="VAR" id="i?cpa=$WwJ!QDnYNVx#I">attractorPoint</field> </block> </value> <value name="Transformation"> <block type="bitbybit.babylon.transforms.translationXYZ" id="kwckuK,/[ewmU@vG)$d^"> <value name="Translation"> <block type="bitbybit.point.pointXYZ" id="16v,|4scM(uD;TV9~z20"> <value name="X"> <block type="math_number" id="hh]6W}]}[EHw(vc7U57Y"> <field name="NUM">0</field> </block> </value> <value name="Y"> <block type="variables_get" id="eJhcRCcz4+I%LCDS+8s."> <field name="VAR" id=",?oWOycYdx;XdA.nH6_n">attractorSpeed</field> </block> </value> <value name="Z"> <block type="math_number" id="uSrwQJRN!82JXssFHD*u"> <field name="NUM">0</field> </block> </value> </block> </value> </block> </value> </block> </value> <next> <block type="lists_setIndex" id="EjP`C;nV|AvLRtZRE=2@"> <mutation at="true"> </mutation> <field name="MODE">SET</field> <field name="WHERE">FROM_START</field> <value name="LIST"> <block type="variables_get" id="h/XobxW~Yb/b!ye8/L*i"> <field name="VAR" id="AS/6?QO)KX+lF{L(*%[s">attractorHeights</field> </block> </value> <value name="AT"> <block type="variables_get" id="jDRXVqM.fUm(f13zTBJ`"> <field name="VAR" id="Qvb5k;nPR(IUoCt(1K1y">currentAttractorIndex</field> </block> </value> <value name="TO"> <block type="variables_get" id="e)S1QJ4S=[6Ph=)o`SOd"> <field name="VAR" id="[JJ_#]3N]1sW~Mi!sJ6P">attractorHeight</field> </block> </value> <next> <block type="lists_setIndex" id="{=sQG:XFa)#G6v1x(P//"> <mutation at="true"> </mutation> <field name="MODE">SET</field> <field name="WHERE">FROM_START</field> <value name="LIST"> <block type="variables_get" id=":L/iVwATmOtl%;4(UnW{"> <field name="VAR" id="C3G+f[(BMhatg_L,s8Nj">attractorSpeeds</field> </block> </value> <value name="AT"> <block type="variables_get" id="TMNhy^{j!s+y2%G$wy$}"> <field name="VAR" id="Qvb5k;nPR(IUoCt(1K1y">currentAttractorIndex</field> </block> </value> <value name="TO"> <block type="variables_get" id="EG5wp(`u%eq_~8Bu/DPF"> <field name="VAR" id=",?oWOycYdx;XdA.nH6_n">attractorSpeed</field> </block> </value> <next> <block type="lists_setIndex" id="Y[e.m=X5aH]3lz8ZQ]rF"> <mutation at="true"> </mutation> <field name="MODE">SET</field> <field name="WHERE">FROM_START</field> <value name="LIST"> <block type="variables_get" id="2fJ;$(zgJ+[=(m{o@h.8"> <field name="VAR" id="]tU_J_`rz=hlv.[kfC#i">attractorAgentPositions</field> </block> </value> <value name="AT"> <block type="variables_get" id="6=l}TVX5!W_#~B.9VSr?"> <field name="VAR" id="Qvb5k;nPR(IUoCt(1K1y">currentAttractorIndex</field> </block> </value> <value name="TO"> <block type="variables_get" id="S{+QGl*??*,g3?W+PnsL"> <field name="VAR" id="i?cpa=$WwJ!QDnYNVx#I">attractorPoint</field> </block> </value> </block> </next> </block> </next> </block> </next> </block> </next> </block> </next> </block> </next> </block> </next> </block> </next> </block> </statement> <next> <block type="variables_set" id="VG}R+WJxBkl=Zat$}~(u"> <field name="VAR" id="yhGZ99v7FP41YtQEzc(0">mesh</field> <value name="VALUE"> <block type="bitbybit.draw.drawAny" id="ZAp;Rkv2$eW7-?$K~(T."> <value name="Entity"> <block type="variables_get" id="vi:LMLJM!N7Z%vP:I*:i"> <field name="VAR" id="]tU_J_`rz=hlv.[kfC#i">attractorAgentPositions</field> </block> </value> <value name="Options"> <block type="bitbybit.draw.optionsSimple" id="!PXDb@DM(8X:k)iTP)]b"> <value name="Colours"> <block type="colour_picker" id="WQZbM6Bh0Ip+IS#VJ}Sr"> <field name="COLOUR">#ffffff</field> </block> </value> <value name="Size"> <block type="math_number" id="9}xM.p%Nq0HO5T4+%2b]"> <field name="NUM">0.2</field> </block> </value> <value name="Opacity"> <block type="math_number" id="(^ng-tQR+sDG-:U~fJBG"> <field name="NUM">1</field> </block> </value> <value name="Updatable"> <block type="logic_boolean" id=",@Msx.B{3omtpFGvV4I2"> <field name="BOOL">TRUE</field> </block> </value> </block> </value> <value name="BabylonMesh"> <block type="variables_get" id=":oECIQ#n(OI7=k6#OmXO"> <field name="VAR" id="yhGZ99v7FP41YtQEzc(0">mesh</field> </block> </value> </block> </value> </block> </next> </block> </statement> <next> <block type="variables_set" id="Z=}|HVD)Lwk!f@+hELmh"> <field name="VAR" id="-GIFo1#NEk=dp5ne6CDw">grid</field> <value name="VALUE"> <block type="lists_create_with" id="*dTBQhsOtfIQroq*WVkU"> <mutation items="0"> </mutation> </block> </value> <next> <block type="controls_for" id="~,@|)Wecs%Tog,%e{jP`"> <field name="VAR" id="woncE=#;cizgyX.b4|P+">linePointsIndex</field> <value name="FROM"> <block type="math_number" id="~,e47l]:2f2w3Um:|vH;"> <field name="NUM">1</field> </block> </value> <value name="TO"> <block type="lists_length" id="x{NS*#nOUW:fiyg6T)1Q"> <value name="VALUE"> <block type="variables_get" id="w(Opp-T?Sd]F0A|mY~WQ"> <field name="VAR" id="p_M4;Z*}8pQ0X^-|T%xo">linePoints</field> </block> </value> </block> </value> <value name="BY"> <block type="math_number" id="I/,|Fm|/vJNb#wkD8Mmj"> <field name="NUM">1</field> </block> </value> <statement name="DO"> <block type="variables_set" id="26cB-N|0TTPZ,4R{^Yi?"> <field name="VAR" id="=kO_A0=f=F$o,(zYpQz5">currentLinePoint</field> <value name="VALUE"> <block type="lists_getIndex" id="*4T,P5m)6cZA)IrTS_Q6"> <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=")gBm}3/mhPn]SYP,Z1]N"> <field name="VAR" id="p_M4;Z*}8pQ0X^-|T%xo">linePoints</field> </block> </value> <value name="AT"> <block type="variables_get" id=",eAl5^goFkGnrs=|L5EE"> <field name="VAR" id="woncE=#;cizgyX.b4|P+">linePointsIndex</field> </block> </value> </block> </value> <next> <block type="variables_set" id="s%rMpMrx|-.5V8*-{a@^"> <field name="VAR" id="5#2$OOOfYk)~h=9DI_ln">activeAttractorIndexForPoint</field> <value name="VALUE"> <block type="lists_getIndex" id="QnDJy;*9iLZf4tSFz*~="> <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="Nx]T=a+VTeA}3XKc{fMF"> <field name="VAR" id="%/m`,G%lXSp/N*(IfWQk">closestAttractorIndexes</field> </block> </value> <value name="AT"> <block type="variables_get" id="/tkb3w;S}h6Dr83lS,}F"> <field name="VAR" id="woncE=#;cizgyX.b4|P+">linePointsIndex</field> </block> </value> </block> </value> <next> <block type="variables_set" id="q~r$RHPf@9-GN5E%9S5p"> <field name="VAR" id="]si*)%{~^jnSm!]0P?o,">activeDistanceWeightForPoint</field> <value name="VALUE"> <block type="lists_getIndex" id="wK2GTycbfWa:R=rw]1l~"> <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=":wk0de=HV?;z}7!pc|cD"> <field name="VAR" id="qQ!HYT+Z,Ll@h1kz.UB!">closestAttractorDistanceWeights</field> </block> </value> <value name="AT"> <block type="variables_get" id="ZMOezf[G#)74%cf5P1Tb"> <field name="VAR" id="woncE=#;cizgyX.b4|P+">linePointsIndex</field> </block> </value> </block> </value> <next> <block type="variables_set" id="xClZd2|!/uQM^?6?QaT3"> <field name="VAR" id="wyZ@=4]17Mx?Xi%6aNry">activeAgentPositionForPoint</field> <value name="VALUE"> <block type="lists_getIndex" id="m!]^]RQhI!Ve|s=C0vcG"> <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="VmMVLSRqGz13c;.z,hjS"> <field name="VAR" id="]tU_J_`rz=hlv.[kfC#i">attractorAgentPositions</field> </block> </value> <value name="AT"> <block type="variables_get" id="wVGFJo{`poY))!}!V7Zv"> <field name="VAR" id="5#2$OOOfYk)~h=9DI_ln">activeAttractorIndexForPoint</field> </block> </value> </block> </value> <next> <block type="variables_set" id="7%6mGo}nt]*Vi?j~CU6;"> <field name="VAR" id="[MSm^gAn#pc+]Yj`dukM">pointHeight</field> <value name="VALUE"> <block type="math_arithmetic" id="2qdIJEiU7wUftvVJq9So"> <field name="OP">MULTIPLY</field> <value name="A"> <block type="variables_get" id="LHFO?7M-WSE/M3kE-ekX"> <field name="VAR" id="]si*)%{~^jnSm!]0P?o,">activeDistanceWeightForPoint</field> </block> </value> <value name="B"> <block type="bitbybit.point.getY" id="%#`aG:9QY/=6Ko2?sWoj"> <value name="Point"> <block type="variables_get" id="OreiybBGKD`?ax_jFFs_"> <field name="VAR" id="wyZ@=4]17Mx?Xi%6aNry">activeAgentPositionForPoint</field> </block> </value> </block> </value> </block> </value> <next> <block type="lists_setIndex" id="eQz$;{V-gm*!helq=#Yc"> <mutation at="false"> </mutation> <field name="MODE">INSERT</field> <field name="WHERE">LAST</field> <value name="LIST"> <block type="variables_get" id="OFcWGeAn(q0A6LQ($Hf#"> <field name="VAR" id="-GIFo1#NEk=dp5ne6CDw">grid</field> </block> </value> <value name="TO"> <block type="bitbybit.point.pointXYZ" id="LY:3d(l0z|;Fe)^Xwz=("> <value name="X"> <block type="bitbybit.point.getX" id=",fkNn6xa(KfOm$NNhKhf"> <value name="Point"> <block type="variables_get" id="9*{G0RND_!R~#,/U~/S3"> <field name="VAR" id="=kO_A0=f=F$o,(zYpQz5">currentLinePoint</field> </block> </value> </block> </value> <value name="Y"> <block type="variables_get" id="ltfD3Xp0|b}b9R;a+fKI"> <field name="VAR" id="[MSm^gAn#pc+]Yj`dukM">pointHeight</field> </block> </value> <value name="Z"> <block type="bitbybit.point.getZ" id="x(!lH#](-O2bgMXKqJug"> <value name="Point"> <block type="variables_get" id="jMo}F33#Q1eg}016@+uC"> <field name="VAR" id="=kO_A0=f=F$o,(zYpQz5">currentLinePoint</field> </block> </value> </block> </value> </block> </value> </block> </next> </block> </next> </block> </next> </block> </next> </block> </next> </block> </statement> <next> <block type="variables_set" id="mOL^y~!w|BQQyIHw2;u5"> <field name="VAR" id="je2p()I,OS;Nvy*e`BRy">gridPolylines</field> <value name="VALUE"> <block type="lists_create_with" id="?!lSd,z5O|F!06Cw50Lq"> <mutation items="0"> </mutation> </block> </value> <next> <block type="controls_forEach" id="G7F-|bh/,%:C{Qk_-G6#"> <field name="VAR" id="6BIY.H!EmKf3MKpcWzl~">polylinePoints</field> <value name="LIST"> <block type="bitbybit.lists.groupNth" id="C+lYb}A6hs|=F_45NvwL"> <value name="List"> <block type="variables_get" id="*SrGfG0)oC2c+iSB*H#E"> <field name="VAR" id="-GIFo1#NEk=dp5ne6CDw">grid</field> </block> </value> <value name="NrElements"> <block type="math_arithmetic" id="y+(qrlT$7EQKz9=lftL/"> <field name="OP">ADD</field> <value name="A"> <block type="math_arithmetic" id="IQly#bj-sY],Ra+%u7sn"> <field name="OP">DIVIDE</field> <value name="A"> <block type="variables_get" id="eOlAR?c+Id{2@El/.QOi"> <field name="VAR" id="E6`1~2.j5kn__{b3VrT_">length</field> </block> </value> <value name="B"> <block type="variables_get" id="_%0_Me_r^k/..OTo@fqL"> <field name="VAR" id="RF@1uO!Hj#o5Mi0S$~k/">lengthStepFactor</field> </block> </value> </block> </value> <value name="B"> <block type="math_number" id="U;aHQ/mLIPlAfowwH1|K"> <field name="NUM">1</field> </block> </value> </block> </value> <value name="KeepRemainder"> <block type="logic_boolean" id="b-1NWW69:K%?TvAD*?e`"> <field name="BOOL">FALSE</field> </block> </value> </block> </value> <statement name="DO"> <block type="lists_setIndex" id="Ka%2cUqJ1yJ+$r|Lk]v8"> <mutation at="false"> </mutation> <field name="MODE">INSERT</field> <field name="WHERE">LAST</field> <value name="LIST"> <block type="variables_get" id="%#Sr[xUb*B%XnIMpiv2:"> <field name="VAR" id="je2p()I,OS;Nvy*e`BRy">gridPolylines</field> </block> </value> <value name="TO"> <block type="bitbybit.polyline.create" id="^4+Cf2o99T]ala;r4`Mp"> <value name="Points"> <block type="variables_get" id="$Mw!h]jQlt#=;=,UBM?A"> <field name="VAR" id="6BIY.H!EmKf3MKpcWzl~">polylinePoints</field> </block> </value> </block> </value> </block> </statement> <next> <block type="controls_if" id="G?+2NYGFChO}d7lzJO$M"> <mutation else="1"> </mutation> <value name="IF0"> <block type="logic_compare" id="fA~)_wP0VqQm!e+L7WI$"> <field name="OP">EQ</field> <value name="A"> <block type="lists_length" id="lrhbV?=Cu;6^!wjGIFze"> <value name="VALUE"> <block type="variables_get" id="Qt5vCcVYE/**XMCWcF),"> <field name="VAR" id="tu2Wn;tRH##F1Gf[rSga">tailPolylines</field> </block> </value> </block> </value> <value name="B"> <block type="variables_get" id="dzqs[5hgJ#E#h)1l.n}}"> <field name="VAR" id="U@2]CRYaGs-?CE=SsQK9">tailFramesLength</field> </block> </value> </block> </value> <statement name="DO0"> <block type="lists_getIndex" id="#aTpJF[g{/n`lN,0L}Bv"> <mutation statement="true" at="true"> </mutation> <field name="MODE">REMOVE</field> <field name="WHERE">FROM_START</field> <value name="VALUE"> <block type="variables_get" id="4pBnrn*-m6jG-)oF.y,c"> <field name="VAR" id="tu2Wn;tRH##F1Gf[rSga">tailPolylines</field> </block> </value> <value name="AT"> <block type="math_number" id=".iKmZCN`G|Pju;zcG|.N"> <field name="NUM">1</field> </block> </value> <next> <block type="lists_setIndex" id="o/@kfsE4g#%NH[+-[-qL"> <mutation at="false"> </mutation> <field name="MODE">INSERT</field> <field name="WHERE">LAST</field> <value name="LIST"> <block type="variables_get" id="jgiv(y4k?Eyvf3jC6.[/"> <field name="VAR" id="tu2Wn;tRH##F1Gf[rSga">tailPolylines</field> </block> </value> <value name="TO"> <block type="variables_get" id="Yj|]-Kqv{9sAC:f-m]HX"> <field name="VAR" id="je2p()I,OS;Nvy*e`BRy">gridPolylines</field> </block> </value> </block> </next> </block> </statement> <statement name="ELSE"> <block type="lists_setIndex" id="@B|D%ZxVcDlLA~/Krb{C"> <mutation at="false"> </mutation> <field name="MODE">INSERT</field> <field name="WHERE">LAST</field> <value name="LIST"> <block type="variables_get" id="]gmotD^F#%L=/pcaFv{m"> <field name="VAR" id="tu2Wn;tRH##F1Gf[rSga">tailPolylines</field> </block> </value> <value name="TO"> <block type="variables_get" id="uMYkml9]6~:orWu,(5*O"> <field name="VAR" id="je2p()I,OS;Nvy*e`BRy">gridPolylines</field> </block> </value> </block> </statement> <next> <block type="controls_if" id="F%X!|0#WXZ(g~P(x{]n;"> <value name="IF0"> <block type="lists_getIndex" id="FcKDy/OG*1`]:n*b9r!h"> <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="#X4nP3kM7vwQlH5y29U$"> <field name="VAR" id="tu2Wn;tRH##F1Gf[rSga">tailPolylines</field> </block> </value> <value name="AT"> <block type="math_round" id="cxCC+hi^s4gOFp*@O3^l"> <field name="OP">ROUNDDOWN</field> <value name="NUM"> <block type="math_arithmetic" id="^(lk`}vY]7:V!p4|r3X6"> <field name="OP">MULTIPLY</field> <value name="A"> <block type="variables_get" id="pub,Q_K`fLm(1X^1_lmw"> <field name="VAR" id="U@2]CRYaGs-?CE=SsQK9">tailFramesLength</field> </block> </value> <value name="B"> <block type="math_number" id="oX~W{FCVROL)XRFPSyCe"> <field name="NUM">0.66</field> </block> </value> </block> </value> </block> </value> </block> </value> <statement name="DO0"> <block type="variables_set" id="Z1y:8/c[if?Gr5BY%}Ac"> <field name="VAR" id="vxez[HG~S;n~s_,VmeBj">linesMesh4</field> <value name="VALUE"> <block type="bitbybit.draw.drawAny" id="UA]y,3qF$EY(FHa}.Re."> <value name="Entity"> <block type="lists_getIndex" id="{}0*4f/Bg#Nqoh`J+*ml"> <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="+vtA$^KsK0j1[aG(Wk9j"> <field name="VAR" id="tu2Wn;tRH##F1Gf[rSga">tailPolylines</field> </block> </value> <value name="AT"> <block type="math_round" id="c3TUie|d5u*cD!U*;,x1"> <field name="OP">ROUNDDOWN</field> <value name="NUM"> <block type="math_arithmetic" id="H^iSvaNjxE1.%ug8MTP]"> <field name="OP">MULTIPLY</field> <value name="A"> <block type="variables_get" id=".04ob=l25py`OdxQ#J4S"> <field name="VAR" id="U@2]CRYaGs-?CE=SsQK9">tailFramesLength</field> </block> </value> <value name="B"> <block type="math_number" id=".G)|K9Tvs::G6bmt^nbE"> <field name="NUM">0.66</field> </block> </value> </block> </value> </block> </value> </block> </value> <value name="Options"> <block type="bitbybit.draw.optionsSimple" id="MKWGY!*14:]X]R9VsH}+"> <value name="Colours"> <block type="colour_picker" id="?Vx:b6D=xoA#1RVHQRdl"> <field name="COLOUR">#ffffff</field> </block> </value> <value name="Size"> <block type="math_number" id=".eK}IUf%oyv?]*l=YlU9"> <field name="NUM">10</field> </block> </value> <value name="Opacity"> <block type="math_number" id="B|Z_Mj!OBD{@ejg@59cO"> <field name="NUM">0.7</field> </block> </value> <value name="Updatable"> <block type="logic_boolean" id="`2`RkQ7,{}?o}M!]g17f"> <field name="BOOL">TRUE</field> </block> </value> </block> </value> <value name="BabylonMesh"> <block type="variables_get" id="uql~GQ[8zoW5byRStANT"> <field name="VAR" id="vxez[HG~S;n~s_,VmeBj">linesMesh4</field> </block> </value> </block> </value> </block> </statement> <next> <block type="controls_if" id="[/L,G4aJG2L6u]t[O]{o"> <value name="IF0"> <block type="lists_getIndex" id="vf4@UZcjUDdNx@`4xY@8"> <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="dCV[5^!:{!)qc^tPRu`9"> <field name="VAR" id="tu2Wn;tRH##F1Gf[rSga">tailPolylines</field> </block> </value> <value name="AT"> <block type="math_round" id="pDslv[?ke*3oz}LiYR{n"> <field name="OP">ROUNDDOWN</field> <value name="NUM"> <block type="math_arithmetic" id="0d$N#[fPPYuV[Q_V=2iU"> <field name="OP">MULTIPLY</field> <value name="A"> <block type="variables_get" id="L1K/.2U{M`~_=0f]r%M)"> <field name="VAR" id="U@2]CRYaGs-?CE=SsQK9">tailFramesLength</field> </block> </value> <value name="B"> <block type="math_number" id="IEyVA:.*m!h0M])W$6Oe"> <field name="NUM">0.33</field> </block> </value> </block> </value> </block> </value> </block> </value> <statement name="DO0"> <block type="variables_set" id="rPt*7f-x4O4sYEEOU2Wh"> <field name="VAR" id=".c3t!|_N~OFn4h@v1N(v">linesMesh3</field> <value name="VALUE"> <block type="bitbybit.draw.drawAny" id="J|[+E)C@P0M%b8wR0!9n"> <value name="Entity"> <block type="lists_getIndex" id="W/t`KC+!CahQJQEA-okM"> <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="]i;RA4w/Zaa+_aFsm}MR"> <field name="VAR" id="tu2Wn;tRH##F1Gf[rSga">tailPolylines</field> </block> </value> <value name="AT"> <block type="math_round" id="|j?yutXYDI5-/Y]}[.uQ"> <field name="OP">ROUNDDOWN</field> <value name="NUM"> <block type="math_arithmetic" id="/a]1Z7;/p}_*^7KRJXO["> <field name="OP">MULTIPLY</field> <value name="A"> <block type="variables_get" id="8YjIk9|FxLi*tE}ZQ$c8"> <field name="VAR" id="U@2]CRYaGs-?CE=SsQK9">tailFramesLength</field> </block> </value> <value name="B"> <block type="math_number" id="Y@({PaitQ)vTdr(yn0-_"> <field name="NUM">0.33</field> </block> </value> </block> </value> </block> </value> </block> </value> <value name="Options"> <block type="bitbybit.draw.optionsSimple" id="[9;!?8g;bJ8v:p+4ZmS*"> <value name="Colours"> <block type="colour_picker" id="x28TpvV*el(oAZsnv5iA"> <field name="COLOUR">#ffffff</field> </block> </value> <value name="Size"> <block type="math_number" id=":%Yo2oVs*wa;GbVd6_qA"> <field name="NUM">10</field> </block> </value> <value name="Opacity"> <block type="math_number" id="(M$)2)gUsiO98p1JGxar"> <field name="NUM">0.5</field> </block> </value> <value name="Updatable"> <block type="logic_boolean" id="-^Ldw+*N@y#R|GL/IAZF"> <field name="BOOL">TRUE</field> </block> </value> </block> </value> <value name="BabylonMesh"> <block type="variables_get" id="W/,Rf{E;N$RJu5loG@0h"> <field name="VAR" id=".c3t!|_N~OFn4h@v1N(v">linesMesh3</field> </block> </value> </block> </value> </block> </statement> <next> <block type="controls_if" id="*|crP8pa_eHk{g=!mGwl"> <value name="IF0"> <block type="lists_getIndex" id="9foG:N8SIxqJ5G:9bkEW"> <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="!M*{*5#Ba9x._}AluQho"> <field name="VAR" id="tu2Wn;tRH##F1Gf[rSga">tailPolylines</field> </block> </value> <value name="AT"> <block type="math_number" id="Nucqr)Dk{gc)GuB5Kq)="> <field name="NUM">1</field> </block> </value> </block> </value> <statement name="DO0"> <block type="variables_set" id="Aqq6v;t=YvZ}e`A~W}w|"> <field name="VAR" id="HaI?Ay.oZNqjH(:sLd[a">linesMesh2</field> <value name="VALUE"> <block type="bitbybit.draw.drawAny" id="lF/qyMuI=VKbw`6-PXp_"> <value name="Entity"> <block type="lists_getIndex" id="K4M|+V65?r3$STj?inC9"> <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="Y33_DMOk)gb?kI~Jw_e%"> <field name="VAR" id="tu2Wn;tRH##F1Gf[rSga">tailPolylines</field> </block> </value> <value name="AT"> <block type="math_number" id="?:/3%QFH.ui4(X9JE1EQ"> <field name="NUM">1</field> </block> </value> </block> </value> <value name="Options"> <block type="bitbybit.draw.optionsSimple" id="k*#Nf`|o,HKA5{HWXKk1"> <value name="Colours"> <block type="colour_picker" id="sUx1U5qwXCI].)PbY]2o"> <field name="COLOUR">#ffffff</field> </block> </value> <value name="Size"> <block type="math_number" id="hL=1-,?JxISyKFtdWhr^"> <field name="NUM">10</field> </block> </value> <value name="Opacity"> <block type="math_number" id="LC7WQm1o=0O-Xuh`W7k6"> <field name="NUM">0.2</field> </block> </value> <value name="Updatable"> <block type="logic_boolean" id="5O;6y;_cG*D-jH6o2%/-"> <field name="BOOL">TRUE</field> </block> </value> </block> </value> <value name="BabylonMesh"> <block type="variables_get" id="-T/Kf20CyOH]mh@/Mciu"> <field name="VAR" id="HaI?Ay.oZNqjH(:sLd[a">linesMesh2</field> </block> </value> </block> </value> </block> </statement> <next> <block type="variables_set" id="$D-/R}Tg9$WW`zi-mUy2"> <field name="VAR" id="V#d9rRJJUTRCl?no)|68">linesMesh</field> <value name="VALUE"> <block type="bitbybit.draw.drawAny" id="1|c:DKY#kSkU2bndUrxm"> <value name="Entity"> <block type="variables_get" id="kjMKVyl^1QOul89V0Qg`"> <field name="VAR" id="je2p()I,OS;Nvy*e`BRy">gridPolylines</field> </block> </value> <value name="Options"> <block type="bitbybit.draw.optionsSimple" id="mlxBWID?pO%?@5QmQRv-"> <value name="Colours"> <block type="colour_picker" id=";[HDdvrDK?$2OV6{S*K:"> <field name="COLOUR">#ffffff</field> </block> </value> <value name="Size"> <block type="math_number" id="e7?0Dq$q|dUs*M:ZqY-%"> <field name="NUM">10</field> </block> </value> <value name="Opacity"> <block type="math_number" id="(eeu3AWia4zbCWMDH6DU"> <field name="NUM">1</field> </block> </value> <value name="Updatable"> <block type="logic_boolean" id=".VebQVP%j6h;.MD{J6No"> <field name="BOOL">TRUE</field> </block> </value> </block> </value> <value name="BabylonMesh"> <block type="variables_get" id="A#,I;nCNoJX}dhK@7}x;"> <field name="VAR" id="V#d9rRJJUTRCl?no)|68">linesMesh</field> </block> </value> </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> </xml>