commit 74e96fca309fc1869ced01cfc63330f1d7a7973c
parent 43b9ab76acf0ab39f1ee59bfc2dc654834b6825a
Author: Adam <1319733+freddyz@users.noreply.github.com>
Date: Wed, 31 Oct 2018 20:54:57 -0500
Merge pull request #3 from freddyz/ilovecookies-dev
Ilovecookies dev
Diffstat:
6 files changed, 970 insertions(+), 13 deletions(-)
diff --git a/res/ComputerscareILoveCookiesPanel.svg b/res/ComputerscareILoveCookiesPanel.svg
@@ -0,0 +1,413 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+
+<svg
+ xmlns:dc="http://purl.org/dc/elements/1.1/"
+ xmlns:cc="http://creativecommons.org/ns#"
+ xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+ xmlns:svg="http://www.w3.org/2000/svg"
+ xmlns="http://www.w3.org/2000/svg"
+ xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+ xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+ width="200"
+ height="380"
+ viewBox="0 0 52.916669 100.54167"
+ version="1.1"
+ id="svg8"
+ inkscape:version="0.92.2 5c3e80d, 2017-08-06"
+ sodipodi:docname="ComputerscareILoveCookiesPanel.svg"
+ style="enable-background:new">
+ <defs
+ id="defs2">
+ <inkscape:perspective
+ sodipodi:type="inkscape:persp3d"
+ inkscape:vp_x="0 : 50.270835 : 1"
+ inkscape:vp_y="0 : 1000 : 0"
+ inkscape:vp_z="23.812501 : 50.270835 : 1"
+ inkscape:persp3d-origin="11.906251 : 33.51389 : 1"
+ id="perspective1881" />
+ </defs>
+ <sodipodi:namedview
+ id="base"
+ pagecolor="#ffffff"
+ bordercolor="#666666"
+ borderopacity="1.0"
+ inkscape:pageopacity="0.0"
+ inkscape:pageshadow="2"
+ inkscape:zoom="4.0000001"
+ inkscape:cx="86.288455"
+ inkscape:cy="164.40634"
+ inkscape:document-units="mm"
+ inkscape:current-layer="g1669"
+ showgrid="false"
+ units="px"
+ inkscape:snap-bbox="true"
+ inkscape:snap-page="true"
+ inkscape:bbox-nodes="true"
+ inkscape:snap-bbox-edge-midpoints="true"
+ inkscape:window-width="1440"
+ inkscape:window-height="856"
+ inkscape:window-x="0"
+ inkscape:window-y="0"
+ inkscape:window-maximized="0"
+ inkscape:snap-nodes="false"
+ inkscape:snap-others="false"
+ inkscape:snap-global="false" />
+ <metadata
+ id="metadata5">
+ <rdf:RDF>
+ <cc:Work
+ rdf:about="">
+ <dc:format>image/svg+xml</dc:format>
+ <dc:type
+ rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+ <dc:title />
+ </cc:Work>
+ </rdf:RDF>
+ </metadata>
+ <g
+ style="display:inline"
+ transform="translate(0,-196.45832)"
+ id="g1669"
+ inkscape:groupmode="layer"
+ inkscape:label="Layer 1 copy">
+ <path
+ inkscape:connector-curvature="0"
+ id="path1647"
+ d="M 0,196.45832 H 52.916667 V 297 H 0 Z"
+ style="opacity:1;vector-effect:none;fill:#f9f9f9;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:0.72459143;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;paint-order:normal" />
+ <g
+ aria-label="computerscare"
+ transform="matrix(0.98656289,0.0441007,-0.12576361,1.0079983,50.102321,-2.779225)"
+ style="font-style:normal;font-weight:normal;font-size:10.58333302px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.26458332"
+ id="text1651">
+ <path
+ d="m 6.6805153,294.74087 -0.016688,0.21573 q -0.091784,-0.0455 -0.1869432,-0.0633 -0.093833,-0.0192 -0.1922912,-0.0106 -0.2202194,0.0192 -0.3530674,0.17279 -0.1327584,0.15233 -0.1526496,0.40948 -0.019887,0.25711 0.090844,0.38948 0.1108289,0.13112 0.3310431,0.11194 0.098425,-0.009 0.1964041,-0.0432 0.09932,-0.036 0.1994563,-0.0984 l -0.016492,0.21322 q -0.09823,0.0535 -0.2020758,0.0849 -0.1026226,0.0313 -0.2170348,0.0413 -0.3112454,0.027 -0.4791286,-0.15633 -0.1678799,-0.18346 -0.1416814,-0.52211 0.026586,-0.34368 0.226355,-0.55668 0.2009995,-0.2131 0.523323,-0.24118 0.1045662,-0.009 0.2024381,0.006 0.098002,0.0127 0.1881007,0.0485 z"
+ style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:2.82222223px;font-family:sans-serif;-inkscape-font-specification:'sans-serif, Normal';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-feature-settings:normal;text-align:start;writing-mode:lr-tb;text-anchor:start;stroke-width:0.23769678"
+ id="path1701"
+ inkscape:connector-curvature="0" />
+ <path
+ d="m 7.6022319,294.7677 q -0.1820776,0.0159 -0.2991302,0.17058 -0.1169599,0.15346 -0.1364596,0.40556 -0.019498,0.25212 0.073816,0.3885 0.094643,0.13502 0.277948,0.11906 0.1808374,-0.0158 0.297902,-0.17048 0.1170552,-0.15472 0.1364596,-0.40557 0.01931,-0.24958 -0.075238,-0.38588 -0.094449,-0.13753 -0.2752952,-0.12177 z m 0.015134,-0.19566 q 0.2952536,-0.0257 0.4486639,0.15525 0.153406,0.18099 0.1266273,0.52716 -0.026679,0.34494 -0.2104596,0.55653 -0.1836786,0.21035 -0.4789357,0.23608 -0.2964931,0.0258 -0.4498964,-0.15514 -0.1520785,-0.18236 -0.1253963,-0.52727 0.026781,-0.34618 0.2092287,-0.55642 0.1836792,-0.21036 0.4801681,-0.23619 z"
+ style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:2.82222223px;font-family:sans-serif;-inkscape-font-specification:'sans-serif, Normal';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-feature-settings:normal;text-align:start;writing-mode:lr-tb;text-anchor:start;stroke-width:0.23769678"
+ id="path1703"
+ inkscape:connector-curvature="0" />
+ <path
+ d="m 10.251377,294.84502 q 0.17921,-0.12523 0.345108,-0.18504 0.165889,-0.0598 0.331807,-0.0603 0.223344,-4.8e-4 0.254151,0.12307 0.03156,0.12267 -0.134593,0.35048 l -0.496966,0.68144 -0.23608,9e-5 0.492559,-0.67539 q 0.118357,-0.1623 0.102964,-0.24074 -0.01541,-0.0784 -0.164722,-0.078 -0.1825,4.4e-4 -0.358263,0.0965 -0.175764,0.096 -0.296331,0.26137 l -0.4653557,0.6381 -0.2360821,9e-5 0.4925593,-0.6754 q 0.1190965,-0.16331 0.1029539,-0.24073 -0.015409,-0.0784 -0.1672727,-0.078 -0.1799435,4e-4 -0.3564458,0.0975 -0.1757627,0.096 -0.2955924,0.26035 l -0.4653582,0.63811 -0.2360748,9e-5 0.8233759,-1.12901 0.2360804,-9e-5 -0.127912,0.17539 q 0.1561197,-0.10403 0.3044503,-0.15374 0.1483225,-0.0497 0.3027299,-0.05 0.155711,-6.2e-4 0.218621,0.0618 0.06418,0.0622 0.02976,0.18102 z"
+ style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:2.82222223px;font-family:sans-serif;-inkscape-font-specification:'sans-serif, Normal';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-feature-settings:normal;text-align:start;writing-mode:lr-tb;text-anchor:start;stroke-width:0.21756229"
+ id="path1705"
+ inkscape:connector-curvature="0" />
+ <path
+ d="m 11.470278,295.6447 -0.166298,0.6538 -0.226498,0.0407 0.432828,-1.70163 0.226499,-0.0406 -0.04759,0.1871 q 0.09895,-0.12297 0.220025,-0.1954 0.122591,-0.0737 0.27304,-0.10108 0.249389,-0.0458 0.35952,0.10461 0.111224,0.14981 0.03731,0.4404 -0.07392,0.29057 -0.275835,0.49738 -0.2007,0.20658 -0.450227,0.25202 -0.150376,0.0276 -0.245911,-0.006 -0.09391,-0.0342 -0.136875,-0.13149 z m 0.875182,-0.56976 q 0.05684,-0.22343 -0.01371,-0.33131 -0.06905,-0.10919 -0.247639,-0.0767 -0.178587,0.0325 -0.313807,0.1789 -0.133721,0.14505 -0.190557,0.36849 -0.05684,0.22344 0.01221,0.33263 0.07055,0.10787 0.249141,0.0754 0.178588,-0.0325 0.312306,-0.17756 0.135225,-0.14638 0.192054,-0.36983 z"
+ style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:2.82222223px;font-family:sans-serif;-inkscape-font-specification:'sans-serif, Normal';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-feature-settings:normal;text-align:start;writing-mode:lr-tb;text-anchor:start;stroke-width:0.21756229"
+ id="path1707"
+ inkscape:connector-curvature="0" />
+ <path
+ d="m 12.631037,295.5364 0.491324,-0.73927 0.234932,5e-4 -0.486251,0.73166 q -0.115221,0.17336 -0.09403,0.26066 0.0219,0.0862 0.180229,0.0863 0.190253,2e-5 0.368889,-0.10335 0.17992,-0.1035 0.298766,-0.28232 l 0.460161,-0.6924 0.23493,5.1e-4 -0.811622,1.22122 -0.234932,-5.1e-4 0.124642,-0.18755 q -0.15946,0.11115 -0.309324,0.16557 -0.147856,0.0533 -0.297227,0.0532 -0.246395,-9.2e-4 -0.287136,-0.13115 -0.04071,-0.13096 0.126673,-0.38281 z"
+ style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:2.82222223px;font-family:sans-serif;-inkscape-font-specification:'sans-serif, Normal';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-feature-settings:normal;text-align:start;writing-mode:lr-tb;text-anchor:start;stroke-width:0.2266023"
+ id="path1709"
+ inkscape:connector-curvature="0" />
+ <path
+ d="m 14.922754,294.31023 -0.0074,0.31552 0.490495,-10e-4 -0.0033,0.14188 -0.490495,10e-4 -0.01421,0.60325 q -0.0032,0.13593 0.04376,0.17449 0.04828,0.0385 0.1971,0.0381 l 0.244588,-8e-4 -0.0036,0.15279 -0.24459,8e-4 q -0.275683,10e-4 -0.378642,-0.0773 -0.102958,-0.0791 -0.09804,-0.28743 l 0.0142,-0.60324 -0.174707,3.2e-4 0.0033,-0.14189 0.174708,-3.2e-4 0.0074,-0.31552 z"
+ style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:2.82222223px;font-family:sans-serif;-inkscape-font-specification:'sans-serif, Normal';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-feature-settings:normal;text-align:start;writing-mode:lr-tb;text-anchor:start;stroke-width:0.21756229"
+ id="path1711"
+ inkscape:connector-curvature="0" />
+ <path
+ d="m 16.94157,295.07858 -0.0011,0.0968 -1.095364,-5.5e-4 q 0.01312,0.20442 0.143907,0.31207 0.132097,0.10657 0.369038,0.1067 0.137232,2.4e-4 0.265754,-0.0278 0.129809,-0.0279 0.257357,-0.0838 l -0.0022,0.1872 q -0.128717,0.0451 -0.26365,0.0687 -0.134936,0.0236 -0.273472,0.0235 -0.34698,-6.1e-4 -0.548281,-0.16812 -0.199994,-0.16793 -0.196604,-0.45409 0.0035,-0.29585 0.197182,-0.46896 0.194983,-0.17417 0.521261,-0.174 0.292604,2.1e-4 0.460367,0.1573 0.169059,0.15608 0.165873,0.42504 z m -0.237545,-0.0583 q -7.08e-4,-0.16245 -0.106982,-0.25931 -0.105024,-0.0969 -0.28111,-0.097 -0.199387,-4.6e-4 -0.320912,0.0934 -0.120228,0.0935 -0.140368,0.26351 z"
+ style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:2.82222223px;font-family:sans-serif;-inkscape-font-specification:'sans-serif, Normal';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-feature-settings:normal;text-align:start;writing-mode:lr-tb;text-anchor:start;stroke-width:0.2266023"
+ id="path1713"
+ inkscape:connector-curvature="0" />
+ <path
+ d="m 18.549259,294.59448 q -0.05705,-0.0213 -0.122602,-0.0295 -0.06376,-0.0115 -0.139034,-0.011 -0.267558,1.2e-4 -0.387876,0.12251 -0.118969,0.11945 -0.07508,0.34233 l 0.136229,0.69199 -0.316855,0.003 -0.258668,-1.31363 0.316855,-0.003 0.04014,0.20407 q 0.07586,-0.12023 0.223981,-0.17893 0.147867,-0.0598 0.375872,-0.0614 0.03256,-2.3e-4 0.07273,0.003 0.03969,0.003 0.08898,0.007 z"
+ style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:2.82222223px;font-family:sans-serif;-inkscape-font-specification:'sans-serif, Normal';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-feature-settings:normal;text-align:start;writing-mode:lr-tb;text-anchor:start;stroke-width:0.27243829"
+ id="path1715"
+ inkscape:connector-curvature="0" />
+ <path
+ d="m 20.202252,294.56561 0.05561,0.18117 q -0.134233,-0.0538 -0.271475,-0.0875 -0.137211,-0.0339 -0.277399,-0.0478 -0.213395,-0.0211 -0.307461,0.0121 -0.09249,0.0334 -0.06567,0.12071 0.0204,0.0667 0.108576,0.1127 0.08783,0.0451 0.328918,0.1022 l 0.102538,0.0243 q 0.318708,0.0739 0.471041,0.16671 0.153587,0.0919 0.197348,0.23457 0.04985,0.16242 -0.114212,0.23805 -0.162476,0.0757 -0.498952,0.0427 -0.140163,-0.0137 -0.298619,-0.0477 -0.156496,-0.0327 -0.335937,-0.0858 l -0.06073,-0.19783 q 0.17584,0.0709 0.338622,0.11428 0.162537,0.0423 0.3136,0.0572 0.202502,0.0201 0.297484,-0.0149 0.09462,-0.036 0.06879,-0.1204 -0.024,-0.0781 -0.116196,-0.1276 -0.09065,-0.0493 -0.368857,-0.11411 l -0.10449,-0.0255 q -0.277799,-0.0638 -0.419883,-0.15257 -0.142346,-0.0897 -0.18389,-0.22515 -0.05049,-0.1645 0.09648,-0.23679 0.147014,-0.0723 0.467874,-0.0405 0.158847,0.0158 0.303897,0.0452 0.144979,0.0294 0.272943,0.0724 z"
+ style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:2.82222223px;font-family:sans-serif;-inkscape-font-specification:'sans-serif, Normal';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-feature-settings:normal;text-align:start;writing-mode:lr-tb;text-anchor:start;stroke-width:0.24076694"
+ id="path1717"
+ inkscape:connector-curvature="0" />
+ <path
+ d="m 21.467089,294.15645 0.09339,0.18105 q -0.13992,-0.0455 -0.269375,-0.0675 -0.128506,-0.0232 -0.248073,-0.0231 -0.267889,-8.2e-4 -0.353607,0.11971 -0.08663,0.11885 0.02463,0.33462 0.111298,0.21575 0.321091,0.33583 0.209298,0.11902 0.476827,0.11919 0.119338,-2.9e-4 0.224758,-0.0219 0.106151,-0.0231 0.199349,-0.0682 l 0.09232,0.17891 q -0.09546,0.0378 -0.209797,0.0567 -0.112787,0.0188 -0.251721,0.0188 -0.377888,5e-5 -0.687103,-0.16775 -0.308977,-0.16746 -0.455519,-0.45164 -0.148736,-0.2884 -0.0097,-0.45351 0.140472,-0.16509 0.53204,-0.16483 0.126621,-2.3e-4 0.25786,0.019 0.130311,0.0179 0.262873,0.0551 z"
+ style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:2.82222223px;font-family:sans-serif;-inkscape-font-specification:'sans-serif, Normal';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-feature-settings:normal;text-align:start;writing-mode:lr-tb;text-anchor:start;stroke-width:0.24076694"
+ id="path1719"
+ inkscape:connector-curvature="0" />
+ <path
+ d="m 22.848255,294.76509 q -0.324049,0.0145 -0.412927,0.075 -0.08878,0.0605 -0.0016,0.19293 0.06954,0.10555 0.203589,0.16385 0.134877,0.0572 0.296138,0.0499 0.222393,-0.01 0.279493,-0.13222 0.05788,-0.12339 -0.06973,-0.31721 l -0.02911,-0.0442 z m 0.47948,-0.10562 0.453008,0.68806 -0.266864,0.0126 -0.120515,-0.18306 q -0.01921,0.11387 -0.121119,0.1728 -0.102601,0.0577 -0.300181,0.0666 -0.249975,0.0111 -0.466214,-0.0857 -0.215582,-0.0978 -0.330397,-0.27232 -0.134042,-0.20353 -0.01894,-0.31506 0.116528,-0.11161 0.481275,-0.12792 l 0.374957,-0.0167 -0.01278,-0.0192 q -0.09003,-0.13675 -0.261034,-0.20558 -0.170245,-0.07 -0.389748,-0.0601 -0.139642,0.006 -0.255461,0.037 -0.115999,0.0307 -0.205427,0.0858 l -0.120504,-0.18305 q 0.119183,-0.0485 0.243677,-0.0751 0.123899,-0.0277 0.254636,-0.0335 0.353322,-0.0155 0.616856,0.11216 0.263723,0.12788 0.44521,0.40354 z"
+ style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:2.82222223px;font-family:sans-serif;-inkscape-font-specification:'sans-serif, Normal';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-feature-settings:normal;text-align:start;writing-mode:lr-tb;text-anchor:start;stroke-width:0.24368711"
+ id="path1721"
+ inkscape:connector-curvature="0" />
+ <path
+ d="m 24.559922,294.19624 q -0.05862,-0.0187 -0.118501,-0.0254 -0.05964,-0.007 -0.123586,-0.004 -0.226885,0.01 -0.271945,0.13195 -0.04437,0.12085 0.09931,0.33836 l 0.44616,0.67545 -0.269288,0.0112 -0.8469,-1.28215 0.269291,-0.0112 0.131588,0.19918 q 0.0073,-0.12044 0.105449,-0.18241 0.09741,-0.0632 0.290941,-0.0716 0.02765,-9.6e-4 0.06323,4.5e-4 0.03494,6.5e-4 0.07928,0.006 z"
+ style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:2.82222223px;font-family:sans-serif;-inkscape-font-specification:'sans-serif, Normal';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-feature-settings:normal;text-align:start;writing-mode:lr-tb;text-anchor:start;stroke-width:0.25128216"
+ id="path1723"
+ inkscape:connector-curvature="0" />
+ <path
+ d="m 26.461145,294.55605 0.06378,0.0969 -1.229442,0.0548 q 0.152154,0.2038 0.371272,0.30486 0.21984,0.1 0.485838,0.088 0.154066,-0.007 0.279558,-0.0413 0.12691,-0.0345 0.23245,-0.0969 l 0.123335,0.18736 q -0.114079,0.0517 -0.249577,0.0821 -0.135569,0.0305 -0.291027,0.0373 -0.389751,0.0169 -0.728229,-0.1404 -0.337316,-0.15784 -0.525894,-0.44424 -0.194954,-0.29611 -0.09402,-0.47912 0.101706,-0.1841 0.467919,-0.20046 0.328404,-0.0147 0.622318,0.13404 0.294642,0.14757 0.471873,0.41677 z m -0.305714,-0.0463 q -0.110013,-0.16246 -0.294376,-0.25398 -0.18296,-0.0916 -0.380663,-0.0827 -0.22415,0.009 -0.297261,0.10974 -0.07205,0.0997 0.01965,0.2707 z"
+ style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:2.82222223px;font-family:sans-serif;-inkscape-font-specification:'sans-serif, Normal';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-feature-settings:normal;text-align:start;writing-mode:lr-tb;text-anchor:start;stroke-width:0.24368711"
+ id="path1725"
+ inkscape:connector-curvature="0" />
+ <g
+ aria-label="rst"
+ transform="matrix(1.9119826,-0.34464307,0.50786191,1.8921039,-36.824295,-191.79951)"
+ style="font-style:normal;font-weight:normal;font-size:1.90312397px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.01258837"
+ id="text864">
+ <path
+ d="m -41.222698,203.11196 c -0.0243,-0.0201 -0.05121,-0.0379 -0.08076,-0.0533 -0.0287,-0.0156 -0.06084,-0.0294 -0.09636,-0.0415 -0.125965,-0.0431 -0.225004,-0.043 -0.296963,-5.9e-4 -0.07117,0.0422 -0.110664,0.12465 -0.118454,0.24721 l -0.03634,0.5709 -0.224066,-0.0766 0.06898,-1.08373 0.224066,0.0766 0.01495,0.12355 c 0.05102,-0.0499 0.0894,-0.0329 0.166524,-0.0389 0.07716,-0.007 0.169424,0.008 0.276797,0.0452 0.01535,0.005 0.03225,0.0123 0.0507,0.0205 0.01854,0.007 0.03894,0.0169 0.0613,0.0284 z"
+ style="stroke-width:0.01482364"
+ id="path870"
+ inkscape:connector-curvature="0"
+ sodipodi:nodetypes="ccccccccccccccc" />
+ <path
+ d="m -40.401321,202.83793 0.0011,0.14697 q -0.06978,-0.0343 -0.144779,-0.0517 -0.075,-0.0174 -0.155216,-0.018 -0.122114,-0.001 -0.183335,0.0341 -0.06033,0.035 -0.05979,0.10599 3.7e-4,0.054 0.04433,0.0857 0.04391,0.0307 0.17603,0.0595 l 0.05623,0.0122 q 0.174966,0.0367 0.248551,0.10231 0.07447,0.0647 0.07535,0.18045 9.74e-4,0.13177 -0.10892,0.20783 -0.10904,0.0761 -0.30156,0.0747 -0.0802,-4e-4 -0.167681,-0.0164 -0.08656,-0.0149 -0.183052,-0.0452 l -0.0012,-0.16049 q 0.09126,0.0455 0.179669,0.0689 0.08841,0.0226 0.174861,0.0232 0.115868,8.1e-4 0.177973,-0.0359 0.0621,-0.0375 0.06158,-0.10597 -4.76e-4,-0.0634 -0.0462,-0.0975 -0.04482,-0.0341 -0.197475,-0.0665 l -0.05714,-0.013 q -0.152644,-0.0315 -0.220863,-0.0945 -0.06822,-0.0639 -0.06906,-0.17366 -0.001,-0.13345 0.09824,-0.20537 0.09927,-0.0719 0.282876,-0.0706 0.09091,7.5e-4 0.171226,0.0139 0.08031,0.0132 0.148246,0.0391 z"
+ style="stroke-width:0.01175369"
+ id="path872"
+ inkscape:connector-curvature="0" />
+ <path
+ d="m -39.839506,202.58274 -0.03466,0.33779 0.477995,0.0428 -0.03109,0.13976 -0.462511,-0.0314 -0.06636,0.64583 c -0.0099,0.097 -0.0044,0.1602 0.01679,0.18955 0.02181,0.0294 0.07002,0.0467 0.144625,0.0522 l 0.183936,0.0126 -0.01685,0.16358 -0.183936,-0.0127 c -0.138173,-0.01 -0.230656,-0.0447 -0.277449,-0.10469 -0.04673,-0.0604 -0.06245,-0.16502 -0.04717,-0.31376 l 0.06636,-0.64582 -0.13137,-0.009 0.01561,-0.15191 0.131371,0.009 0.03466,-0.33777 z"
+ style="stroke-width:0.0138234"
+ id="path874"
+ inkscape:connector-curvature="0"
+ sodipodi:nodetypes="ccccccccccccccccccc" />
+ </g>
+ <g
+ aria-label="clk"
+ transform="matrix(2.3525877,-0.10292753,0.2449229,1.9213172,39.209243,-190.33066)"
+ style="font-style:normal;font-weight:normal;font-size:1.90312397px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.01258837"
+ id="text868">
+ <path
+ d="m -47.14865,203.94633 0.07098,0.19958 c -0.0692,-0.0333 -0.135769,-0.0581 -0.199658,-0.0743 -0.0634,-0.0169 -0.124526,-0.0254 -0.183372,-0.0254 -0.13166,0 -0.218211,0.0441 -0.259669,0.13228 -0.04174,0.0874 -0.0344,0.2104 0.022,0.36898 0.05639,0.15858 0.136684,0.28197 0.240879,0.37015 0.103904,0.0874 0.221685,0.1311 0.353342,0.1311 0.05884,0 0.114014,-0.008 0.165676,-0.0243 0.05203,-0.0171 0.08575,0.0217 0.13131,-0.0116 l 0.08526,0.13352 c -0.04671,0.0279 -0.09812,0.0488 -0.154244,0.0626 -0.05537,0.0139 -0.11726,0.0208 -0.185661,0.0208 -0.186089,0 -0.355794,-0.0614 -0.509142,-0.1845 -0.153336,-0.12299 -0.267144,-0.28891 -0.341426,-0.49777 -0.07538,-0.21195 -0.0795,-0.37865 -0.01236,-0.50009 0.06788,-0.12144 0.198163,-0.18217 0.390872,-0.18217 0.06252,0 0.125982,0.007 0.19056,0.0208 0.06425,0.0131 0.129133,0.0332 0.194664,0.0603 z"
+ style="stroke-width:0.01532727"
+ id="path877"
+ inkscape:connector-curvature="0"
+ sodipodi:nodetypes="cccscccsccccscscsccc" />
+ <path
+ d="m -46.874682,203.57895 0.142911,-0.0353 0.477431,1.633 -0.142911,0.0353 z"
+ style="stroke-width:0.01266381"
+ id="path879"
+ inkscape:connector-curvature="0" />
+ <path
+ d="m -45.316254,203.55297 h 0.105823 l -0.30408,0.97435 0.684115,-0.51209 0.06147,0.0849 0.0099,0.0299 -0.587562,0.44072 0.393944,0.6319 -0.370906,-0.0255 -0.220701,-0.55448 -0.180998,0.57995 h -0.176676 z"
+ style="stroke-width:0.01363125"
+ id="path881"
+ inkscape:connector-curvature="0"
+ sodipodi:nodetypes="ccccccccccccc" />
+ </g>
+ <text
+ xml:space="preserve"
+ style="font-style:normal;font-weight:normal;font-size:3.52777767px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.07000434"
+ x="-18.08774"
+ y="188.72037"
+ id="text876"
+ transform="matrix(1.0079983,-0.0441007,0.12576363,0.98656289,0,0)"><tspan
+ sodipodi:role="line"
+ id="tspan874"
+ x="-18.08774"
+ y="191.84163"
+ style="stroke-width:0.07000434" /></text>
+ <g
+ aria-label="out"
+ transform="matrix(0.961494,-0.26224736,0.34559745,0.86694168,-28.446637,78.572455)"
+ style="font-style:normal;font-weight:normal;font-size:3.52777767px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.07000434"
+ id="text888">
+ <path
+ d="m -13.369682,192.47237 q -0.273983,0 -0.433189,0.22592 -0.159206,0.22396 -0.159206,0.61541 0,0.39146 0.157354,0.61737 0.159207,0.22397 0.435041,0.22397 0.272131,0 0.431338,-0.22591 0.159207,-0.22592 0.159207,-0.61543 0,-0.38755 -0.159207,-0.61347 -0.159207,-0.22786 -0.431338,-0.22786 z m 0,-0.30381 q 0.444296,0 0.697916,0.30381 0.253619,0.30382 0.253619,0.84133 0,0.53557 -0.253619,0.84134 -0.25362,0.30381 -0.697916,0.30381 -0.446148,0 -0.699767,-0.30381 -0.251769,-0.30577 -0.251769,-0.84134 0,-0.53751 0.251769,-0.84133 0.253619,-0.30381 0.699767,-0.30381 z"
+ style="stroke-width:0.07716621"
+ id="path901"
+ inkscape:connector-curvature="0" />
+ <path
+ d="m -11.925778,193.38936 -0.0093,-1.16785 0.316938,-0.003 0.0092,1.15579 q 0.0022,0.27389 0.110065,0.41083 0.107876,0.13523 0.321465,0.13353 0.256652,-0.002 0.403486,-0.16685 0.148558,-0.16482 0.146313,-0.44731 l -0.0087,-1.09379 0.316938,-0.003 0.01533,1.9292 -0.316938,0.003 -0.0024,-0.29627 q -0.114012,0.17661 -0.26663,0.26396 -0.150909,0.0856 -0.35244,0.0872 -0.332442,0.003 -0.506333,-0.20269 -0.173891,-0.20533 -0.177052,-0.60323 z"
+ style="stroke-width:0.07000434"
+ id="path903"
+ inkscape:connector-curvature="0" />
+ <path
+ d="m -9.2205509,191.66729 v 0.65016 h 0.7963034 v 0.29238 h -0.7963034 v 1.24307 q 0,0.28011 0.077739,0.35984 0.079841,0.0798 0.3214628,0.0798 h 0.3971013 v 0.31485 h -0.3971013 q -0.4475267,0 -0.617713,-0.16152 -0.1701861,-0.16357 -0.1701861,-0.59291 v -1.24308 H -9.892892 v -0.29237 h 0.2836438 v -0.65017 z"
+ style="stroke-width:0.08423072"
+ id="path905"
+ inkscape:connector-curvature="0" />
+ </g>
+ <g
+ aria-label="one"
+ transform="matrix(0.96137546,-0.34508222,-0.14753322,1.1131988,64.324907,27.967859)"
+ style="font-style:normal;font-weight:normal;font-size:3.52777767px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.07000434"
+ id="text892">
+ <path
+ d="m -21.637912,192.23885 q -0.254937,0 -0.403076,0.19981 -0.148139,0.1981 -0.148139,0.54433 0,0.34623 0.146417,0.54605 0.148139,0.19809 0.404798,0.19809 0.253215,0 0.401354,-0.19982 0.148139,-0.19981 0.148139,-0.54432 0,-0.34279 -0.148139,-0.5426 -0.148139,-0.20154 -0.401354,-0.20154 z m 0,-0.26872 q 0.413412,0 0.649401,0.26872 0.235989,0.26872 0.235989,0.74414 0,0.4737 -0.235989,0.74414 -0.235989,0.26872 -0.649401,0.26872 -0.415134,0 -0.651123,-0.26872 -0.234266,-0.27044 -0.234266,-0.74414 0,-0.47542 0.234266,-0.74414 0.235989,-0.26872 0.651123,-0.26872 z"
+ style="stroke-width:0.07000434"
+ id="path894"
+ inkscape:connector-curvature="0" />
+ <path
+ d="m -18.657729,192.65297 0.191769,1.13213 -0.317087,0.0526 -0.190066,-1.12207 q -0.04511,-0.26629 -0.174362,-0.38088 -0.129256,-0.11459 -0.342945,-0.0791 -0.256773,0.0426 -0.378027,0.22625 -0.121254,0.18367 -0.07473,0.45833 l 0.179571,1.06012 -0.318811,0.0529 -0.317724,-1.87572 0.318811,-0.0529 0.04936,0.2914 q 0.08508,-0.18801 0.224276,-0.29717 0.140918,-0.10943 0.342544,-0.14286 0.332598,-0.0552 0.537247,0.11753 0.204365,0.171 0.270179,0.55954 z"
+ style="stroke-width:0.07000434"
+ id="path896"
+ inkscape:connector-curvature="0" />
+ <path
+ d="m -16.339355,192.90203 v 0.15503 h -1.457275 q 0.02067,0.32728 0.19637,0.49954 0.177423,0.17053 0.492649,0.17053 0.18259,0 0.353122,-0.0448 0.172255,-0.0448 0.341065,-0.13436 v 0.29973 q -0.170533,0.0723 -0.349678,0.11024 -0.179144,0.0379 -0.363457,0.0379 -0.461643,0 -0.732083,-0.26872 -0.268717,-0.26872 -0.268717,-0.72692 0,-0.4737 0.254937,-0.75103 0.256659,-0.27905 0.690741,-0.27905 0.389296,0 0.61495,0.25149 0.227376,0.24977 0.227376,0.68041 z m -0.316949,-0.093 q -0.0034,-0.2601 -0.146416,-0.41513 -0.141249,-0.15503 -0.375516,-0.15503 -0.265272,0 -0.425469,0.14986 -0.158474,0.14986 -0.18259,0.42202 z"
+ style="stroke-width:0.07000434"
+ id="path898"
+ inkscape:connector-curvature="0" />
+ </g>
+ <g
+ aria-label="I Love Cookies"
+ transform="matrix(0.88134036,-0.06480396,0.2054298,1.6115106,-10.378218,-125.02066)"
+ style="font-style:normal;font-weight:normal;font-size:4.94244957px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.03269225"
+ id="text901">
+ <path
+ d="m -40.322279,199.62443 0.644232,-0.0354 0.120382,3.43097 2.450886,0.13734 0.03245,0.47487 -2.962824,0.16259 z"
+ style="stroke-width:0.04050894"
+ id="path906"
+ inkscape:connector-curvature="0"
+ sodipodi:nodetypes="ccccccc" />
+ <path
+ d="m -35.357614,200.76271 q -0.404796,0 -0.640016,0.37017 -0.23522,0.36697 -0.23522,1.00838 0,0.64142 0.232485,1.01158 0.235219,0.36697 0.642751,0.36697 0.402062,0 0.637281,-0.37017 0.23522,-0.37016 0.23522,-1.00838 0,-0.63502 -0.23522,-1.0052 -0.235219,-0.37335 -0.637281,-0.37335 z m 0,-0.49782 q 0.656427,0 1.031137,0.49782 0.374711,0.49781 0.374711,1.37855 0,0.87755 -0.374711,1.37855 -0.37471,0.49782 -1.031137,0.49782 -0.659162,0 -1.033873,-0.49782 -0.371974,-0.501 -0.371974,-1.37855 0,-0.88074 0.371974,-1.37855 0.374711,-0.49782 1.033873,-0.49782 z"
+ style="stroke-width:0.04002121"
+ id="path908"
+ inkscape:connector-curvature="0" />
+ <path
+ d="m -33.475857,200.50604 h 0.683962 l 0.929968,3.18139 1.525279,-3.18139 h 0.683962 l -1.539294,3.73325 -0.810729,0.21497 z"
+ style="stroke-width:0.04763455"
+ id="path910"
+ inkscape:connector-curvature="0"
+ sodipodi:nodetypes="cccccccc" />
+ <path
+ d="m -27.17963,202.47284 v 0.25834 l -2.313905,0.4092 c 0.02188,0.3597 0.125814,0.61879 0.311803,0.77726 0.187811,0.15623 0.448559,0.20484 0.782243,0.14583 0.193281,-0.0342 0.38018,-0.0921 0.560697,-0.17376 0.182341,-0.082 0.362859,-0.18854 0.541553,-0.31967 v 0.49944 c -0.180518,0.11229 -0.365594,0.20626 -0.555228,0.2819 -0.189635,0.0756 -0.382004,0.13067 -0.577109,0.16517 -0.488673,0.0864 -0.876148,0.006 -1.162423,-0.24221 -0.284451,-0.24821 -0.426677,-0.62683 -0.426677,-1.13584 0,-0.52624 0.134932,-0.96727 0.404797,-1.32308 0.271687,-0.35805 0.63728,-0.5777 1.096779,-0.65895 0.41209,-0.0729 0.737568,0.009 0.976435,0.2464 0.24069,0.23491 0.361035,0.59156 0.361035,1.06995 z m -0.602479,-0.13215 c -0.0036,-0.2883 -0.09763,-0.47211 -0.249021,-0.61757 -0.14952,-0.14578 -0.232516,-0.16366 -0.480499,-0.11981 -0.280805,0.0497 -0.505996,0.17273 -0.675573,0.36918 -0.167754,0.19615 -0.363613,0.5138 -0.389141,0.82066 z"
+ style="stroke-width:0.03795681"
+ id="path912"
+ inkscape:connector-curvature="0"
+ sodipodi:nodetypes="cccccccccccscccsccccccc" />
+ <path
+ d="m -22.945679,200.82302 v 0.61693 q -0.325406,-0.27515 -0.695476,-0.41129 -0.366879,-0.13612 -0.781611,-0.13612 -0.816705,0 -1.250579,0.45473 -0.433875,0.45184 -0.433875,1.30918 0,0.85445 0.433875,1.30918 0.433874,0.45185 1.250579,0.45185 0.414732,0 0.781611,-0.13614 0.37007,-0.13612 0.695476,-0.4113 v 0.61115 q -0.338168,0.20855 -0.717807,0.31282 -0.37645,0.10427 -0.797563,0.10427 -1.081496,0 -1.703594,-0.59957 -0.6221,-0.60246 -0.6221,-1.64227 0,-1.04271 0.6221,-1.64228 0.622098,-0.60245 1.703594,-0.60245 0.427494,0 0.803944,0.10427 0.379639,0.10143 0.711426,0.30703 z"
+ style="stroke-width:0.04117904"
+ id="path914"
+ inkscape:connector-curvature="0" />
+ <path
+ d="m -21.466727,202.53026 q -0.357169,0 -0.48726,0.27994 -0.130756,0.27753 0.0035,0.7626 0.134213,0.48508 0.416798,0.76502 0.284331,0.27753 0.643914,0.27753 0.354756,0 0.484846,-0.27994 0.130087,-0.27995 -0.0035,-0.76261 -0.132874,-0.48024 -0.417875,-0.76019 -0.285665,-0.28235 -0.640421,-0.28235 z m -0.104166,-0.37648 q 0.579193,0 1.013982,0.37648 0.434785,0.37647 0.619075,1.04254 0.183622,0.66366 -0.04217,1.04255 -0.226457,0.37648 -0.80565,0.37648 -0.581607,0 -1.016396,-0.37648 -0.433041,-0.37889 -0.616663,-1.04255 -0.18429,-0.66607 0.03976,-1.04254 0.226457,-0.37648 0.808064,-0.37648 z"
+ style="stroke-width:0.03269225"
+ id="path916"
+ inkscape:connector-curvature="0" />
+ <path
+ d="m -18.929377,200.90397 q -0.464482,0 -0.633659,0.34453 -0.170042,0.34157 0.0046,0.93855 0.174538,0.597 0.542027,0.94153 0.36976,0.34157 0.83738,0.34157 0.461344,0 0.630522,-0.34453 0.169172,-0.34454 -0.0046,-0.93857 -0.172796,-0.59104 -0.543427,-0.93558 -0.371496,-0.3475 -0.83284,-0.3475 z m -0.135463,-0.46334 q 0.753216,0 1.318639,0.46334 0.565417,0.46333 0.805078,1.28308 0.238792,0.81679 -0.05484,1.2831 -0.294497,0.46334 -1.047713,0.46334 -0.756353,0 -1.321776,-0.46334 -0.563152,-0.46631 -0.801944,-1.2831 -0.239661,-0.81975 0.05171,-1.28308 0.294497,-0.46334 1.05085,-0.46334 z"
+ style="stroke-width:0.04135929"
+ id="path918"
+ inkscape:connector-curvature="0" />
+ <path
+ d="m -16.865342,201.16674 h 0.446462 l 0.613634,2.21783 1.002396,-1.16563 0.368688,0.19844 -0.885181,1.06613 1.891796,1.43833 h -0.579193 l -1.738414,-1.32008 0.365243,1.32008 h -0.446462 z"
+ style="stroke-width:0.03269225"
+ id="path920"
+ inkscape:connector-curvature="0"
+ sodipodi:nodetypes="cccccccccccc" />
+ <path
+ d="m -13.4376,201.37704 h 0.582962 v 2.7029 H -13.4376 Z m 0,-1.0522 h 0.582962 l 0.132292,0.59537 -0.715254,-0.0331 z"
+ style="stroke-width:0.03745848"
+ id="path922"
+ inkscape:connector-curvature="0"
+ sodipodi:nodetypes="cccccccccc" />
+ <path
+ d="m -8.6028135,202.61748 v 0.2172 h -2.6803615 c 0.02535,0.30568 0.145741,0.53896 0.361184,0.69985 0.217554,0.15928 0.519596,0.23892 0.906126,0.23892 0.223892,0 0.440391,-0.0209 0.649497,-0.0627 0.2112179,-0.0418 0.4203237,-0.10455 0.6273175,-0.18824 v 0.41991 c -0.2091057,0.0676 -0.4234922,0.11906 -0.6431595,0.15445 -0.2196665,0.0354 -0.4425018,0.0531 -0.668506,0.0531 -0.566065,0 -1.014904,-0.12549 -1.346517,-0.37648 -0.329501,-0.25098 -0.494251,-0.59045 -0.494251,-1.01841 0,-0.44244 0.156302,-0.79318 0.468906,-1.05221 0.314715,-0.26063 0.738207,-0.39095 1.270477,-0.39095 0.4773537,0 0.8543785,0.11745 1.1310746,0.35234 0.2788086,0.23329 0.4182129,0.55104 0.4182129,0.95326 z m -0.8310103,-0.24608 c -0.0042,-0.24294 0.1540791,-0.32105 -0.021256,-0.46585 -0.1731991,-0.14479 -0.403427,-0.21719 -0.6906832,-0.21719 -0.325276,0 -0.586131,0.07 -0.782564,0.20995 -0.194321,0.13997 0.0079,0.2213 -0.02164,0.4755 z"
+ style="stroke-width:0.03745848"
+ id="path924"
+ inkscape:connector-curvature="0"
+ sodipodi:nodetypes="ccccsccccscscscccccsccc" />
+ <path
+ d="m -5.1228851,200.82694 v 0.53064 c -0.1817981,-0.0927 -0.3705884,-0.16546 -0.5663711,-0.21839 -0.1957826,-0.0529 -0.3985574,-0.0859 -0.6083245,-0.099 -0.3193121,-0.0199 -0.5593788,0.008 -0.7202002,0.0831 -0.1584907,0.0755 -0.1219808,0.19862 -0.1219808,0.36939 0,0.13013 -0.058652,0.23637 0.055554,0.31873 0.1142066,0.0804 0.343785,0.16484 0.6887353,0.25348 l 0.2202553,0.0565 c 0.4568261,0.11395 0.7807998,0.25518 0.9719209,0.42368 0.1934518,0.16661 0.2901777,0.38918 0.2901777,0.66771 0,0.31717 -0.1445062,0.55922 -0.4335186,0.72617 -0.2866815,0.16709 -0.6817428,0.28451 -1.1851839,0.25304 -0.2097671,-0.0131 -0.1146644,0.0546 -0.4919054,-0.0132 -0.4245198,-0.0652 -0.6138119,-6.7e-4 -0.8820689,-0.33567 l 0.3141927,-0.46368 c 0.2377361,0.12261 0.1577833,0.10281 0.388527,0.17214 0.2307438,0.0672 0.4591568,0.1079 0.6852391,0.12203 0.3029969,0.0189 0.5360714,-0.0112 0.6992236,-0.0905 0.1631521,-0.0813 0.2447282,-0.20428 0.2447282,-0.36895 0,-0.15249 -0.059434,-0.27311 -0.178302,-0.36186 -0.1165373,-0.0886 -0.3740847,-0.18296 -0.772642,-0.28313 l -0.2237516,-0.0597 c -0.3985574,-0.0981 -0.6864044,-0.22794 -0.863541,-0.38945 -0.1771366,-0.16355 -0.2657049,-0.37748 -0.2657049,-0.64179 0,-0.32123 0.1305217,-0.56111 0.3915651,-0.71964 0.2610434,-0.15852 0.6316318,-0.22277 1.1117653,-0.19275 0.2377361,0.0149 0.4614877,0.0441 0.6712548,0.0877 0.2097671,0.0436 0.4032189,0.10144 0.5803555,0.17352 z"
+ style="stroke-width:0.04423349"
+ id="path926"
+ inkscape:connector-curvature="0"
+ sodipodi:nodetypes="cccccsccccsccccccccsccccsccscc" />
+ <text
+ xml:space="preserve"
+ style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:10.58333397px;line-height:1.25;font-family:'.Damascus PUA';-inkscape-font-specification:'.Damascus PUA';letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.00864983"
+ x="-42.478462"
+ y="196.64659"
+ id="text1439"><tspan
+ sodipodi:role="line"
+ id="tspan1437"
+ x="-42.478462"
+ y="204.10867"
+ style="stroke-width:0.00864983" /></text>
+ <g
+ aria-label="I"
+ style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:10.58333397px;line-height:1.25;font-family:'.Damascus PUA';-inkscape-font-specification:'.Damascus PUA';letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.00864983"
+ id="text1443"
+ transform="matrix(0.95613575,-0.12921776,0.08046973,0.8264771,-20.759577,36.918454)">
+ <path
+ d="m -39.130096,191.22162 v 5.17798 h 1.488281 c 0.103353,0 0.177422,0.0207 0.222209,0.062 0.04479,0.0379 0.06718,0.0895 0.06718,0.15503 0,0.062 -0.02239,0.11368 -0.06718,0.15503 -0.04479,0.0413 -0.118856,0.062 -0.222209,0.062 h -3.410645 c -0.103353,0 -0.177422,-0.0207 -0.222208,-0.062 -0.04479,-0.0413 -0.06718,-0.093 -0.06718,-0.15503 0,-0.0655 0.02239,-0.11714 0.06718,-0.15503 0.04479,-0.0413 0.118856,-0.062 0.222208,-0.062 l 1.315915,-0.007 0.172367,-5.17104 h -1.488282 c -0.103353,0 -0.177422,-0.0189 -0.222208,-0.0568 -0.04479,-0.0413 -0.06718,-0.0947 -0.06718,-0.16019 0,-0.0655 0.02239,-0.11714 0.06718,-0.15503 0.04479,-0.0413 0.118856,-0.062 0.222208,-0.062 h 3.410645 c 0.103353,0 0.177422,0.0207 0.222209,0.062 0.04479,0.0379 0.06718,0.0895 0.06718,0.15503 0,0.0655 -0.02239,0.11886 -0.06718,0.16019 -0.04479,0.0379 -0.118856,0.0568 -0.222209,0.0568 z"
+ style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:10.58333397px;font-family:'Courier New';-inkscape-font-specification:'Courier New, Normal';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-feature-settings:normal;text-align:start;writing-mode:lr-tb;text-anchor:start;stroke-width:0.00864983"
+ id="path1445"
+ inkscape:connector-curvature="0"
+ sodipodi:nodetypes="ccscscsscscsccscscsscscsc" />
+ </g>
+ </g>
+ </g>
+ <text
+ id="text983"
+ y="224.61163"
+ x="31.011026"
+ style="font-style:normal;font-weight:normal;font-size:10.58333302px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.26458332"
+ xml:space="preserve"><tspan
+ style="stroke-width:0.26458332"
+ y="233.9754"
+ x="31.011026"
+ id="tspan981"
+ sodipodi:role="line" /></text>
+ <g
+ aria-label="father & son"
+ transform="matrix(1.0190173,0,0,0.9813376,0.5291667,0.52916667)"
+ style="font-style:normal;font-weight:normal;font-size:8.01353455px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.20033836"
+ id="text1057" />
+ <g
+ id="g8072"
+ transform="matrix(0.26889251,-0.01002392,-0.03200614,0.19788514,10.15233,292.24297)">
+ <g
+ style="display:inline"
+ inkscape:label="Layer 1"
+ id="layer4" />
+ <path
+ id="rect5872"
+ d="m 11.987289,9.3234482 h 7.991524 v 3.9957608 h -7.991524 z"
+ style="opacity:1;fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:0;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+ inkscape:connector-curvature="0" />
+ <path
+ id="rect5874"
+ d="m 14.667374,10.662096 h 3.995763 v 1.331921 h -3.995763 z"
+ style="opacity:1;fill:#ffffff;fill-opacity:0.98571424;stroke:#000000;stroke-width:0;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+ inkscape:connector-curvature="0" />
+ <path
+ id="rect5878"
+ d="m -29.323654,9.3234482 h 7.989551 v 3.9957608 h -7.989551 z"
+ style="opacity:1;fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:0;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+ transform="scale(-1,1)"
+ inkscape:connector-curvature="0" />
+ <path
+ id="rect5880"
+ d="m -26.64423,10.662096 h 3.994777 v 1.331921 h -3.994777 z"
+ style="opacity:1;fill:#ffffff;fill-opacity:0.98571424;stroke:#000000;stroke-width:0;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+ transform="scale(-1,1)"
+ inkscape:connector-curvature="0" />
+ <path
+ id="rect5882"
+ d="m 19.995058,14.667374 h 1.331921 v 3.995762 h -1.331921 z"
+ style="opacity:1;fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:0;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+ inkscape:connector-curvature="0" />
+ <path
+ id="rect5884"
+ d="m 21.326979,17.331215 h 1.315677 v 1.33192 h -1.315677 z"
+ style="opacity:1;fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:0;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+ inkscape:connector-curvature="0" />
+ <path
+ id="rect5886"
+ d="m 11.954803,20.011301 h 2.696328 v 2.663842 h -2.696328 z"
+ style="opacity:1;fill:#001800;fill-opacity:1;stroke:#000000;stroke-width:0;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+ inkscape:connector-curvature="0" />
+ <path
+ id="rect5888"
+ d="m 27.970341,20.011301 h 2.696327 v 2.663842 h -2.696327 z"
+ style="opacity:1;fill:#001800;fill-opacity:1;stroke:#000000;stroke-width:0;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+ inkscape:connector-curvature="0" />
+ <path
+ id="rect5890"
+ d="m 14.651131,20.011301 h 13.351695 v 1.33192 H 14.651131 Z"
+ style="opacity:1;fill:#001800;fill-opacity:1;stroke:#000000;stroke-width:0;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+ inkscape:connector-curvature="0" />
+ </g>
+ </g>
+</svg>
diff --git a/res/computerscare-medium-knob-effed.svg b/res/computerscare-medium-knob-effed.svg
@@ -0,0 +1,74 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<svg
+ xmlns:dc="http://purl.org/dc/elements/1.1/"
+ xmlns:cc="http://creativecommons.org/ns#"
+ xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+ xmlns:svg="http://www.w3.org/2000/svg"
+ xmlns="http://www.w3.org/2000/svg"
+ xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+ xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+ id="Layer_1"
+ data-name="Layer 1"
+ viewBox="0 0 28 28"
+ version="1.1"
+ sodipodi:docname="computerscare-medium-knob-effed.svg"
+ inkscape:version="0.92.2 5c3e80d, 2017-08-06"
+ width="28"
+ height="28">
+ <metadata
+ id="metadata1289">
+ <rdf:RDF>
+ <cc:Work
+ rdf:about="">
+ <dc:format>image/svg+xml</dc:format>
+ <dc:type
+ rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+ <dc:title>01 Big Knob</dc:title>
+ </cc:Work>
+ </rdf:RDF>
+ </metadata>
+ <sodipodi:namedview
+ pagecolor="#ffffff"
+ bordercolor="#666666"
+ borderopacity="1"
+ objecttolerance="10"
+ gridtolerance="10"
+ guidetolerance="10"
+ inkscape:pageopacity="0"
+ inkscape:pageshadow="2"
+ inkscape:window-width="1398"
+ inkscape:window-height="834"
+ id="namedview1287"
+ showgrid="false"
+ inkscape:zoom="15.733333"
+ inkscape:cx="10.260513"
+ inkscape:cy="14.442801"
+ inkscape:window-x="0"
+ inkscape:window-y="0"
+ inkscape:window-maximized="0"
+ inkscape:current-layer="Big_Knob" />
+ <defs
+ id="defs1279">
+ <style
+ id="style1277">.cls-1{fill:#245559;}.cls-2{fill:none;stroke:#24c9a6;stroke-miterlimit:10;stroke-width:3px;}</style>
+ </defs>
+ <title
+ id="title1281">01 Big Knob</title>
+ <g
+ id="Big_Knob"
+ data-name="Big Knob"
+ transform="translate(0,-32)">
+ <path
+ style="fill:#245559;stroke:#000000;stroke-width:0.44949234;stroke-opacity:1"
+ d="M 27.281965,45.86697 C 28.119596,55.806861 21.656355,60.098038 14.240308,59.415042 7.4209214,58.786996 -1.0884456,53.018905 0.75553789,45.930272 3.2325316,36.408223 8.7500225,31.88879 14.240308,32.445502 c 4.113807,0.417138 6.056174,1.699822 10.081252,4.298793 2.501437,1.615165 2.727415,6.357859 2.960405,9.122675 z"
+ id="Big_Button_Circle"
+ inkscape:connector-curvature="0"
+ sodipodi:nodetypes="ssssss" />
+ <path
+ style="color:#000000;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:medium;line-height:normal;font-family:sans-serif;font-variant-ligatures:normal;font-variant-position:normal;font-variant-caps:normal;font-variant-numeric:normal;font-variant-alternates:normal;font-feature-settings:normal;text-indent:0;text-align:start;text-decoration:none;text-decoration-line:none;text-decoration-style:solid;text-decoration-color:#000000;letter-spacing:normal;word-spacing:normal;text-transform:none;writing-mode:lr-tb;direction:ltr;text-orientation:mixed;dominant-baseline:auto;baseline-shift:baseline;text-anchor:start;white-space:normal;shape-padding:0;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;vector-effect:none;fill:#24c9a6;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:0.27979493;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:10;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate"
+ d="m 14.045118,33.007491 c -0.901212,0.624222 -0.773465,3.36645 -0.773465,3.36645 l -0.45534,0.901175 -0.521089,0.915953 -0.04079,1.126303 0.828056,0.854017 -0.422931,0.983799 -0.574795,3.113605 c 1.538999,-0.310021 1.553591,-0.964526 4.197441,-0.729889 l -0.92262,-1.792916 -0.477568,-1.469672 -0.03868,-1.440186 0.304744,-0.623519 0.04412,-0.777177 -0.257525,-4.62905 c -0.733272,-0.06419 -0.832689,-0.08062 -0.838748,0.02061 -0.0042,0.06712 0,0 -0.05072,0.180496 0,0 -0.07689,0.06066 -0.09712,0.03956 -0.02032,-0.02109 0.09704,-0.03956 0.09704,-0.03956 z"
+ id="Button_Pointer"
+ inkscape:connector-curvature="0"
+ sodipodi:nodetypes="cccccccccccccccscacc" />
+ </g>
+</svg>
diff --git a/src/Computerscare.cpp b/src/Computerscare.cpp
@@ -12,4 +12,5 @@ void init(Plugin *p) {
p->addModel(modelComputerscareDebug);
p->addModel(modelComputerscarePatchSequencer);
p->addModel(modelComputerscareLaundrySoup);
+ p->addModel(modelComputerscareILoveCookies);
}
diff --git a/src/Computerscare.hpp b/src/Computerscare.hpp
@@ -16,20 +16,19 @@ extern Plugin *plugin;
#define COLOR_PINK nvgRGB(250, 190, 190)
#endif
-//#245559
-// 24c9a6
-
-
static const NVGcolor COLOR_COMPUTERSCARE_LIGHT_GREEN = nvgRGB(0xC0, 0xE7, 0xDE);
-
static const NVGcolor COLOR_COMPUTERSCARE_GREEN = nvgRGB(0x24, 0xc9, 0xa6);
+static const NVGcolor COLOR_COMPUTERSCARE_RED = nvgRGB(0xC4, 0x34, 0x21);
+static const NVGcolor COLOR_COMPUTERSCARE_YELLOW = nvgRGB(0xE4, 0xC4, 0x21);
+static const NVGcolor COLOR_COMPUTERSCARE_BLUE = nvgRGB(0x24, 0x44, 0xC1);
+static const NVGcolor COLOR_COMPUTERSCARE_TRANSPARENT = nvgRGBA(0x00, 0x00,0x00,0x00);
-//36 201 166
// Forward-declare each Model, defined in each module source file
extern Model *modelComputerscareDebug;
extern Model *modelComputerscarePatchSequencer;
extern Model *modelComputerscareLaundrySoup;
+extern Model *modelComputerscareILoveCookies;
struct ComputerscareGreenLight : GrayModuleLightWidget {
ComputerscareGreenLight() {
@@ -37,12 +36,48 @@ struct ComputerscareGreenLight : GrayModuleLightWidget {
}
};
+struct ComputerscareRedLight : ModuleLightWidget {
+ ComputerscareRedLight() {
+ bgColor = nvgRGBA(0x5a, 0x5a, 0x5a, 0x00);
+ borderColor = nvgRGBA(0, 0, 0, 0x00);
+ addBaseColor(COLOR_COMPUTERSCARE_RED);
+ }
+};
+struct ComputerscareYellowLight : ModuleLightWidget {
+ ComputerscareYellowLight() {
+ bgColor = nvgRGBA(0x5a, 0x5a, 0x5a, 0x00);
+ borderColor = nvgRGBA(0, 0, 0, 0x00);
+ addBaseColor(COLOR_COMPUTERSCARE_YELLOW);
+ }
+};
+struct ComputerscareBlueLight : ModuleLightWidget {
+ ComputerscareBlueLight() {
+ bgColor = nvgRGBA(0x5a, 0x5a, 0x5a, 0x00);
+ borderColor = nvgRGBA(0, 0, 0, 0x00);
+ addBaseColor(COLOR_COMPUTERSCARE_BLUE);
+ }
+};
+
+
template <typename BASE>
struct ComputerscareHugeLight : BASE {
ComputerscareHugeLight() {
this->box.size = mm2px(Vec(8.179, 8.179));
}
};
+template <typename BASE>
+struct ComputerscareMediumLight : BASE {
+ ComputerscareMediumLight() {
+ this->box.size = mm2px(Vec(6,6));
+ }
+};
+template <typename BASE>
+struct ComputerscareSmallLight : BASE {
+ ComputerscareSmallLight() {
+ this->box.size = mm2px(Vec(3,3));
+ }
+};
+
struct OutPort : SVGPort {
OutPort() {
@@ -74,9 +109,13 @@ struct InPort : SVGPort {
struct LrgKnob : RoundBlackSnapKnob {
LrgKnob() {
- setSVG(SVG::load(assetPlugin(plugin, "res/computerscare-big-knob-effed.svg")));
- //void randomize() override;
+ setSVG(SVG::load(assetPlugin(plugin, "res/computerscare-big-knob-effed.svg")));
box.size = Vec(32,32);
}
void randomize() override { return; }
};
+struct SmoothKnob : RoundBlackKnob {
+ SmoothKnob() {
+ setSVG(SVG::load(assetPlugin(plugin, "res/computerscare-medium-knob-effed.svg")));
+ }
+};
diff --git a/src/ComputerscareILoveCookies.cpp b/src/ComputerscareILoveCookies.cpp
@@ -0,0 +1,430 @@
+#include "Computerscare.hpp"
+#include "dsp/digital.hpp"
+#include "dsp/filter.hpp"
+#include "window.hpp"
+#include "dtpulse.hpp"
+
+#include <string>
+#include <sstream>
+#include <iomanip>
+
+struct ComputerscareILoveCookies;
+
+const int numFields = 3;
+const int numKnobRows = 5;
+const int numKnobColumns = 5;
+const std::string knoblookup = "abcdefghijklmnopqrstuvwxy";
+const std::vector<NVGcolor> outlineColorMap = {COLOR_COMPUTERSCARE_RED,COLOR_COMPUTERSCARE_YELLOW,COLOR_COMPUTERSCARE_BLUE};
+
+class MyTextFieldCookie : public LedDisplayTextField {
+
+public:
+ int fontSize = 18;
+ MyTextFieldCookie() : LedDisplayTextField() {}
+ void setModule(ComputerscareILoveCookies* _module) {
+ module = _module;
+ }
+ virtual void onTextChange() override;
+ int getTextPosition(Vec mousePos) override {
+ bndSetFont(font->handle);
+ int textPos = bndIconLabelTextPosition(gVg, textOffset.x, textOffset.y,
+ box.size.x - 2*textOffset.x, box.size.y - 2*textOffset.y,
+ -1, fontSize, text.c_str(), mousePos.x, mousePos.y);
+ bndSetFont(gGuiFont->handle);
+ return textPos;
+ }
+ void draw(NVGcontext *vg) override {
+ nvgScissor(vg, 0, 0, box.size.x, box.size.y);
+
+ // Background
+ nvgFontSize(vg, fontSize);
+ nvgBeginPath(vg);
+ nvgRoundedRect(vg, 0, 0, box.size.x, box.size.y, 5.0);
+ nvgFillColor(vg, nvgRGB(0x00, 0x00, 0x00));
+ nvgFill(vg);
+
+ // Text
+ if (font->handle >= 0) {
+ bndSetFont(font->handle);
+
+ NVGcolor highlightColor = color;
+ highlightColor.a = 0.5;
+ int begin = min(cursor, selection);
+ int end = (this == gFocusedWidget) ? max(cursor, selection) : -1;
+ //bndTextField(vg,textOffset.x,textOffset.y+2, box.size.x, box.size.y, -1, 0, 0, const char *text, int cbegin, int cend);
+ bndIconLabelCaret(vg, textOffset.x, textOffset.y - 3,
+ box.size.x - 2*textOffset.x, box.size.y - 2*textOffset.y,
+ -1, color, fontSize, text.c_str(), highlightColor, begin, end);
+
+ bndSetFont(gGuiFont->handle);
+ }
+
+ nvgResetScissor(vg);
+ };
+
+private:
+ ComputerscareILoveCookies* module;
+};
+
+struct ComputerscareILoveCookies : Module {
+ enum ParamIds {
+ KNOB_PARAM,
+ NUM_PARAMS = KNOB_PARAM + numKnobRows * numKnobColumns
+ };
+ enum InputIds {
+ GLOBAL_CLOCK_INPUT,
+ GLOBAL_RESET_INPUT,
+ CLOCK_INPUT,
+ RESET_INPUT = CLOCK_INPUT + numFields,
+ NUM_INPUTS = RESET_INPUT + numFields
+ };
+ enum OutputIds {
+ TRG_OUTPUT,
+ FIRST_STEP_OUTPUT = TRG_OUTPUT + numFields,
+ NUM_OUTPUTS = FIRST_STEP_OUTPUT + numFields
+ };
+ enum LightIds {
+ SWITCH_LIGHTS,
+ NUM_LIGHTS = SWITCH_LIGHTS + numKnobRows * numKnobColumns * numFields
+ };
+
+ SchmittTrigger globalClockTrigger;
+ SchmittTrigger globalResetTriggerInput;
+
+ SchmittTrigger clockTriggers[numFields];
+ SchmittTrigger resetTriggers[numFields];
+
+ MyTextFieldCookie* textFields[numFields];
+
+ std::vector<int> absoluteSequences[numFields];
+
+ int absoluteStep[numFields] = {0};
+ int numSteps[numFields] = {0};
+
+ComputerscareILoveCookies() : Module(NUM_PARAMS, NUM_INPUTS, NUM_OUTPUTS, NUM_LIGHTS) {}
+ void step() override;
+
+ json_t *toJson() override
+ {
+ json_t *rootJ = json_object();
+
+ json_t *sequencesJ = json_array();
+ for (int i = 0; i < numFields; i++) {
+ json_t *sequenceJ = json_string(textFields[i]->text.c_str());
+ json_array_append_new(sequencesJ, sequenceJ);
+ }
+ json_object_set_new(rootJ, "sequences", sequencesJ);
+
+ return rootJ;
+ }
+
+ void fromJson(json_t *rootJ) override
+ {
+ json_t *sequencesJ = json_object_get(rootJ, "sequences");
+ if (sequencesJ) {
+ for (int i = 0; i < numFields; i++) {
+ json_t *sequenceJ = json_array_get(sequencesJ, i);
+ if (sequenceJ)
+ textFields[i]->text = json_string_value(sequenceJ);
+ }
+ }
+ onCreate();
+ }
+
+ void onRandomize() override {
+ randomizeAllFields();
+ }
+
+ void randomizeAllFields() {
+ std::string mainlookup =knoblookup;
+ std::string string = "";
+ std::string randchar = "";
+ int length = 0;
+
+ for (int i = 0; i < numFields; i++) {
+ length = rand() % 12 + 2;
+ string = "";
+ for(int j = 0; j < length; j++) {
+ randchar = mainlookup[rand() % mainlookup.size()];
+ string = string + randchar;
+ }
+ textFields[i]->text = string;
+ }
+ onCreate();
+
+ }
+
+ void parseFormula(std::string input, int index) {
+ std::vector<int> absoluteSequence;
+ int currentVal;
+ absoluteSequence.resize(0);
+
+ for(unsigned int i = 0; i < input.length(); i++) {
+ currentVal = knoblookup.find(input[i]);
+ absoluteSequence.push_back(currentVal);
+ }
+
+ numSteps[index] = absoluteSequence.size();
+ absoluteSequences[index] = absoluteSequence;
+ }
+ int getAbsoluteStep(int index) {
+ return this->absoluteStep[index];
+ }
+ int getCurrentStep(int index) {
+ return absoluteSequences[index][getAbsoluteStep(index)];
+ }
+void onCreate () override
+ {
+ for(int i = 0; i < numFields; i++) {
+ if(textFields[i]->text.size() > 0) {
+ parseFormula(textFields[i]->text,i);
+ }
+ resetOneOfThem(i);
+ }
+ }
+
+ void onReset () override
+ {
+ onCreate();
+ }
+
+ /*
+ lets say the sequence "332" is entered in the 0th (first)
+ numSteps[0] would then be 8 (3 + 3 + 2)
+ absoluteSequences[0] would be the vector (1,0,0,1,0,0,1,0)
+ absoluteStep[0] would run from 0 to 7
+
+ 332-4 (332 offset by 4)
+
+ */
+ void incrementInternalStep(int i) {
+ this->absoluteStep[i] +=1;
+ this->absoluteStep[i] %= this->numSteps[i];
+ }
+
+ void resetOneOfThem(int i) {
+ this->absoluteStep[i] = 0;
+ }
+};
+
+
+void ComputerscareILoveCookies::step() {
+
+ bool globalGateIn = globalClockTrigger.isHigh();
+ bool activeStep = 0;
+ int activeKnob;
+ bool atFirstStep = false;
+ bool clocked = globalClockTrigger.process(inputs[GLOBAL_CLOCK_INPUT].value);
+ bool currentTriggerIsHigh;
+ bool currentTriggerClocked;
+ bool globalResetTriggered = globalResetTriggerInput.process(inputs[GLOBAL_RESET_INPUT].value / 2.f);
+ bool currentResetActive;
+ bool currentResetTriggered;
+
+ for(int i = 0; i < numFields; i++) {
+ activeStep = false;
+ currentResetActive = inputs[RESET_INPUT + i].active;
+ currentResetTriggered = resetTriggers[i].process(inputs[RESET_INPUT+i].value / 2.f);
+ currentTriggerIsHigh = clockTriggers[i].isHigh();
+ currentTriggerClocked = clockTriggers[i].process(inputs[CLOCK_INPUT + i].value);
+
+ if(this->numSteps[i] > 0) {
+ if (inputs[CLOCK_INPUT + i].active) {
+ if(currentTriggerClocked) {
+ incrementInternalStep(i);
+ }
+ }
+ else {
+ if (inputs[GLOBAL_CLOCK_INPUT].active && clocked) {
+ incrementInternalStep(i);
+ }
+ }
+ if((currentResetActive && currentResetTriggered) || (!currentResetActive && globalResetTriggered)) {
+ resetOneOfThem(i);
+ }
+
+ activeKnob = absoluteSequences[i][this->absoluteStep[i]];
+ //printf("%i, %f",i,activeKnob);
+
+ atFirstStep = (this->absoluteStep[i] == 0);
+ for(int k = 0; k < numKnobRows * numKnobColumns; k++) {
+ lights[SWITCH_LIGHTS + i*numKnobRows*numKnobColumns + k].value = (k==activeKnob) ? 1.0 : 0.0;
+ }
+ }
+ if(inputs[CLOCK_INPUT + i].active) {
+ outputs[TRG_OUTPUT + i].value = params[KNOB_PARAM + activeKnob].value;
+
+ outputs[FIRST_STEP_OUTPUT + i].value = (currentTriggerIsHigh && atFirstStep) ? 10.f : 0.0f;
+ }
+ else {
+ outputs[TRG_OUTPUT + i].value = params[KNOB_PARAM + activeKnob].value;
+ outputs[FIRST_STEP_OUTPUT + i].value = (globalGateIn && atFirstStep) ? 10.f : 0.0f;
+ }
+ }
+}
+
+/////////////////////////////////////////////////
+struct NumberDisplayWidget3cookie : TransparentWidget {
+
+ int *value;
+ std::shared_ptr<Font> font;
+ NVGcolor outlineColor;
+
+ NumberDisplayWidget3cookie() {
+ font = Font::load(assetPlugin(plugin, "res/digital-7.ttf"));
+ };
+
+ void draw(NVGcontext *vg) override
+ {
+ // Background
+ NVGcolor backgroundColor = nvgRGB(0x00, 0x00, 0x00);
+
+ nvgBeginPath(vg);
+ nvgRoundedRect(vg, -2, -4, box.size.x+4, box.size.y+8, 4.0);
+ nvgFillColor(vg, outlineColor);
+ nvgFill(vg);
+
+ nvgBeginPath(vg);
+ nvgRoundedRect(vg, 0.0, 0.0, box.size.x, box.size.y, 4.0);
+ nvgFillColor(vg, backgroundColor);
+ nvgFill(vg);
+
+ // text
+ nvgFontSize(vg, 13);
+ nvgFontFaceId(vg, font->handle);
+ nvgTextLetterSpacing(vg, 2.5);
+
+ std::stringstream to_display;
+ to_display << std::setw(3) << *value;
+
+ Vec textPos = Vec(6.0f, 17.0f);
+ NVGcolor textColor = nvgRGB(0xC0, 0xE7, 0xDE);
+ nvgFillColor(vg, textColor);
+ nvgText(vg, textPos.x, textPos.y, to_display.str().c_str(), NULL);
+ }
+};
+////////////////////////////////////
+struct SmallLetterDisplay : TransparentWidget {
+
+ std::string value;
+ std::shared_ptr<Font> font;
+ bool active = false;
+
+ SmallLetterDisplay() {
+ font = Font::load(assetPlugin(plugin, "res/Oswald-Regular.ttf"));
+ };
+
+ void draw(NVGcontext *vg) override
+ {
+ // Background
+ NVGcolor backgroundColor = nvgRGB(0xC0, 0xE7, 0xDE);
+
+ if(active) {
+ nvgBeginPath(vg);
+ nvgRoundedRect(vg, -1.0, -1.0, box.size.x-3, box.size.y-3, 8.0);
+ nvgFillColor(vg, backgroundColor);
+ nvgFill(vg);
+ }
+
+ // text
+ nvgFontSize(vg, 19);
+ nvgFontFaceId(vg, font->handle);
+ nvgTextLetterSpacing(vg, 2.5);
+
+ Vec textPos = Vec(6.0f, 12.0f);
+ NVGcolor textColor = nvgRGB(0x10, 0x10, 0x00);
+ nvgFillColor(vg, textColor);
+ nvgTextBox(vg, textPos.x, textPos.y,80,value.c_str(), NULL);
+
+ }
+};
+void MyTextFieldCookie::onTextChange() {
+ module->onCreate();
+}
+
+struct ComputerscareILoveCookiesWidget : ModuleWidget {
+
+ double verticalSpacing = 18.4;
+ int verticalStart = 80;
+ int index;
+ double knobPosX;
+ double knobPosY;
+ double knobXStart = 2;
+ double knobYStart = 16;
+ double knobRowWidth = 13;
+ double knobColumnHeight = 10;
+ ComputerscareILoveCookiesWidget(ComputerscareILoveCookies *module) : ModuleWidget(module) {
+ setPanel(SVG::load(assetPlugin(plugin, "res/ComputerscareILoveCookiesPanel.svg")));
+
+
+ for(int i = 0; i < numKnobRows; i++) {
+ for(int j = 0; j < numKnobColumns; j++) {
+ knobPosX = knobXStart + j*knobRowWidth;
+ knobPosY = knobYStart + i*knobColumnHeight;
+ index = numKnobColumns*i + j;
+
+ addChild(ModuleLightWidget::create<ComputerscareMediumLight<ComputerscareRedLight>>(mm2px(Vec(knobPosX-3, knobPosY - 2)), module, ComputerscareILoveCookies::SWITCH_LIGHTS + index));
+ addChild(ModuleLightWidget::create<ComputerscareMediumLight<ComputerscareYellowLight>>(mm2px(Vec(knobPosX-3, knobPosY )), module, ComputerscareILoveCookies::SWITCH_LIGHTS + index + numKnobColumns*numKnobRows));
+ addChild(ModuleLightWidget::create<ComputerscareMediumLight<ComputerscareBlueLight>>(mm2px(Vec(knobPosX-3, knobPosY +2)), module, ComputerscareILoveCookies::SWITCH_LIGHTS + index + numKnobColumns*numKnobRows*2));
+
+ SmallLetterDisplay *letterDisplay = new SmallLetterDisplay();
+ letterDisplay->box.pos = mm2px(Vec(knobPosX-3,knobPosY-2));
+ letterDisplay->box.size = Vec(20, 20);
+ letterDisplay->value = knoblookup[index];
+ //letterDisplay->active = (module->absoluteSequences[i][module->absoluteStep[i]]==index);
+ addChild(letterDisplay);
+
+
+
+ ParamWidget* knob = ParamWidget::create<SmoothKnob>(mm2px(Vec(knobPosX,knobPosY)), module, ComputerscareILoveCookies::KNOB_PARAM +index, -10.0f, 10.0f, 0.0f);
+ addParam(knob);
+
+ }
+ }
+
+ //global clock input
+ addInput(Port::create<InPort>(mm2px(Vec(2 , 0)), Port::INPUT, module, ComputerscareILoveCookies::GLOBAL_CLOCK_INPUT));
+
+ //global reset input
+ addInput(Port::create<InPort>(mm2px(Vec(12 , 0)), Port::INPUT, module, ComputerscareILoveCookies::GLOBAL_RESET_INPUT));
+
+ for(int i = 0; i < numFields; i++) {
+ //first-step output
+ addOutput(Port::create<OutPort>(mm2px(Vec(42 , verticalStart + verticalSpacing*i - 11)), Port::OUTPUT, module, ComputerscareILoveCookies::FIRST_STEP_OUTPUT + i));
+
+ //individual output
+ addOutput(Port::create<OutPort>(mm2px(Vec(54 , verticalStart + verticalSpacing*i - 11)), Port::OUTPUT, module, ComputerscareILoveCookies::TRG_OUTPUT + i));
+
+ //individual clock input
+ addInput(Port::create<InPort>(mm2px(Vec(2, verticalStart + verticalSpacing*i-10)), Port::INPUT, module, ComputerscareILoveCookies::CLOCK_INPUT + i));
+
+ //individual reset input
+ addInput(Port::create<InPort>(mm2px(Vec(12, verticalStart + verticalSpacing*i-10)), Port::INPUT, module, ComputerscareILoveCookies::RESET_INPUT + i));
+
+ //sequence input field
+ textField = Widget::create<MyTextFieldCookie>(mm2px(Vec(1, verticalStart + verticalSpacing*i)));
+ textField->setModule(module);
+ textField->box.size = mm2px(Vec(63, 7));
+ textField->multiline = false;
+ textField->color = nvgRGB(0xC0, 0xE7, 0xDE);
+ addChild(textField);
+ module->textFields[i] = textField;
+
+ //active step display
+ NumberDisplayWidget3cookie *display = new NumberDisplayWidget3cookie();
+ display->box.pos = mm2px(Vec(23,verticalStart - 9.2 +verticalSpacing*i));
+ display->box.size = Vec(50, 20);
+ display->outlineColor = outlineColorMap[i];
+ if(&module->numSteps[i]) {
+ display->value = &module->absoluteStep[i];
+ }
+ else {
+ display->value = 0;
+ }
+ addChild(display);
+ }
+ }
+ MyTextFieldCookie* textField;
+};
+
+Model *modelComputerscareILoveCookies = Model::create<ComputerscareILoveCookies, ComputerscareILoveCookiesWidget>("computerscare", "computerscare-i-love-cookies", "I Love Cookies", SEQUENCER_TAG);
diff --git a/src/ComputerscarePatchSequencer.cpp b/src/ComputerscarePatchSequencer.cpp
@@ -379,16 +379,16 @@ struct ComputerscarePatchSequencerWidget : ModuleWidget {
addChild(bigOne);
- double xpos = 35 + column_spacing * j + 6.3 + rand()%8-4;
- double ypos = top_row + row_spacing * i + 8.3 + rand()%8-4;
+ double xpos = 35 + column_spacing * j + 6.3 + rand() % 8 - 4;
+ double ypos = top_row + row_spacing * i + 8.3 + rand() % 8 - 4;
// red light indicates the state of the matrix that is the active step
- addChild(ModuleLightWidget::create<MediumLight<RedLight>>(Vec(xpos, ypos), module, ComputerscarePatchSequencer::SWITCH_LIGHTS + i + j * 10+100));
- addChild(ModuleLightWidget::create<MediumLight<RedLight>>(Vec(xpos+rdx, ypos+rdy), module, ComputerscarePatchSequencer::SWITCH_LIGHTS + i + j * 10+100));
+ addChild(ModuleLightWidget::create<ComputerscareSmallLight<ComputerscareRedLight>>(Vec(xpos, ypos), module, ComputerscarePatchSequencer::SWITCH_LIGHTS + i + j * 10 + 100));
+ addChild(ModuleLightWidget::create<ComputerscareSmallLight<ComputerscareRedLight>>(Vec(xpos + rdx, ypos + rdy), module, ComputerscarePatchSequencer::SWITCH_LIGHTS + i + j * 10 + 100));
}
addInput(Port::create<InPort>(Vec(3, i * row_spacing + top_row), Port::INPUT, module, ComputerscarePatchSequencer::INPUT_JACKS + i));
- if(i%2) {
+ if(i % 2) {
addOutput(Port::create<PointingUpPentagonPort>(Vec(33 + i * column_spacing , top_row + 10 * row_spacing), Port::OUTPUT, module, ComputerscarePatchSequencer::OUTPUTS + i));
}
else {