From 9624962bb4a1e2839f3a690fe124ff60ec38dd7f Mon Sep 17 00:00:00 2001 From: Travis Shears Date: Mon, 2 Feb 2026 12:21:13 +0100 Subject: [PATCH] render pads and add ux to scroll through them --- kitchen.aseprite | Bin 7571 -> 7716 bytes l5-mockup/images/bg.png | Bin 0 -> 1642 bytes l5-mockup/images/pads_001.png | Bin 0 -> 2141 bytes l5-mockup/images/pads_002.png | Bin 0 -> 787 bytes l5-mockup/main.lua | 56 ++++++++++++++++++++++++++++++++-- 5 files changed, 54 insertions(+), 2 deletions(-) create mode 100644 l5-mockup/images/bg.png create mode 100644 l5-mockup/images/pads_001.png create mode 100644 l5-mockup/images/pads_002.png diff --git a/kitchen.aseprite b/kitchen.aseprite index af1e1e2741b64dd1fd9bff9b2345430fb7575227..6b8556ed4ba06bb679915151f7283f5a6499e2f2 100644 GIT binary patch delta 2661 zcmcIkdr%X19tU4{;%Pgk4vK=;9_kr6&{9g}m0E=iiexNeKqYbH5dj4iLWIC>ea?tH zj*FE>iK|e>@<>i2B80GWl+#llF@niK30tdyKp;C9k|i59x!ow!`=h;?yP4aWo!$NZ zzMs$c^L?!-^xLp`zCIQ60QYYzPD7#v?#mbErk=|6u5hjp#ken}4Dw9(L++{@Adu}TI63B9%nwNehq<|nJKg!^i+PZ`5Vzq z4;sid7y+08rS}|6&Mqj^@$Q3@45wXnKTUc!IDFV-ev&9e4_N}YYF_3FU;)+_09Jyn z3Z!LKo@WCRW2?Q!cwnoV>OWaeJ|4Af9a)Jw9y z7Yd>fim2L)W}YkLf9=X;%@EEh4X6vf*fI@X+X!k#X(rQA{`YuNO<$)?-fj|1`fV}@ znqz6Bs;e_u*Yy^`A>wTqMlFKq#s#(15x$CW*pk?AD4!C@GGInXY*EBf!iq4!X~mKV zQ$LjkqCjBh{hjX|1tx5eb=C4VgCbB1$egz?09wN*Cmapv09s#QQLtScFu-lL8v}cR z+@(a?Q^=yj!=-Fk=!%AoV-Iy)h;OaQGz7# z%Lq<7rX7U{gBRX&nUU!PWSV+J8M3>I0cK)=?1A05mB(nk00in)gDr>=$p;ze923{_ zLvkrTCwNka{zH}szikSekY3k^5gMpv7o~V|098Tuft!;z z^=_kRFx$B?IU+%yGVVH1QVm&3uvKO+((?7bWl$nj?OJ<5hYpl9W?90NeW&Po!JywcGKV>Dt2v z*5hZA;+qWb?ETpNNFRPC`mUCDSDLB;Fjs(2o+d+NsjvqRUx%uxF#u zI1`0Ncud^l8g{|YDuJ5;#1~wg@Ku0UGLpEDgA1@dtpfz-J}8yFTCKGIQTOoI14WyN zb0?-37&)bMV*N^UwnxU;^yk((T0z6KLt2|>90n7xgboI*$z&OGV zs?+HhyPDn!bY2tg95qc1a`r*|!WzL^eXW?6JF-Y-3eE~n>qC#$EU~wmXF$)OlZ=t) z=+VGf!vrKTO@Svr3| zRZz7mp5eKn>$kX4T0rMHT0D3LtS+NyJarAhiI)k6{0c+Jm#wtXCkeQ+E(dnC0(A94 zt;%)ASfP=h+s{yo1B)Ep>b~5n)8^^W{i6kOw}12_%JN`DEgE`BjskiFi}ls7i5vNG z4QXyhrsm9esyAsMc9@)<1#MN)pKXV0bVfn1pLShO#}@L$vg2Ot@ws^chl{3ZN#PX@ zv>|dD-qzZ%p|#+n*guP>g{44rHBv8?T%@I}Cpdh4Ox4<)F^o?9Wjo9st6YOCcfzlq zp?rMZc|aBl(tFEWriBt9`X(amm0U6>`xC=CrW6;(pSTABXh_bdE*}UO*bQU0W!+h; zaiz?Gu(y{2o2I)sc;i;wC+yV%=X}lPgb>lE%R)21b9ZxF`1|?fnq6{p&ZE|ix-hpI zw^LP<1KUoX`TT>=|5hckBWF`Y#p35*zQ0ba?OEo|^wFPz8@jaCZ5{U%&oY5I-piQQX7v$dJ8K{$1VHtD#sIPLw*`(OR z?UXtjC2&|oe!HZSSuAyP8~qp|{W}XOh?zpQZ3vjd`|sJf+Rd#u^=I_R4`lMESe!Y6 Uq-twJg!>6P;~V+f_i~s03pN`VO#lD@ delta 2345 zcmb7Ee^3*576)xrw8f5$Q{{;E#%URZIrOlt5Fq2Pqnt?2Dnw9-?Fl)I6@kQ@#O$i| z$5}NNBU03`2N)3p$=NiDaLH;t3koJ8kRSppU`$9%wm_C88#cLY1jj$_kKT7?=R5Cx z-oE#FpSN$X#7pQiB(#zlKwwD8VW{NA2a*+m?@?Du;QPKyl^6JRU?5l0HiHIo3x_`Y z;8=TIj2lV%a!YOP>6|SGSIz0Ys=Ld0aOBxXaLeZ0Q6sx(lGG#K6e9i3PU4u>IZrhF zA@L;IDPvnU!jH>D;rAzWL*NZx}ap!pCQ{w=S zg*4fQ%ODfvu+l%jX9bU7mm<8pvGB|5;Dcpgqbo#L#m+WCdp$>0mNJ&B<`QEdiZG>l zhF>yQp8^h){^k%QHg3~p2A9es5T}Ni^%tp3(&~=?xK#dJX3MGq4_HT4{B5ysh1%Rf zu$R$KD7oPU(PZvJh%fxPOZsT8VbV`@ z5LQHx@ODzsNkI&-8d0K+L{=?D3s?&);TW4hM$sjl07&3jQ-M$)s)y2tr=S;rUi75y zHEY`zcY-(kQzt#C=HwVhlnbNQE;Q3$=>VzC$8lDeh!;$8#PUdoQI4o7U2H0%kHSFO zG#E=RIbbHek!KU*P5?0`J#ij5`zAVsNa%2&N(NyGBOaY+aJ_)uFqMgm1Nxh8_oqoq zrR(7GQI5SAbqV^tY=N^q)_ExcGziG?ZPh?7scWY?7UJ|#&a@O+aD<8zn+jtr#S=d` zF0>cP8EoP7y9!ban=yZDl3!=F#5nA@(YWoIO>FyPtKq0993~!?GDa+r$^E~)A7}U^ zQT;k=Z=mGR>|D@&1)x7*WRV73-jRQGvZE_s1jqS=`Tt#LQxcf)*-)6TKQHfAcnU;X z4{|&wF*b~|>W~yyja!SD_iNmZa95lmtf^rwz|4Fx&NE+l{ zQ6%~%gE+Ckf}uzQ#qANa??O@d%5gkz8oOP%pnCZmEOVXuyXno56)!0D8MXI@_x~^g zRHqJP-mmU=*N@nG_~jgG`I>ajZsXaUiB!V`-`?1!rWVxAl@{x%`}^jUeiO+wS-GsiW;qIMHaqH|D$Qb1%vhx+D)y)HsmkcxWDggd@EBd zb&rU|*~y6|KyxVj;_;_fkpjmzDR&RnAS+*X%64j>pmWB0_!}l9fX$)Y4foaS8@1Y8 zj8jXA$k`#f;O!Ouxmh{HWRbSWH`;=Utv5xSpi#&}Tb^ zx9F)B3!2J+e?h#WV6vauS^^7EY$mT367^3&k7-y)_i2fwqWXckN zq10rWPREw7v}-RVQA+(`$OAn8N8Tifm_dbq6wscn@UmQ&=9%ZMrro!#=D}Ty*TCj9 zrm2O&8kj>?q}4Mur>hZ_6%$`N#;ie9%Q=Jbi#NiYobe{C)?`E*2-Q~GY%L^0!(!g7E=42<>oOzY*0PF9cYNnL$sfEkt=U-tBS(_ diff --git a/l5-mockup/images/bg.png b/l5-mockup/images/bg.png new file mode 100644 index 0000000000000000000000000000000000000000..418da6d878a6e5bc2787fa690b2a2995f2f3ffbe GIT binary patch literal 1642 zcmeAS@N?(olHy`uVBq!ia0y~yV0-|?4je!M2FJx8mIEoq;vjb?hIQv;UNSJSsd&0L zhE&XXd)K$@mVt;v;?j1#z{zhbKM3g8A^>RsWB~{8cv#`#V`H9q##)={ci6XIc|Y}& z<$4n{11G=CBKe-F=4GsY1vSyNb02&#`)qaa;oC2zP0hD!Ri`v6-a0|UId|bVCdVa_+ z$LaM><^FyKG5wtDObq|tn?3yqCrXIpHUl|cC|4EJzx~VlBj#WJw+N&8=g#^$t82@a zOj}kZe`e?VzwZCrcVT_2+kAz{cG>vr9Yoq+r;ywzF%hj++s)5ZmnFI$eX#F z&G=UT*q0%Fd`tO+tsiP@GM;GgvDKMuD-ejUUsuPHb!zsz2YvaAZk`#u2p%2GT*MS*~+Z0+`rT{L7IO_;DeMWjwU=gj|I2z z&grSy`mHgyW~E-^Ux&P7+Cto2TV4ZYPn z%nFQ(vahpmD-3pK@pH>dn{gnHBQtr)fs>Bw^0yo~d7`ve;>IyiUMUO7os$}w*Y9QR z>HF|>alyVCk-Rs)Tl|WfV402eSHp`u5B<`4JbxTs{hHqxTqQld=yvcr!Fb{+T7a~7jE^a)_uX>Gd8jsACPZoyjUCatR zPS5%IcE1|4drALKnWCyc$Bi~||GT*7^=!HS--K>*_NC^A|9-0q6kGUYlG^4IlZ9nY z-urRxPxl;k=JrB`_jjihonq@-l<|7cA3pv~hb-=xFP~EO{otL+OB&ky+vPqbSHEL9 zK7s%1*{9DBGR}X=dMI}$pY4O?iw)H+Ixcyh?$$ReU|A~tA~lxzc)+g4GE>cEhkn-9 zE2Sp1T|FJcCKq>*AwTA*$%h}`e&xk2DLW{i_}B6QOMhPZk!|J=^?vZ@<@4{^&hfDK zee&(u_wTx@nO|Id`_1E^zk)`yF2yQnLm8 z3SwLjr$1Q1wcUx0Z*|W5%mj<|DMv$UX1ri=53Q(6elX$G`{we4^5;0)ib15@t&%GF z%m*EOd#+u8m7~YYe%Ty5u-Lj%A{SUh^XJVv*Sn$dc=@UgjqT;{EKVO_oFkdY-2eUx zhqOi0Qx5rvW`hEb`T0wDWe&{D-O{K$Bj{gA+kd7S%Tvp&=iDg)RU)3QelF{r5}E+5 C@8u5XwhMpr66I61;Wr$na)g$ z3N$P>C=tG*U=8CVS>=m(9rY$*gI5110n{yr6ShLjMC`G}y&>Zi0dPs5Q)n^TYV3b$X?Hiug}pg89*5Rg+dOLs~ZbE*Ku z>t$dJrZJ<9{^E~9VI_uG+>6DGFSgr9Nb+sdU#Mawg-3tJlN3MZVCj5$jBr3={~4P^ z&FG81+x*t#?zIfPf;oRiVseD!nKC(C@XVT~v#~KQ?zM@mOYWO8Pq7!BgH*Y~cxi}EL! zn=BfZE_O0Qp!t4m{ea((lt%IcykJ>1N$3Bh`(HOZ+qWuNqRa{AL#2Jb#&p_1IeTi8 zc9{6dygIPS_hFd8tIF*rz=+PVy?0-b##pVoe9c$}mhDIFT1jt} z#&j6h$o`ouo}UwJvD<=gfD23k@6fshEbjSxNh`$Y?eh_JUwIqsEr^m2w7H@D&0=8O zF2>rNQq<&0%r-=*wL<^1?um@9AAU zZwObVwR^lkBU#tPxRTK37PURqc^4XYzJ)xS0;a)CCvRA9da)HG4t0u_>hu&Ojtg8k zlQ6+lkP11-^+1$tths-SKzEyB#WzVO6Ibo?$?n$89O39Zp_mgU9%^7=*!O*ikN zhfO}Us5dQ;J|f?=k^~fBc9ZXT%WW#_lEG*?#|c+kzDqTbZU2Mm2ctvtnatN{_q{0@ zy~}U#OHwt->W9j~Yy~4XE}cPQ!?gp~u1ZsvSBk)-E6{ zxJVx;%fR7wh_$$^a@PGr7$_6~*=!wS?hyz?q;0G=G?aPqWcnys-QP@IKqFU%jEr)4 zb(^NO5%jQjBphOQZun9F8dP5s4eSWRwD&;G@Pgxx5EF!y`3wZimqOybhaH1Vc7$25 z09F1e{SI`^8ecpi96;g%Eh#dYbwx`U5WLY5oJckX8N@83 z9iJeKl>=!ft%7?MX3va%do-WI?tVJoIme~aA4$Ui0{lL7hthu}MtvKP%O$#(@VL|O zIO7Dy2$)lW!}Oru&*8r!bjLsbj&f9zjt6~iWpQ$k$E~8hf zlwL=kEGQjqlFDBT?emMVCs(X3l5T9#uNwpIL4dMxF759>#IdRqv>BKN$yVqE^TF^V zqEpvONf_!VDLer+7~w2BRZ*&R#aF%AoPIe3BNb)c7ku~EZKmG#KA)peVql3BQ>5Mw zhSH8N71(hP2-mwldhuo!X|g$ECnEKDsJES=ls3hq+zRCb>~u0yd1Y~AOX6{C}*PAbKn%;8KBRG!Ov}D zQIzr&u94@I$Yo&c!ayQSh4uj3)y{>|88(6+}wXWzI| zp?ZPP^;^6IUW!Y=XgpT%?)SVp!t=myb(R_vw9qD%>OH1JmjR3i=K#*z0H^0G@??b; zvOb4Wh&!P9&(}OTn|P3a z62SwUmD#-7VWSn8!kpNB?Ci;=w*E=B{;#DXt20=jtzTV_MI3C;*59eK*;&1qLL)V5 Xt(tabp>;KEhXwvVLEdd%#4r90kVV5y literal 0 HcmV?d00001 diff --git a/l5-mockup/images/pads_002.png b/l5-mockup/images/pads_002.png new file mode 100644 index 0000000000000000000000000000000000000000..851e3f6936df27cc541e96ec9cd31949f3ea8d6b GIT binary patch literal 787 zcmeAS@N?(olHy`uVBq!ia0y~yV0-|?4je2%k#h&rKL9Dl;vjb?hIQv;UNSH+o%M8a z45^s&_IjY-VFL!%gDi#rlMBv%=$;UDORINp+B1f?!E2^Y&SeJb!wP1cv#UDrTlV*-ikmSNxW+WvH0jpqR5Vd`+PKs@wAVt2e(}be@+dk*Upq z(fNi`yod6BlkL{=vp2s>V$Dn75H@JxlsLo!m7md|=yO0ojV8i3p1)vx{!_~KL0e?` zMkaHEmbZ)9=RCJK_V0h)ZkAducX>siD_qykvKzr?gPJskLcdcUY zuUmg!dlz4ey|NSRnr(NquXRkn>K+%8e%JMOlY336R(~2WGEPmid7>R$sWv&X{NmOR zhWo9jhYQav6?gsrV8eO7XKNhN?y_Qy?!hd0K=yuCuoL(Epqm>&&h&Kkb6Mw<&;$VG C&E>8D literal 0 HcmV?d00001 diff --git a/l5-mockup/main.lua b/l5-mockup/main.lua index e2f7ff7..bee579c 100644 --- a/l5-mockup/main.lua +++ b/l5-mockup/main.lua @@ -1,14 +1,66 @@ require("L5") +local bgImg +local pads = { + ["S1"] = { 98, 25, 68, 48, img = 1 }, + ["S2"] = { 175, 25, 68, 48, img = 1 }, + ["S3"] = { 98, 83, 68, 48, img = 1 }, + ["S4"] = { 175, 83, 68, 48, img = 1 }, + ["C1"] = { 262, 23, 71, 110, img = 1 }, + ["W1"] = { 346, 60, 79, 84, img = 1 }, + ["F1"] = { 0, 0, 47, 159, img = 1 }, + ["F2"] = { 0, 162, 129, 29, img = 1 }, + ["A1"] = { 282, 202, 90, 58, img = 1 }, + ["A2"] = { 376, 202, 90, 58, img = 1 }, + ["A3"] = { 284, 262, 90, 58, img = 1 }, + ["A4"] = { 413, 260, 67, 60, img = 1 }, +} +local selectedKeyPad = "S1" +local padScrollOrder = {} +-- TODO: replace this with ideal scroll order +for key, _ in pairs(pads) do + table.insert(padScrollOrder, key) +end + function setup() size(480, 320) -- the size of the LCD screen windowTitle("Kitchen Timer Mockup") -- Sets print command output to display in window printToScreen() describe('Draws a yellow background!!!!') + bgImg = loadImage('images/bg.png') + local padsImg1 = loadImage('images/pads_001.png') + local padsImg2 = loadImage('images/pads_002.png') + for _, pad in pairs(pads) do + if pad.img == 1 then + pad.img = padsImg1 + elseif pad.img == 2 then + pad.img = padsImg2 + end + end +end + +local function drawPad(padId) + local pad = pads[padId] + if pad then + copy(pad.img, pad[1], pad[2], pad[3], pad[4], pad[1], pad[2], pad[3], pad[4]) + end end function draw() - -- Fills the background with the color yellow - background(255, 215, 0) + image(bgImg, 0, 0) + drawPad(selectedKeyPad) +end + +local padScrollIndex = 1 +function mouseWheel(upDown) + local scrollDirection = upDown == 1 and "up" or "down" + if scrollDirection == "up" and padScrollIndex == #padScrollOrder then + padScrollIndex = 1 + elseif scrollDirection == "down" and padScrollIndex == 1 then + padScrollIndex = #padScrollOrder + else + padScrollIndex = padScrollIndex + (scrollDirection == "up" and 1 or -1) + end + selectedKeyPad = padScrollOrder[padScrollIndex] end