<snapdata remixID="13523580"><project name="Menus+ Blocks" app="Snap! 10, https://snap.berkeley.edu" version="2"><notes>A refined version of the Menus library put in its own category!</notes><thumbnail>data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAKAAAAB4CAYAAAB1ovlvAAAAAXNSR0IArs4c6QAAAppJREFUeF7t1zFqAlEARdFv4yJsxQVZuxtbN2Jp4Wos3YOVhSGBBAloQjBekGOr8x/eOTI4uVwul+GlQFRgAmBU3uxHAQBBSAsAmOY3DiADaQEA0/zGAWQgLQBgmt84gAykBQBM8xsHkIG0AIBpfuMAMpAWADDNbxxABtICAKb5jQPIQFoAwDS/cQAZSAsAmOY3DiADaQEA0/zGAWQgLQBgmt84gAykBQBM8xsHkIG0AIBpfuMAMpAWADDNbxxABtICAKb5jQPIQFoAwDS/cQAZSAsAmOY3DiADaQEA0/zGAWQgLQBgmt84gAykBQBM8xsHkIG0AIBpfuMAMpAWADDNbxxABtICAKb5jQPIQFoAwDS/cQAZSAsAmOY3DiADaQEA0/zGAWQgLQBgmt84gAykBQC8kX8+n4/1ej1Wq1V6g159HMA7d3i5XH69ezgcxm63G4vF4tVNPPX7AfhD7muEnx+dTqfjdDqN/X7/1Jv1imMA/gHg+yXn8xnAB/wiAPzlI/h4PI7tdusR/AB010cAeCPobDYbm83Gn5AHg/t+HID/HNjx9wsASEhaAMA0v3EAGUgLAJjmNw4gA2kBANP8xgFkIC0AYJrfOIAMpAUATPMbB5CBtACAaX7jADKQFgAwzW8cQAbSAgCm+Y0DyEBaAMA0v3EAGUgLAJjmNw4gA2kBANP8xgFkIC0AYJrfOIAMpAUATPMbB5CBtACAaX7jADKQFgAwzW8cQAbSAgCm+Y0DyEBaAMA0v3EAGUgLAJjmNw4gA2kBANP8xgFkIC0AYJrfOIAMpAUATPMbB5CBtACAaX7jADKQFgAwzW8cQAbSAgCm+Y0DyEBaAMA0v3EAGUgLAJjmNw4gA2kBANP8xgFkIC0AYJrf+BvVKfyoKCEtAAAAAABJRU5ErkJggg==</thumbnail><scenes select="1"><scene name="Menus+ Blocks"><notes>A refined version of the Menus library put in its own category!</notes><palette><category name="Menus+" color="4,124,220,1"/></palette><hidden></hidden><headers></headers><code></code><blocks><block-definition s="popup message: %&apos;m&apos;" type="command" category="Menus+"><comment x="0" y="0" w="90" collapsed="false">Creates a popup at the sprite&apos;s position, which can be closed by choosing the &quot;Ok&quot; option or by stopping the script it&apos;s in.</comment><header></header><code></code><translations></translations><inputs><input type="%s" initial="1">Alert!</input></inputs><script><block s="doAsk"><block s="reportNewList"><list><block var="m"/><block s="reportNewList"><list><block s="reportIfElse"><block s="reportVariadicNotEquals"><list><block s="getLastAnswer"></block><l></l></list></block><block s="reportNewList"><list><l>Ok</l><block s="getLastAnswer"></block></list></block><l>Ok</l></block></list></block></list></block></block></script></block-definition><block-definition s="ask %&apos;q&apos;" type="reporter" category="Menus+"><comment x="0" y="0" w="90" collapsed="false">Behaves like the &quot;ask _ and wait&quot; block, but reports the value of the &quot;answer&quot; reporter when ran.</comment><header></header><code></code><translations></translations><inputs><input type="%s">what&apos;s your name?</input></inputs><script><block s="doAsk"><block var="q"/></block><block s="doReport"><block s="getLastAnswer"></block></block></script></block-definition><block-definition s="prompt title: %&apos;t&apos; options: %&apos;o&apos; and wait" type="command" category="Menus+"><comment x="0" y="0" w="90" collapsed="false">Prompts the user with a popup, which can be closed by choosing any option or by stopping the script it&apos;s in. When an option is chosen, the &quot;answer&quot; reporter is changed to the corresponding option&apos;s value.</comment><header></header><code></code><translations></translations><inputs><input type="%s" initial="1">Choose!</input><input type="%mult%s" initial="3">Option A&#xD;Option B&#xD;Option C</input></inputs><script><block s="doAsk"><block s="reportIfElse"><block s="reportVariadicNotEquals"><list><block var="t"/><l></l></list></block><block s="reportNewList"><list><block var="t"/><block var="o"/></list></block><block var="o"/></block></block></script></block-definition><block-definition s="prompt title: %&apos;t&apos; options: %&apos;o&apos;" type="reporter" category="Menus+"><comment x="0" y="0" w="90" collapsed="false">Behaves like the &quot;prompt title: _ options: _ and wait&quot; block, but reports the value of the &quot;answer&quot; reporter when ran.</comment><header></header><code></code><translations></translations><inputs><input type="%s" initial="1">Choose!</input><input type="%mult%s" initial="3">Option A&#xD;Option B&#xD;Option C</input></inputs><script><block s="doAsk"><block s="reportIfElse"><block s="reportVariadicNotEquals"><list><block var="t"/><l></l></list></block><block s="reportNewList"><list><block var="t"/><block var="o"/></list></block><block var="o"/></block></block><block s="doReport"><block s="getLastAnswer"></block></block></script></block-definition><block-definition s="divider" type="reporter" category="Menus+" space="true"><comment x="0" y="0" w="90" collapsed="false">When put in a prompt block as an option, it adds a divider at its position. Dividers cannot be chosen, and instead, they are used to divide sections of the options.</comment><header></header><code></code><translations></translations><inputs></inputs><script><block s="doReport"><block s="reportNewList"><list></list></block></block></script></block-definition><block-definition s="submenu label: %&apos;l&apos; title: %&apos;t&apos; options: %&apos;o&apos;" type="reporter" category="Menus+"><comment x="0" y="0" w="90" collapsed="false">When put in a prompt block as an option, it adds a submenu at its position. Submenus cannot be chosen, but they can contain different options within them.</comment><header></header><code></code><translations></translations><inputs><input type="%s" initial="1">Submenus!</input><input type="%s" initial="1">Choose!</input><input type="%mult%s" initial="3">Option A&#xD;Option B&#xD;Option C</input></inputs><script><block s="doIf"><block s="reportVariadicEquals"><list><block var="l"/><l></l></list></block><script><block s="doSetVar"><l>l</l><l> </l></block></script><list></list></block><block s="doReport"><block s="reportNewList"><list><block var="l"/><block s="reportIfElse"><block s="reportVariadicEquals"><list><block var="t"/><l></l></list></block><block var="o"/><block s="reportNewList"><list><block var="t"/><block var="o"/></list></block></block></list></block></block></script></block-definition><block-definition s="item with label: %&apos;l&apos; value: %&apos;v&apos;" type="reporter" category="Menus+"><comment x="0" y="0" w="90" collapsed="false">When put in a prompt block as an option, it adds an option with a different value than the label. When these options are chosen, the &quot;answer&quot; reporter is updated with the value, instead of the label.</comment><header></header><code></code><translations></translations><inputs><input type="%s" initial="1">foo</input><input type="%s" initial="1">bar</input></inputs><script><block s="doReport"><block s="reportIfElse"><block s="reportVariadicEquals"><list><block var="l"/><l></l></list></block><block s="reportIfElse"><block s="reportVariadicEquals"><list><block var="v"/><l></l></list></block><l> </l><block var="v"/></block><block s="reportIfElse"><block s="reportVariadicEquals"><list><block var="v"/><l></l></list></block><block var="l"/><block s="reportNewList"><list><block var="l"/><block var="v"/></list></block></block></block></block></script></block-definition><block-definition s="dual label left: %&apos;l&apos; right: %&apos;r&apos; value: %&apos;v&apos;" type="reporter" category="Menus+"><comment x="0" y="0" w="90" collapsed="false">When put in a prompt block as an option, it adds an option with two different labels. If both labels are texts or numbers, the right label is made blue instead of the usual black. Otherwise, the right label is black.</comment><header></header><code></code><translations></translations><inputs><input type="%s" initial="1">here</input><input type="%s" initial="1">there</input><input type="%s" initial="1">everywhere</input></inputs><script><block s="doIf"><block s="reportNot"><block s="reportVariadicOr"><list><block s="reportIsA"><block var="r"/><l><option>number</option></l></block><block s="reportIsA"><block var="r"/><l><option>text</option></l></block></list></block></block><script><block s="doSetVar"><l>r</l><l> </l></block></script><list></list></block><block s="doReport"><block s="reportNewList"><list><block s="reportIfElse"><block s="reportVariadicEquals"><list><block var="r"/><l></l></list></block><block s="reportIfElse"><block s="reportVariadicEquals"><list><block var="l"/><l></l></list></block><l> </l><block var="l"/></block><block s="reportNewList"><list><block s="reportIfElse"><block s="reportVariadicEquals"><list><block var="l"/><l></l></list></block><l> </l><block var="l"/></block><block var="r"/></list></block></block><block s="reportIfElse"><block s="reportVariadicEquals"><list><block var="v"/><l></l></list></block><block s="reportJoinWords"><list><block var="l"/><l> </l><block var="r"/></list></block><block var="v"/></block></list></block></block></script></block-definition><block-definition s="speech bubble direction: %&apos;d&apos; message: %&apos;m&apos;" type="reporter" category="Menus+"><comment x="0" y="0" w="90" collapsed="false">When put in a prompt block as an option, it adds a speech bubble at its position. These speech bubbles can be facing left or right, and when chosen, the &quot;answer&quot; reporter is updated with the message inside of the speech bubble.</comment><header></header><code></code><translations></translations><inputs><input type="%s" readonly="true" irreplaceable="true" initial="1">left<options>left&#xD;right</options></input><input type="%s" initial="1">Hello!</input></inputs><script><block s="doReport"><block s="reportIfElse"><block s="reportVariadicEquals"><list><block var="d"/><l>left</l></list></block><block s="reportNewList"><list><block var="m"/></list></block><block s="reportNewList"><list><l></l><block s="reportIfElse"><block s="reportVariadicEquals"><list><block var="m"/><l></l></list></block><l> </l><block var="m"/></block></list></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="270"><pentrails>data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAeAAAAFoCAYAAACPNyggAAAAAXNSR0IArs4c6QAADoVJREFUeF7t1cEJAAAIxDDdf2m3sJ+4wEEQuuMIECBAgACBd4F9XzRIgAABAgQIjAB7AgIECBAgEAgIcIBukgABAgQICLAfIECAAAECgYAAB+gmCRAgQICAAPsBAgQIECAQCAhwgG6SAAECBAgIsB8gQIAAAQKBgAAH6CYJECBAgIAA+wECBAgQIBAICHCAbpIAAQIECAiwHyBAgAABAoGAAAfoJgkQIECAgAD7AQIECBAgEAgIcIBukgABAgQICLAfIECAAAECgYAAB+gmCRAgQICAAPsBAgQIECAQCAhwgG6SAAECBAgIsB8gQIAAAQKBgAAH6CYJECBAgIAA+wECBAgQIBAICHCAbpIAAQIECAiwHyBAgAABAoGAAAfoJgkQIECAgAD7AQIECBAgEAgIcIBukgABAgQICLAfIECAAAECgYAAB+gmCRAgQICAAPsBAgQIECAQCAhwgG6SAAECBAgIsB8gQIAAAQKBgAAH6CYJECBAgIAA+wECBAgQIBAICHCAbpIAAQIECAiwHyBAgAABAoGAAAfoJgkQIECAgAD7AQIECBAgEAgIcIBukgABAgQICLAfIECAAAECgYAAB+gmCRAgQICAAPsBAgQIECAQCAhwgG6SAAECBAgIsB8gQIAAAQKBgAAH6CYJECBAgIAA+wECBAgQIBAICHCAbpIAAQIECAiwHyBAgAABAoGAAAfoJgkQIECAgAD7AQIECBAgEAgIcIBukgABAgQICLAfIECAAAECgYAAB+gmCRAgQICAAPsBAgQIECAQCAhwgG6SAAECBAgIsB8gQIAAAQKBgAAH6CYJECBAgIAA+wECBAgQIBAICHCAbpIAAQIECAiwHyBAgAABAoGAAAfoJgkQIECAgAD7AQIECBAgEAgIcIBukgABAgQICLAfIECAAAECgYAAB+gmCRAgQICAAPsBAgQIECAQCAhwgG6SAAECBAgIsB8gQIAAAQKBgAAH6CYJECBAgIAA+wECBAgQIBAICHCAbpIAAQIECAiwHyBAgAABAoGAAAfoJgkQIECAgAD7AQIECBAgEAgIcIBukgABAgQICLAfIECAAAECgYAAB+gmCRAgQICAAPsBAgQIECAQCAhwgG6SAAECBAgIsB8gQIAAAQKBgAAH6CYJECBAgIAA+wECBAgQIBAICHCAbpIAAQIECAiwHyBAgAABAoGAAAfoJgkQIECAgAD7AQIECBAgEAgIcIBukgABAgQICLAfIECAAAECgYAAB+gmCRAgQICAAPsBAgQIECAQCAhwgG6SAAECBAgIsB8gQIAAAQKBgAAH6CYJECBAgIAA+wECBAgQIBAICHCAbpIAAQIECAiwHyBAgAABAoGAAAfoJgkQIECAgAD7AQIECBAgEAgIcIBukgABAgQICLAfIECAAAECgYAAB+gmCRAgQICAAPsBAgQIECAQCAhwgG6SAAECBAgIsB8gQIAAAQKBgAAH6CYJECBAgIAA+wECBAgQIBAICHCAbpIAAQIECAiwHyBAgAABAoGAAAfoJgkQIECAgAD7AQIECBAgEAgIcIBukgABAgQICLAfIECAAAECgYAAB+gmCRAgQICAAPsBAgQIECAQCAhwgG6SAAECBAgIsB8gQIAAAQKBgAAH6CYJECBAgIAA+wECBAgQIBAICHCAbpIAAQIECAiwHyBAgAABAoGAAAfoJgkQIECAgAD7AQIECBAgEAgIcIBukgABAgQICLAfIECAAAECgYAAB+gmCRAgQICAAPsBAgQIECAQCAhwgG6SAAECBAgIsB8gQIAAAQKBgAAH6CYJECBAgIAA+wECBAgQIBAICHCAbpIAAQIECAiwHyBAgAABAoGAAAfoJgkQIECAgAD7AQIECBAgEAgIcIBukgABAgQICLAfIECAAAECgYAAB+gmCRAgQICAAPsBAgQIECAQCAhwgG6SAAECBAgIsB8gQIAAAQKBgAAH6CYJECBAgIAA+wECBAgQIBAICHCAbpIAAQIECAiwHyBAgAABAoGAAAfoJgkQIECAgAD7AQIECBAgEAgIcIBukgABAgQICLAfIECAAAECgYAAB+gmCRAgQICAAPsBAgQIECAQCAhwgG6SAAECBAgIsB8gQIAAAQKBgAAH6CYJECBAgIAA+wECBAgQIBAICHCAbpIAAQIECAiwHyBAgAABAoGAAAfoJgkQIECAgAD7AQIECBAgEAgIcIBukgABAgQICLAfIECAAAECgYAAB+gmCRAgQICAAPsBAgQIECAQCAhwgG6SAAECBAgIsB8gQIAAAQKBgAAH6CYJECBAgIAA+wECBAgQIBAICHCAbpIAAQIECAiwHyBAgAABAoGAAAfoJgkQIECAgAD7AQIECBAgEAgIcIBukgABAgQICLAfIECAAAECgYAAB+gmCRAgQICAAPsBAgQIECAQCAhwgG6SAAECBAgIsB8gQIAAAQKBgAAH6CYJECBAgIAA+wECBAgQIBAICHCAbpIAAQIECAiwHyBAgAABAoGAAAfoJgkQIECAgAD7AQIECBAgEAgIcIBukgABAgQICLAfIECAAAECgYAAB+gmCRAgQICAAPsBAgQIECAQCAhwgG6SAAECBAgIsB8gQIAAAQKBgAAH6CYJECBAgIAA+wECBAgQIBAICHCAbpIAAQIECAiwHyBAgAABAoGAAAfoJgkQIECAgAD7AQIECBAgEAgIcIBukgABAgQICLAfIECAAAECgYAAB+gmCRAgQICAAPsBAgQIECAQCAhwgG6SAAECBAgIsB8gQIAAAQKBgAAH6CYJECBAgIAA+wECBAgQIBAICHCAbpIAAQIECAiwHyBAgAABAoGAAAfoJgkQIECAgAD7AQIECBAgEAgIcIBukgABAgQICLAfIECAAAECgYAAB+gmCRAgQICAAPsBAgQIECAQCAhwgG6SAAECBAgIsB8gQIAAAQKBgAAH6CYJECBAgIAA+wECBAgQIBAICHCAbpIAAQIECAiwHyBAgAABAoGAAAfoJgkQIECAgAD7AQIECBAgEAgIcIBukgABAgQICLAfIECAAAECgYAAB+gmCRAgQICAAPsBAgQIECAQCAhwgG6SAAECBAgIsB8gQIAAAQKBgAAH6CYJECBAgIAA+wECBAgQIBAICHCAbpIAAQIECAiwHyBAgAABAoGAAAfoJgkQIECAgAD7AQIECBAgEAgIcIBukgABAgQICLAfIECAAAECgYAAB+gmCRAgQICAAPsBAgQIECAQCAhwgG6SAAECBAgIsB8gQIAAAQKBgAAH6CYJECBAgIAA+wECBAgQIBAICHCAbpIAAQIECAiwHyBAgAABAoGAAAfoJgkQIECAgAD7AQIECBAgEAgIcIBukgABAgQICLAfIECAAAECgYAAB+gmCRAgQICAAPsBAgQIECAQCAhwgG6SAAECBAgIsB8gQIAAAQKBgAAH6CYJECBAgIAA+wECBAgQIBAICHCAbpIAAQIECAiwHyBAgAABAoGAAAfoJgkQIECAgAD7AQIECBAgEAgIcIBukgABAgQICLAfIECAAAECgYAAB+gmCRAgQICAAPsBAgQIECAQCAhwgG6SAAECBAgIsB8gQIAAAQKBgAAH6CYJECBAgIAA+wECBAgQIBAICHCAbpIAAQIECAiwHyBAgAABAoGAAAfoJgkQIECAgAD7AQIECBAgEAgIcIBukgABAgQICLAfIECAAAECgYAAB+gmCRAgQICAAPsBAgQIECAQCAhwgG6SAAECBAgIsB8gQIAAAQKBgAAH6CYJECBAgIAA+wECBAgQIBAICHCAbpIAAQIECAiwHyBAgAABAoGAAAfoJgkQIECAgAD7AQIECBAgEAgIcIBukgABAgQICLAfIECAAAECgYAAB+gmCRAgQICAAPsBAgQIECAQCAhwgG6SAAECBAgIsB8gQIAAAQKBgAAH6CYJECBAgIAA+wECBAgQIBAICHCAbpIAAQIECAiwHyBAgAABAoGAAAfoJgkQIECAgAD7AQIECBAgEAgIcIBukgABAgQICLAfIECAAAECgYAAB+gmCRAgQICAAPsBAgQIECAQCAhwgG6SAAECBAgIsB8gQIAAAQKBgAAH6CYJECBAgIAA+wECBAgQIBAICHCAbpIAAQIECAiwHyBAgAABAoGAAAfoJgkQIECAgAD7AQIECBAgEAgIcIBukgABAgQICLAfIECAAAECgYAAB+gmCRAgQICAAPsBAgQIECAQCAhwgG6SAAECBAgIsB8gQIAAAQKBgAAH6CYJECBAgIAA+wECBAgQIBAICHCAbpIAAQIECAiwHyBAgAABAoGAAAfoJgkQIECAgAD7AQIECBAgEAgIcIBukgABAgQICLAfIECAAAECgYAAB+gmCRAgQICAAPsBAgQIECAQCAhwgG6SAAECBAgIsB8gQIAAAQKBgAAH6CYJECBAgIAA+wECBAgQIBAICHCAbpIAAQIECAiwHyBAgAABAoGAAAfoJgkQIECAgAD7AQIECBAgEAgIcIBukgABAgQICLAfIECAAAECgYAAB+gmCRAgQICAAPsBAgQIECAQCAhwgG6SAAECBAgIsB8gQIAAAQKBgAAH6CYJECBAgIAA+wECBAgQIBAICHCAbpIAAQIECAiwHyBAgAABAoGAAAfoJgkQIECAgAD7AQIECBAgEAgIcIBukgABAgQICLAfIECAAAECgYAAB+gmCRAgQICAAPsBAgQIECAQCAhwgG6SAAECBAgIsB8gQIAAAQKBgAAH6CYJECBAgIAA+wECBAgQIBAICHCAbpIAAQIECAiwHyBAgAABAoGAAAfoJgkQIECAgAD7AQIECBAgEAgIcIBukgABAgQICLAfIECAAAECgYAAB+gmCRAgQICAAPsBAgQIECAQCAhwgG6SAAECBAgIsB8gQIAAAQKBgAAH6CYJECBAgIAA+wECBAgQIBAICHCAbpIAAQIECByxcQFpoRMBzwAAAABJRU5ErkJggg==</pentrails><costumes><list struct="atomic" id="271"></list></costumes><sounds><list struct="atomic" id="272"></list></sounds><variables></variables><blocks></blocks><scripts></scripts><sprites select="1"><sprite name="Sprite" idx="1" x="0" y="0" heading="90" scale="1" volume="100" pan="0" rotation="1" draggable="true" costume="0" color="80,80,80,1" pen="tip" id="277"><costumes><list struct="atomic" id="278"></list></costumes><sounds><list struct="atomic" id="279"></list></sounds><blocks></blocks><variables></variables><scripts><script x="20" y="20"><custom-block s="popup message: %s"><l>Alert!</l></custom-block></script><script x="20" y="59"><custom-block s="ask %s"><l>what&apos;s your name?</l></custom-block></script><script x="20" y="92"><custom-block s="prompt title: %s options: %mult%s and wait"><l>Choose!</l><list><l>Option A</l><l>Option B</l><l>Option C</l></list></custom-block></script><script x="20" y="131"><custom-block s="prompt title: %s options: %mult%s"><l>Choose!</l><list><l>Option A</l><l>Option B</l><l>Option C</l></list></custom-block></script><script x="20" y="164"><custom-block s="divider"></custom-block></script><script x="20" y="193.83333333333337"><custom-block s="submenu label: %s title: %s options: %mult%s"><l>Submenus!</l><l>Choose!</l><list><l>Option A</l><l>Option B</l><l>Option C</l></list></custom-block></script><script x="20" y="226.83333333333337"><custom-block s="item with label: %s value: %s"><l>foo</l><l>bar</l></custom-block></script><script x="20" y="259.83333333333337"><custom-block s="dual label left: %s right: %s value: %s"><l>here</l><l>there</l><l>everywhere</l></custom-block></script><script x="20" y="292.83333333333337"><custom-block s="speech bubble direction: %s message: %s"><l>left</l><l>Hello!</l></custom-block></script></scripts></sprite></sprites></stage><variables></variables></scene></scenes></project><media name="Menus+ Blocks" app="Snap! 10, https://snap.berkeley.edu" version="2"></media></snapdata>