<snapdata remixID="15138124"><project name="Save and restore state" app="Snap! 11.0.8, https://snap.berkeley.edu" version="2"><notes></notes><thumbnail>data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAKAAAAB4CAYAAAB1ovlvAAAD4UlEQVR4AeySO9IBQRhF+ye0AtuQi6QSlE3IrUJuFR6JVCS3DSuQKf4qVQLBPExPd9/p7wgo09Pd3z339F58IJCQQM/xgUBCAgiYED5XO4eAWJCUAAImxc/lCIgDSQnYFTApdi7/EEDADwl+kxBAwCTYufRDAAE/JPhNQgABk2Dn0g8BBPyQ4DcJAQRMgj3ppVKXI6BUHfaGQUB7nUslRkCpOuwNg4D2OpdKjIBSddgbBgHtdS6VOKqAUskZRoIAAkrUYHcIBLTbvURyBJSowe4QCGi3e4nkCChRg90hEDBK91xSRAABi8jwPAoBBIyCmUuKCCBgERmeRyGAgFEwc0kRAQQsIsPzKAQQMApmu5dUJUfAKkKsByWAgEHxcngVAQSsIsR6UAIIGBQvh1cRQMAqQqwHJYCAQfFyeBWBfAWsSs66BAEElKjB7hAIaLd7ieQIKFGD3SEQ0G73EskRUKIGu0MgYH7ddyoRAnaqrvyGzV7A0Wjkbrdbfs1lkih7AS+Xi1utVm42m7nFYuGWy6V7vV6Z1Nf9GNkLOBgM3GQyeTf1fD7d4/Fw8/n8LeR0OnWbzea9xlcaAtkLmAYrt9YlkL2A9/vdnc/nN49er+f6/b47HA7ueDy60+nk1uv1e42vNARaFTBNhPJbx+Ox2263b+H2+73b7Xbu7++vfBOr0QhkL+D1enXD4TAaUC76jUD2Av6Gg7djE0DA2MS574sAAn7h4E9sAggYmzj3fRFAwC8cTf+wrykBBGxKjn2tEEDAVjBySFMCCNiUHPtaIYCArWDkkKYEELApOfa1QgABW8Fo9xDf5AjoS5D9XgQQ0Asfm30JIKAvQfZ7EUBAL3xs9iWAgL4E2e9FAAG98LHZl0B3BfRNzn4JAggoUYPdIRDQbvcSyRFQoga7QyCg3e4lkiOgRA12h0DA7nWf1cQImFWd3QuDgN3rLKuJETCrOrsXBgG711lWEyNgVnV2LwwCdq+zrCb+ScCskhNGggACStRgdwgEtNu9RHIElKjB7hAIaLd7ieQIKFGD3SEQsFb3vBSKAAKGIsu5tQggYC1MvBSKAAKGIsu5tQggYC1MvBSKAAKGIsu5tQggYC1Mdl8KnRwBQxPm/FICCFiKh8XQBBAwNGHOLyWAgKV4WAxNAAFDE+b8UgIIWIqHxdAEdAUMnZzzJQggoEQNdodAQLvdSyRHQIka7A6BgHa7l0iOgBI12B0CAfW6NzURApqqWy8sAup1YmoiBDRVt15YBNTrxNRECGiqbr2wCKjXiamJvgQ0lZywEgQQUKIGu0MgoN3uJZIjoEQNdodAQLvdSyT/BwAA//8DB/ZrAAAABklEQVQDADd+ro/IcuH6AAAAAElFTkSuQmCC</thumbnail><scenes select="1"><scene name="Save and restore state"><notes></notes><hidden></hidden><headers></headers><code></code><blocks><block-definition s="save state %&apos;x&apos; %&apos;on-load&apos;" type="reporter" category="operators"><comment w="224" collapsed="false">Saves a state to be restored by the RESTORE STATE block. Clicking the first arrowhead will open up the states to save which you can do by dragging the blocks you want in the input slot, or typing a variable name in the slot. When empty, it will by default save the state of POSITION, DIRECTION, PEN DOWN?, PEN COLOR, and PEN SIZE, for turtle graphics. Clicking the second arrowhead will expand the optional on-load parameter, which is a script run when you load the state. The state also remembers the context of its call, so if Sprite A saves and Sprite B restores Sprite A&apos;s save, Sprite A is the one affected.</comment><header></header><code></code><translations></translations><inputs><input type="%mult%anyUE" irreplaceable="true"></input><input type="%mult%cmdRing" irreplaceable="true" expand="on load" max="1"></input></inputs><script><block s="doDeclareVariables"><list><l>caller</l></list></block><block s="doSetVar"><l>caller</l><block s="reportEnvironment"><l><option>caller</option></l></block></block><block s="doIf"><block s="reportListIsEmpty"><block var="x"/></block><script><block s="doSetVar"><l>x</l><block s="reportNewList"><list><block s="reifyReporter"><autolambda><block s="getPosition"></block></autolambda><list></list></block><block s="reifyReporter"><autolambda><block s="direction"></block></autolambda><list></list></block><block s="reifyPredicate"><autolambda><block s="getPenDown"></block></autolambda><list></list></block><block s="reifyReporter"><autolambda><block s="getPenAttribute"><l><option>color</option></l></block></autolambda><list></list></block><block s="reifyReporter"><autolambda><block s="getPenAttribute"><l><option>size</option></l></block></autolambda><list></list></block></list></block></block></script><list></list></block><block s="doReport"><block s="reportConcatenatedLists"><list><block s="reportMap"><block s="reifyReporter"><autolambda><block s="reportIfElse"><block s="reportVariadicGreaterThan"><list><block s="reportBlockAttribute"><l><option>category</option></l><block s="reifyReporter"><script></script><list></list></block></block><l>0</l></list></block><block s="reportNewList"><list><l></l><block s="evaluate"><block s="reifyReporter"><script></script><list></list></block><list></list></block></list></block><block s="evaluate"><block s="reifyScript"><script><block s="doDeclareVariables"><list><l>called</l></list></block><block s="doSetVar"><l>called</l><block s="evaluate"><block s="reifyReporter"><script></script><list></list></block><list></list></block></block><block s="doReport"><block s="reportNewList"><list><block s="reportAttributeOf"><block s="reportJoinWords"><list><block s="reifyReporter"><autolambda><block var=" "/></autolambda><list></list></block><block var="called"/></list></block><block var="caller"/></block><block s="reportAttributeOf"><block var="called"/><block var="caller"/></block></list></block></block></script><list></list></block><list><l></l></list></block></block></autolambda><list></list></block><block var="x"/></block><block s="reportNewList"><list><block s="reportNewList"><list><l>on load</l><block s="reportAttributeOf"><block s="reportIfElse"><block s="reportListIsEmpty"><block var="on-load"/></block><block s="reifyReporter"><script></script><list></list></block><block s="reportListItem"><l>1</l><block var="on-load"/></block></block><block s="reportEnvironment"><l><option>caller</option></l></block></block></list></block></list></block></list></block></block></script></block-definition><block-definition s="restore state %&apos;state&apos;" type="command" category="operators"><comment w="241" collapsed="false">Restores a state created by the SAVE STATE block, by putting each saved attribute to its value when the state was saved. Usually you&apos;ll want to save the state into a variable, but since states are first-class, you can input the state as a message broadcast with data, put it in a list of multiple states, input it into a procedure, etc, and use this block to restore the state.</comment><header></header><code></code><translations></translations><inputs><input type="%n" readonly="true" initial="1">state</input></inputs><script><block s="doDeclareVariables"><list><l>dict</l><l>match</l><l>on load</l><l>run without altering pen</l></list></block><block s="doSetVar"><l>run without altering pen</l><block s="reifyScript"><script><block s="doDeclareVariables"><list><l>old pen down</l></list></block><block s="doSetVar"><l>old pen down</l><block s="getPenDown"></block></block><block s="up"></block><block s="doRun"><block var="script"/><list><block var="x"/></list></block><block s="doIf"><block var="old pen down"/><script><block s="down"></block></script><list></list></block></script><list><l>script</l><l>x</l></list></block></block><block s="doSetVar"><l>dict</l><block s="reportNewList"><list><block s="reportNewList"><list><block s="reifyReporter"><autolambda><block s="xPosition"></block></autolambda><list></list></block><block s="reifyScript"><script><block s="doRun"><block var="run without altering pen"/><list><block s="reifyScript"><script><block s="setXPosition"><l></l></block></script><list></list></block><l></l></list></block></script><list></list></block></list></block><block s="reportNewList"><list><block s="reifyReporter"><autolambda><block s="yPosition"></block></autolambda><list></list></block><block s="reifyScript"><script><block s="doRun"><block var="run without altering pen"/><list><block s="reifyScript"><script><block s="setYPosition"><l></l></block></script><list></list></block><l></l></list></block></script><list></list></block></list></block><block s="reportNewList"><list><block s="reifyReporter"><autolambda><block s="getPosition"></block></autolambda><list></list></block><block s="reifyScript"><script><block s="doRun"><block var="run without altering pen"/><list><block s="reifyScript"><script><block s="gotoXY"><block s="reportListItem"><l>1</l><l/></block><block s="reportListItem"><l>2</l><l/></block></block></script><list></list></block><l></l></list></block></script><list></list></block></list></block><block s="reportNewList"><list><block s="reifyReporter"><autolambda><block s="direction"></block></autolambda><list></list></block><block s="reifyScript"><script><block s="setHeading"><l></l></block></script><list></list></block></list></block><block s="reportNewList"><list><block s="reifyReporter"><autolambda><block s="getCostumeIdx"></block></autolambda><list></list></block><block s="reifyScript"><script><block s="doSwitchToCostume"><block s="reportVariadicProduct"><list><l></l><l>1</l></list></block></block></script><list></list></block></list></block><block s="reportNewList"><list><block s="reifyReporter"><autolambda><block s="getScale"></block></autolambda><list></list></block><block s="reifyScript"><script><block s="setScale"><l></l></block></script><list></list></block></list></block><block s="reportNewList"><list><block s="reifyPredicate"><autolambda><block s="reportShown"></block></autolambda><list></list></block><block s="reifyScript"><script><block s="doIfElse"><l/><script><block s="show"></block></script><script><block s="hide"></block></script></block></script><list></list></block></list></block><block s="reportNewList"><list><block s="reifyReporter"><autolambda><block s="getEffect"><l><option>color</option></l></block></autolambda><list></list></block><block s="reifyScript"><script><block s="setEffect"><l><option>color</option></l><l></l></block></script><list></list></block></list></block><block s="reportNewList"><list><block s="reifyReporter"><autolambda><block s="getEffect"><l><option>saturation</option></l></block></autolambda><list></list></block><block s="reifyScript"><script><block s="setEffect"><l><option>saturation</option></l><l></l></block></script><list></list></block></list></block><block s="reportNewList"><list><block s="reifyReporter"><autolambda><block s="getEffect"><l><option>brightness</option></l></block></autolambda><list></list></block><block s="reifyScript"><script><block s="setEffect"><l><option>brightness</option></l><l></l></block></script><list></list></block></list></block><block s="reportNewList"><list><block s="reifyReporter"><autolambda><block s="getEffect"><l><option>ghost</option></l></block></autolambda><list></list></block><block s="reifyScript"><script><block s="setEffect"><l><option>ghost</option></l><l></l></block></script><list></list></block></list></block><block s="reportNewList"><list><block s="reifyReporter"><autolambda><block s="getEffect"><l><option>fisheye</option></l></block></autolambda><list></list></block><block s="reifyScript"><script><block s="setEffect"><l><option>fisheye</option></l><l></l></block></script><list></list></block></list></block><block s="reportNewList"><list><block s="reifyReporter"><autolambda><block s="getEffect"><l><option>whirl</option></l></block></autolambda><list></list></block><block s="reifyScript"><script><block s="setEffect"><l><option>whirl</option></l><l></l></block></script><list></list></block></list></block><block s="reportNewList"><list><block s="reifyReporter"><autolambda><block s="getEffect"><l><option>pixelate</option></l></block></autolambda><list></list></block><block s="reifyScript"><script><block s="setEffect"><l><option>pixelate</option></l><l></l></block></script><list></list></block></list></block><block s="reportNewList"><list><block s="reifyReporter"><autolambda><block s="getEffect"><l><option>mosaic</option></l></block></autolambda><list></list></block><block s="reifyScript"><script><block s="setEffect"><l><option>mosaic</option></l><l></l></block></script><list></list></block></list></block><block s="reportNewList"><list><block s="reifyReporter"><autolambda><block s="getEffect"><l><option>negative</option></l></block></autolambda><list></list></block><block s="reifyScript"><script><block s="setEffect"><l><option>negative</option></l><l></l></block></script><list></list></block></list></block><block s="reportNewList"><list><block s="reifyReporter"><autolambda><block s="getEffect"><l><option>duplicate</option></l></block></autolambda><list></list></block><block s="reifyScript"><script><block s="setEffect"><l><option>duplicate</option></l><l></l></block></script><list></list></block></list></block><block s="reportNewList"><list><block s="reifyReporter"><autolambda><block s="getEffect"><l><option>comic</option></l></block></autolambda><list></list></block><block s="reifyScript"><script><block s="setEffect"><l><option>comic</option></l><l></l></block></script><list></list></block></list></block><block s="reportNewList"><list><block s="reifyReporter"><autolambda><block s="getEffect"><l><option>confetti</option></l></block></autolambda><list></list></block><block s="reifyScript"><script><block s="setEffect"><l><option>confetti</option></l><l></l></block></script><list></list></block></list></block><block s="reportNewList"><list><block s="reifyReporter"><autolambda><block s="getTempo"></block></autolambda><list></list></block><block s="reifyScript"><script><block s="doSetTempo"><l></l></block></script><list></list></block></list></block><block s="reportNewList"><list><block s="reifyReporter"><autolambda><block s="getPan"></block></autolambda><list></list></block><block s="reifyScript"><script><block s="setPan"><l></l></block></script><list></list></block></list></block><block s="reportNewList"><list><block s="reifyReporter"><autolambda><block s="getVolume"></block></autolambda><list></list></block><block s="reifyScript"><script><block s="setVolume"><l></l></block></script><list></list></block></list></block><block s="reportNewList"><list><block s="reifyReporter"><autolambda><block s="getPenAttribute"><l><option>hue</option></l></block></autolambda><list></list></block><block s="reifyScript"><script><block s="setPenColorDimension"><l><option>hue</option></l><l>50</l></block></script><list></list></block></list></block><block s="reportNewList"><list><block s="reifyReporter"><autolambda><block s="getPenAttribute"><l><option>saturation</option></l></block></autolambda><list></list></block><block s="reifyScript"><script><block s="setPenColorDimension"><l><option>saturation</option></l><l>50</l></block></script><list></list></block></list></block><block s="reportNewList"><list><block s="reifyReporter"><autolambda><block s="getPenAttribute"><l><option>brightness</option></l></block></autolambda><list></list></block><block s="reifyScript"><script><block s="setPenColorDimension"><l><option>brightness</option></l><l>50</l></block></script><list></list></block></list></block><block s="reportNewList"><list><block s="reifyReporter"><autolambda><block s="getPenAttribute"><l><option>transparency</option></l></block></autolambda><list></list></block><block s="reifyScript"><script><block s="setPenColorDimension"><l><option>transparency</option></l><l>50</l></block></script><list></list></block></list></block><block s="reportNewList"><list><block s="reifyReporter"><autolambda><block s="getPenAttribute"><l><option>r-g-b-a</option></l></block></autolambda><list></list></block><block s="reifyScript"><script><block s="setPenColorDimension"><l><option>r-g-b(-a)</option></l><l>50</l></block></script><list></list></block></list></block><block s="reportNewList"><list><block s="reifyReporter"><autolambda><block s="getPenAttribute"><l><option>color</option></l></block></autolambda><list></list></block><block s="reifyScript"><script><block s="setColor"><block s="reportMonadic"><l><option>id</option></l><l></l></block></block></script><list></list></block></list></block><block s="reportNewList"><list><block s="reifyReporter"><autolambda><block s="getPenAttribute"><l><option>size</option></l></block></autolambda><list></list></block><block s="reifyScript"><script><block s="setSize"><l></l></block></script><list></list></block></list></block><block s="reportNewList"><list><block s="reifyPredicate"><autolambda><block s="getPenDown"></block></autolambda><list></list></block><block s="reifyScript"><script><block s="doIfElse"><l/><script><block s="down"></block></script><script><block s="up"></block></script></block></script><list></list></block></list></block><block s="reportNewList"><list><block s="reifyReporter"><autolambda><block s="reportGet"><l><option>costume</option></l></block></autolambda><list></list></block><block s="reifyScript"><script><block s="doSwitchToCostume"><l></l></block></script><list></list></block></list></block><block s="reportNewList"><list><block s="reifyReporter"><autolambda><block s="reportGet"><l><option>costumes</option></l></block></autolambda><list></list></block><block s="reifyScript"><script><block s="doDeleteFromList"><l><option>all</option></l><block s="reportGet"><l><option>costumes</option></l></block></block><block s="doForEach"><l>item</l><l/><script><block s="doAddToList"><block var="item"/><block s="reportGet"><l><option>costumes</option></l></block></block></script></block></script><list></list></block></list></block><block s="reportNewList"><list><block s="reifyReporter"><autolambda><block s="reportGet"><l><option>sounds</option></l></block></autolambda><list></list></block><block s="reifyScript"><script><block s="doDeleteFromList"><l><option>all</option></l><block s="reportGet"><l><option>sounds</option></l></block></block><block s="doForEach"><l>item</l><l/><script><block s="doAddToList"><block var="item"/><block s="reportGet"><l><option>sounds</option></l></block></block></script></block></script><list></list></block></list></block></list></block></block><block s="doWarp"><script><block s="doForEach"><l>entry</l><block s="reportIfElse"><block s="reportIsA"><block var="state"/><l><option>list</option></l></block><block var="state"/><block s="reportNewList"><list></list></block></block><script><block s="doIfElse"><block s="reportVariadicEquals"><list><block s="reportListItem"><l>1</l><block var="entry"/></block><l>on load</l></list></block><script><block s="doSetVar"><l>on load</l><block s="reportListItem"><l>2</l><block var="entry"/></block></block></script><script><block s="doSetVar"><l>match</l><block s="reportCallCC"><block s="reifyReporter"><autolambda><block s="reportFindFirst"><block s="reifyScript"><script><block s="doIf"><block s="reportVariadicEquals"><list><block s="reportListItem"><l>1</l><block var="entry"/></block><block s="reportListItem"><l>1</l><block var="dict entry"/></block></list></block><script><block s="doReport"><block s="evaluate"><block var="escape"/><list><block s="reportListItem"><l>2</l><block var="dict entry"/></block></list></block></block></script><list></list></block><block s="doReport"><block s="reportBoolean"><l><bool>false</bool></l></block></block></script><list><l>dict entry</l></list></block><block var="dict"/></block></autolambda><list><l>escape</l></list></block></block></block><block s="doIfElse"><block s="reportIsA"><block var="match"/><l><option>script</option></l></block><script><block s="doTellTo"><block s="reportListItem"><l>1</l><block var="entry"/></block><block var="match"/><list><block s="reportListItem"><l>2</l><block var="entry"/></block></list></block></script><script><block s="doTellTo"><block s="reportListItem"><l>1</l><block var="entry"/></block><block s="reifyScript"><script><block s="doSetVar"><l></l><l></l></block></script><list></list></block><block var="entry"/></block></script></block></script></block></script></block></script></block><block s="doTellTo"><block s="reportListItem"><l>1</l><block var="entry"/></block><block var="match"/><list><block s="reportListItem"><l>2</l><block var="entry"/></block></list></block><block s="doRun"><block var="on load"/><list></list></block></script><scripts><script x="549" y="1563.7499999999977"><block s="receiveSlotEvent"><l>state</l><l><option>edited</option></l></block><block s="doSetSlot"><l>state</l><l>state</l></block></script></scripts></block-definition><block-definition s="-- %&apos;n&apos;" type="reporter" category="variables"><header></header><code></code><translations></translations><inputs><input type="%anyUE" readonly="true"></input></inputs><script><block s="doRun"><block s="reifyScript"><script><block s="doChangeVar"><l></l><l>-1</l></block></script><list></list></block><list><block var="n"/></list></block><block s="doReport"><block s="evaluate"><block var="n"/><list></list></block></block></script></block-definition><block-definition s="animate setter %&apos;setter&apos; getter %&apos;getter&apos; delta %&apos;delta&apos; over %&apos;duration&apos; secs easing %&apos;easing&apos;" type="command" category="control"><header></header><code></code><translations>de:animiere Setter _ Getter _ Delta _ über _ Sek. beschleunigt _&#xD;ca:modifica setter _ i getter _ amb delta _ en _ segons de forma _&#xD;pt:anima com modificador _ e inspector _ de _ em _ s de forma _&#xD;pl:animuj setter _ getter _ delta _ przez _ s przyspieszając _&#xD;</translations><inputs><input type="%cmdRing"></input><input type="%repRing"></input><input type="%n">50</input><input type="%n">1</input><input type="%repRing"></input></inputs><script><block s="doDeclareVariables"><list><l>end time</l><l>destination</l></list></block><block s="doSetVar"><l>end time</l><block s="reportVariadicSum"><list><block s="reportDate"><l><option>time in milliseconds</option></l></block><block s="reportVariadicProduct"><list><block var="duration"/><l>1000</l></list></block></list></block></block><block s="doSetVar"><l>destination</l><block s="reportVariadicSum"><list><block s="evaluate"><block var="getter"/><list></list></block><block var="delta"/></list></block></block><block s="doUntil"><block s="reportVariadicGreaterThan"><list><block s="reportDate"><l><option>time in milliseconds</option></l></block><block var="end time"/></list></block><script><block s="doRun"><block var="setter"/><list><block s="reportDifference"><block var="destination"/><block s="reportVariadicProduct"><list><block var="delta"/><block s="evaluate"><block var="easing"/><list><block s="reportQuotient"><block s="reportDifference"><block var="end time"/><block s="reportDate"><l><option>time in milliseconds</option></l></block></block><block s="reportVariadicProduct"><list><block var="duration"/><l>1000</l></list></block></block></list></block></list></block></block></list></block></script></block><block s="doRun"><block var="setter"/><list><block var="destination"/></list></block></script></block-definition><block-definition s="$𝜋" type="reporter" category="operators" space="true"><comment x="0" y="0" w="90" collapsed="false">Reports Pi&#xD;(&#xD;&#xD;Circumfrence&#xD;------------------&#xD;Diameter &#xD;&#xD;of any circle)</comment><header></header><code></code><translations></translations><inputs></inputs><script><block s="doReport"><l>3.141592653589793</l></block></script></block-definition><block-definition s="degrees %&apos;radians&apos;" type="reporter" category="operators"><header></header><code></code><translations>de:Grad _&#xD;ca:graus de _ radians&#xD;pt:_ radianos em graus&#xD;pl:stopnie _&#xD;</translations><inputs><input type="%n">0.5</input></inputs><script><block s="doReport"><block s="reportQuotient"><block s="reportVariadicProduct"><list><block var="radians"/><l>180</l></list></block><custom-block s="$𝜋"></custom-block></block></block></script></block-definition><block-definition s="error %&apos;msg&apos;" type="command" category="control"><header></header><code></code><translations>de:Fehler _&#xD;pt:assinala o erro _&#xD;pl:błąd _&#xD;</translations><inputs><input type="%s"></input></inputs><script><block s="doApplyExtension"><l>err_error(msg)</l><list><block var="msg"/></list></block></script></block-definition><block-definition s="animate %&apos;attribute&apos; by %&apos;delta&apos; in %&apos;duration&apos; secs easing %&apos;easing&apos;" type="command" category="motion"><header></header><code></code><translations>de:animiere _ um _ in _ Sek. beschleunigt: _&#xD;ca:modifica _ amb _ en _ segons de forma _&#xD;pt:anima _ de _ em _ s de forma _&#xD;pl:animuj _ o _ przez _ s przyspieszając _&#xD;</translations><inputs><input type="%s" readonly="true">x position<options>steps&#xD;x position&#xD;y position&#xD;direction&#xD;size&#xD;ghost effect&#xD;color effect&#xD;saturation effect&#xD;brightness effect&#xD;fisheye effect&#xD;whirl effect&#xD;pixelate effect&#xD;mosaic effect&#xD;negative effect&#xD;tempo&#xD;volume&#xD;balance</options></input><input type="%n">50</input><input type="%n">1</input><input type="%s" readonly="true">linear<options>linear&#xD;quadratic={&#xD;quadratic-in&#xD;quadratic-out&#xD;quadratic-in-out&#xD;}&#xD;cubic={&#xD;cubic-in&#xD;cubic-out&#xD;cubic-in-out&#xD;}&#xD;quart={&#xD;quart-in&#xD;quart-out&#xD;quart-in-out&#xD;}&#xD;sinusoidal={&#xD;sine-in&#xD;sine-out&#xD;sine-in-out&#xD;}&#xD;elastic</options></input></inputs><script><block s="doDeclareVariables"><list><l>accessors</l><l>func</l></list></block><block s="doIfElse"><block s="reportVariadicEquals"><list><block var="attribute"/><l>steps</l></list></block><script><block s="doSetVar"><l>accessors</l><block s="reportNewList"><list><block s="reifyScript"><script><block s="doGotoObject"><l></l></block></script><list></list></block><block s="reifyReporter"><autolambda><block s="getPosition"></block></autolambda><list></list></block></list></block></block><block s="doSetVar"><l>delta</l><block s="reportVariadicProduct"><list><block var="delta"/><block s="reportNewList"><list><block s="reportMonadic"><l><option>sin</option></l><block s="direction"></block></block><block s="reportMonadic"><l><option>cos</option></l><block s="direction"></block></block></list></block></list></block></block></script><script><block s="doSetVar"><l>accessors</l><block s="reportIfElse"><block s="reportVariadicEquals"><list><block var="attribute"/><l>x position</l></list></block><block s="reportNewList"><list><block s="reifyScript"><script><block s="setXPosition"><l></l></block></script><list></list></block><block s="reifyReporter"><autolambda><block s="xPosition"></block></autolambda><list></list></block></list></block><block s="reportIfElse"><block s="reportVariadicEquals"><list><block var="attribute"/><l>y position</l></list></block><block s="reportNewList"><list><block s="reifyScript"><script><block s="setYPosition"><l></l></block></script><list></list></block><block s="reifyReporter"><autolambda><block s="yPosition"></block></autolambda><list></list></block></list></block><block s="reportIfElse"><block s="reportVariadicEquals"><list><block var="attribute"/><l>direction</l></list></block><block s="reportNewList"><list><block s="reifyScript"><script><block s="setHeading"><l></l></block></script><list></list></block><block s="reifyReporter"><autolambda><block s="direction"></block></autolambda><list></list></block></list></block><block s="reportIfElse"><block s="reportVariadicEquals"><list><block var="attribute"/><l>size</l></list></block><block s="reportNewList"><list><block s="reifyScript"><script><block s="setScale"><l></l></block></script><list></list></block><block s="reifyReporter"><autolambda><block s="getScale"></block></autolambda><list></list></block></list></block><block s="reportIfElse"><block s="reportVariadicEquals"><list><block var="attribute"/><l>tempo</l></list></block><block s="reportNewList"><list><block s="reifyScript"><script><block s="doSetTempo"><l></l></block></script><list></list></block><block s="reifyReporter"><autolambda><block s="getTempo"></block></autolambda><list></list></block></list></block><block s="reportIfElse"><block s="reportVariadicEquals"><list><block var="attribute"/><l>volume</l></list></block><block s="reportNewList"><list><block s="reifyScript"><script><block s="setVolume"><l></l></block></script><list></list></block><block s="reifyReporter"><autolambda><block s="getVolume"></block></autolambda><list></list></block></list></block><block s="reportIfElse"><block s="reportVariadicEquals"><list><block var="attribute"/><l>balance</l></list></block><block s="reportNewList"><list><block s="reifyScript"><script><block s="setPan"><l></l></block></script><list></list></block><block s="reifyReporter"><autolambda><block s="getPan"></block></autolambda><list></list></block></list></block><block s="reportNewList"><list><block s="reifyScript"><script><block s="setEffect"><block s="reportListItem"><l>1</l><block s="reportTextSplit"><block var="attribute"/><l> </l></block></block><l></l></block></script><list></list></block><block s="reifyReporter"><autolambda><block s="getEffect"><block s="reportListItem"><l>1</l><block s="reportTextSplit"><block var="attribute"/><l> </l></block></block></block></autolambda><list></list></block></list></block></block></block></block></block></block></block></block></block></script></block><block s="doIfElse"><block s="reportIsA"><block var="easing"/><l><option>script</option></l></block><script><block s="doSetVar"><l>func</l><block var="easing"/></block></script><script><block s="doSetVar"><l>func</l><custom-block s="easing %txt"><block var="easing"/></custom-block></block></script></block><custom-block s="animate setter %cmdRing getter %repRing delta %n over %n secs easing %repRing"><block s="reportListItem"><l>1</l><block var="accessors"/></block><block s="reportListItem"><l>2</l><block var="accessors"/></block><block var="delta"/><block var="duration"/><block var="func"/></custom-block></script></block-definition><block-definition s="easing %&apos;choice&apos;" type="reporter" category="operators"><header></header><code></code><translations>de:Beschleunigung _&#xD;ca:de forma _&#xD;pt:a forma _&#xD;pl:przyspieszenie _&#xD;</translations><inputs><input type="%txt" readonly="true">linear<options>linear&#xD;quadratic={&#xD;quadratic-in&#xD;quadratic-out&#xD;quadratic-in-out&#xD;}&#xD;cubic={&#xD;cubic-in&#xD;cubic-out&#xD;cubic-in-out&#xD;}&#xD;quart={&#xD;quart-in&#xD;quart-out&#xD;quart-in-out&#xD;}&#xD;sinusoidal={&#xD;sine-in&#xD;sine-out&#xD;sine-in-out&#xD;}&#xD;sigmoid&#xD;elastic</options></input></inputs><script><block s="doIf"><block s="reportVariadicEquals"><list><block var="choice"/><l>linear</l></list></block><script><block s="doReport"><block s="reifyReporter"><autolambda><block s="reportMonadic"><l><option>id</option></l><l></l></block></autolambda><list></list></block></block></script><list><block s="reportVariadicEquals"><list><block var="choice"/><l>quadratic-out</l></list></block><script><block s="doReport"><block s="reifyReporter"><autolambda><block s="reportVariadicProduct"><list><l></l><l></l></list></block></autolambda><list></list></block></block></script><block s="reportVariadicEquals"><list><block var="choice"/><l>quadratic-in</l></list></block><script><block s="doReport"><block s="reifyReporter"><autolambda><block s="reportVariadicProduct"><list><l></l><block s="reportDifference"><l>2</l><l></l></block></list></block></autolambda><list></list></block></block></script><block s="reportVariadicEquals"><list><block var="choice"/><l>quadratic-in-out</l></list></block><script><block s="doReport"><block s="reifyReporter"><autolambda><block s="reportIfElse"><block s="reportVariadicLessThan"><list><l></l><l>.5</l></list></block><block s="reportVariadicProduct"><list><l>2</l><block s="reportVariadicProduct"><list><l></l><l></l></list></block></list></block><block s="reportDifference"><block s="reportVariadicProduct"><list><block s="reportDifference"><l>4</l><block s="reportVariadicProduct"><list><l>2</l><l></l></list></block></block><l></l></list></block><l>1</l></block></block></autolambda><list></list></block></block></script><block s="reportVariadicEquals"><list><block var="choice"/><l>cubic-out</l></list></block><script><block s="doReport"><block s="reifyReporter"><autolambda><block s="reportVariadicProduct"><list><l></l><block s="reportVariadicProduct"><list><l></l><l></l></list></block></list></block></autolambda><list></list></block></block></script><block s="reportVariadicEquals"><list><block var="choice"/><l>cubic-in</l></list></block><script><block s="doReport"><block s="reifyReporter"><autolambda><block s="reportVariadicSum"><list><block s="reportVariadicProduct"><list><block s="reportVariadicProduct"><list><custom-block s="-- %anyUE"><block var="t"/></custom-block><block var="t"/></list></block><block var="t"/></list></block><l>1</l></list></block></autolambda><list><l>t</l></list></block></block></script><block s="reportVariadicEquals"><list><block var="choice"/><l>cubic-in-out</l></list></block><script><block s="doReport"><block s="reifyReporter"><autolambda><block s="reportIfElse"><block s="reportVariadicLessThan"><list><l></l><l>.5</l></list></block><block s="reportVariadicProduct"><list><l>4</l><block s="reportVariadicProduct"><list><l></l><block s="reportVariadicProduct"><list><l></l><l></l></list></block></list></block></list></block><block s="reportVariadicSum"><list><block s="reportVariadicProduct"><list><block s="reportVariadicProduct"><list><block s="reportDifference"><l></l><l>1</l></block><block s="reportDifference"><block s="reportVariadicProduct"><list><l>2</l><l></l></list></block><l>2</l></block></list></block><block s="reportDifference"><block s="reportVariadicProduct"><list><l>2</l><l></l></list></block><l>2</l></block></list></block><l>1</l></list></block></block></autolambda><list></list></block></block></script><block s="reportVariadicEquals"><list><block var="choice"/><l>quart-out</l></list></block><script><block s="doReport"><block s="reifyReporter"><autolambda><block s="reportVariadicProduct"><list><l></l><block s="reportVariadicProduct"><list><l></l><block s="reportVariadicProduct"><list><l></l><l></l></list></block></list></block></list></block></autolambda><list></list></block></block></script><block s="reportVariadicEquals"><list><block var="choice"/><l>quart-in</l></list></block><script><block s="doReport"><block s="reifyReporter"><autolambda><block s="reportDifference"><l>1</l><block s="reportVariadicProduct"><list><custom-block s="-- %anyUE"><block var="t"/></custom-block><block s="reportVariadicProduct"><list><block var="t"/><block s="reportVariadicProduct"><list><block var="t"/><block var="t"/></list></block></list></block></list></block></block></autolambda><list><l>t</l></list></block></block></script><block s="reportVariadicEquals"><list><block var="choice"/><l>quart-in-out</l></list></block><script><block s="doReport"><block s="reifyReporter"><autolambda><block s="reportIfElse"><block s="reportVariadicLessThan"><list><l></l><l>.5</l></list></block><block s="reportVariadicProduct"><list><l>8</l><block s="reportVariadicProduct"><list><l></l><block s="reportVariadicProduct"><list><l></l><block s="reportVariadicProduct"><list><l></l><l></l></list></block></list></block></list></block></list></block><block s="evaluate"><block s="reifyReporter"><autolambda><block s="reportDifference"><l>1</l><block s="reportVariadicProduct"><list><l>8</l><block s="reportVariadicProduct"><list><custom-block s="-- %anyUE"><block var="t"/></custom-block><block s="reportVariadicProduct"><list><block var="t"/><block s="reportVariadicProduct"><list><block var="t"/><block var="t"/></list></block></list></block></list></block></list></block></block></autolambda><list><l>t</l></list></block><list><l></l></list></block></block></autolambda><list></list></block></block></script><block s="reportVariadicEquals"><list><block var="choice"/><l>sine-out</l></list></block><script><block s="doReport"><block s="reifyReporter"><autolambda><block s="reportDifference"><l>1</l><block s="reportMonadic"><l><option>sin</option></l><block s="reportVariadicSum"><list><l>90</l><block s="reportVariadicProduct"><list><l></l><l>90</l></list></block></list></block></block></block></autolambda><list></list></block></block></script><block s="reportVariadicEquals"><list><block var="choice"/><l>sine-in</l></list></block><script><block s="doReport"><block s="reifyReporter"><autolambda><block s="reportMonadic"><l><option>sin</option></l><block s="reportVariadicProduct"><list><l></l><l>90</l></list></block></block></autolambda><list></list></block></block></script><block s="reportVariadicEquals"><list><block var="choice"/><l>sine-in-out</l></list></block><script><block s="doReport"><block s="reifyReporter"><autolambda><block s="reportQuotient"><block s="reportDifference"><l>1</l><block s="reportMonadic"><l><option>cos</option></l><block s="reportVariadicProduct"><list><l></l><l>180</l></list></block></block></block><l>2</l></block></autolambda><list></list></block></block></script><block s="reportVariadicEquals"><list><block var="choice"/><l>sigmoid</l></list></block><script><block s="doReport"><block s="reifyReporter"><autolambda><block s="reportQuotient"><l>1</l><block s="reportVariadicSum"><list><l>1</l><block s="reportMonadic"><l><option>e^</option></l><block s="reportMonadic"><l><option>neg</option></l><block s="reportDifference"><block s="reportVariadicProduct"><list><l></l><l>20</l></list></block><l>10</l></block></block></block></list></block></block></autolambda><list></list></block></block></script><block s="reportVariadicEquals"><list><block var="choice"/><l>elastic</l></list></block><script><block s="doReport"><block s="reifyScript"><script><block s="doDeclareVariables"><list><l>p</l></list></block><block s="doSetVar"><l>p</l><l>0.3</l></block><block s="doReport"><block s="reportVariadicSum"><list><block s="reportVariadicProduct"><list><block s="reportPower"><l>2</l><block s="reportVariadicProduct"><list><l>-10</l><l></l></list></block></block><block s="reportMonadic"><l><option>sin</option></l><custom-block s="degrees %n"><block s="reportVariadicProduct"><list><block s="reportDifference"><l></l><block s="reportQuotient"><block var="p"/><l>4</l></block></block><block s="reportQuotient"><block s="reportVariadicProduct"><list><l>2</l><custom-block s="$𝜋"></custom-block></list></block><block var="p"/></block></list></block></custom-block></block></list></block><l>1</l></list></block></block></script><list></list></block></block></script></list></block><custom-block s="error %s"><block s="reportJoinWords"><list><l>unknown easing function "</l><block var="choice"/><l>"</l></list></block></custom-block></script></block-definition><block-definition s="do in parallel and wait %&apos;actions&apos;" type="command" category="control" space="true"><comment x="0" y="0" w="238.66666666666666" collapsed="false">Accepts any number of scripts as inputs.  Launches a separate thread for each of them, so they are done in parallel, then waits for them all to complete.&#xD;&#xD;This doesn&apos;t change how the Snap! scheduler works; the threads are not truly asynchronous. And there is no increase in speed.  Rather, the point of this block is to allow starting synchronized but independent scripts.</comment><header></header><code></code><translations>pt:executa _ em paralelo e espera&#xD;ca:executa en paral·lel _ i espera&#xD;pl:wykonaj równolegle _ i czekaj&#xD;</translations><inputs><input type="%mult%cs" irreplaceable="true" initial="1"></input></inputs><script><block s="doDeclareVariables"><list><l>threads</l></list></block><block s="doSetVar"><l>threads</l><block s="reportMap"><block s="reifyScript"><script><block s="doDeclareVariables"><list><l>is running?</l></list></block><block s="doSetVar"><l>is running?</l><block s="reportBoolean"><l><bool>true</bool></l></block></block><block s="fork"><block s="reifyScript"><script><block s="doRun"><block var="each script"/><list></list></block><block s="doSetVar"><l>is running?</l><block s="reportBoolean"><l><bool>false</bool></l></block></block></script><list></list></block><list></list></block><block s="doReport"><block s="reifyReporter"><autolambda><block var="is running?"/></autolambda><list></list></block></block></script><list><l>each script</l></list></block><block var="actions"/></block></block><block s="doWaitUntil"><block s="reportListIsEmpty"><block s="reportKeep"><block s="reifyPredicate"><autolambda><block s="evaluate"><block var="test"/><list></list></block></autolambda><list><l>test</l></list></block><block var="threads"/></block></block></block></script></block-definition></blocks><primitives></primitives><stage name="Stage" width="480" height="360" costume="0" color="255,255,255,1" tempo="60" threadsafe="false" penlog="false" volume="100" pan="0" lines="round" ternary="false" hyperops="true" codify="false" inheritance="true" sublistIDs="false" id="2229"><pentrails>data:image/png;base64,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</pentrails><costumes><list struct="atomic" id="2230"></list></costumes><sounds><list struct="atomic" id="2231"></list></sounds><variables></variables><blocks></blocks><scripts></scripts><sprites select="1"><sprite name="Sprite" idx="1" x="-43" y="33" heading="90" scale="1" volume="100" pan="0" rotation="1" instrument="3"  draggable="true" costume="0" color="80,80,80,1" pen="tip" id="2236"><costumes><list struct="atomic" id="2237"></list></costumes><sounds><list struct="atomic" id="2238"></list></sounds><blocks></blocks><variables></variables><scripts><script x="10" y="10"><block s="receiveGo"></block><block s="doDeclareVariables"><list><l>state</l></list></block><block s="gotoXY"><l>-43</l><l>33</l></block><block s="doSetVar"><l>state</l><custom-block s="save state %mult%anyUE %mult%cmdRing"><list><block s="getPosition"></block><block s="direction"></block></list><list><block s="reifyScript"><script><block s="doSayFor"><l>Position restored!</l><l>2</l></block></script><list></list></block></list></custom-block></block><custom-block s="do in parallel and wait %mult%cs"><list><script><custom-block s="animate %s by %n in %n secs easing %s"><l>x position</l><l>115</l><l>2</l><l>sine-in-out</l></custom-block></script><script><custom-block s="animate %s by %n in %n secs easing %s"><l>y position</l><l>77</l><l>2</l><l>sine-in-out</l></custom-block></script><script><block s="doSayFor"><l>I have saved my old x, y and direction</l><l>1</l></block><block s="doSayFor"><l>I&apos;m going to restore this!</l><l>1</l></block></script><script><block s="doWait"><l>2.5</l></block><custom-block s="restore state %n"><block var="state"/></custom-block></script></list></custom-block></script></scripts></sprite><watcher scope="Sprite" s="getPan" style="normal" x="10" y="10" color="207,74,217" hidden="true"/><watcher scope="Stage" s="getTimer" style="normal" x="10" y="31.000001999999995" color="4,148,220" hidden="true"/><watcher scope="Stage" s="reportMouseX" style="normal" x="10" y="52.00000399999999" color="4,148,220" hidden="true"/></sprites></stage><variables></variables></scene></scenes></project><media name="Save and restore state" app="Snap! 11.0.8, https://snap.berkeley.edu" version="2"></media></snapdata>