From 38a37739828c3767d5e9481352e3ae11a42346b2 Mon Sep 17 00:00:00 2001 From: CrispyPin Date: Sat, 14 Dec 2024 16:54:42 +0100 Subject: [PATCH 1/5] redraw flipper, add shadow to marble, shorten button sprite --- assets/tiles/button_off.png | Bin 188 -> 182 bytes assets/tiles/flipper_off.png | Bin 240 -> 211 bytes assets/tiles/flipper_on.png | Bin 240 -> 253 bytes assets/tiles/marble.png | Bin 262 -> 291 bytes 4 files changed, 0 insertions(+), 0 deletions(-) diff --git a/assets/tiles/button_off.png b/assets/tiles/button_off.png index 87f123fa7ca8d864e6b220d427de0a8b0cacefac..2d747072ab39bf7199ca189bde96fb900581a9ad 100644 GIT binary patch delta 154 zcmV;L0A>HY0k#26tl1sBj^`ZBkK95`OM|f z&;$6rT4na$m&!M@Q+^l>x%(lgs^zf8aDog}zL~X|Lkw~Q&deNo(_jpU2#Cn(rK&+H zB90Bx000pwSJ`LE74Cvpn%)BZ$hZSlT>y-~cmmyhyMw)Q&>58y{Ek+2-$qSHq`QCs O00007|xzOic6nk%0jc+Sm-zO66f-U|?Xl zHv0=UX$B7GSB%sNgTv>s+i-0*gvKS06@-R{{#Q~``X3q^`a2(%kdVdD)#LO6azLU7 wDl)(t3y9D@h{h)o&?PTm^#Tl#6#C=>0JwBMiVl3`$p8QV07*qoM6N<$f`8yp!~g&Q delta 223 zcmV<503iR<0q_Bk8Gix*005AYXf^-<0Jlj*K~yM_osyvr!ypibkEU|E@3H)PdhdX0 zvdq--9N3zs$rSHUfttSTWhN>oZeip?>9$`1_x7=7{(QIpek3D#`wSDbzfc5o?7g3=(bwz=C5E?A77nfYR61%T>GN0KrC z093jIZP-=0X=Y|-sx+O`0Q?;M93++Um^F6l9rE0Yp8BQS^w#tpN#1-{f|)gT|9rmh Z^#Y(xSgLR$>5u>b002ovPDHLkV1j_ZZKwbM diff --git a/assets/tiles/flipper_on.png b/assets/tiles/flipper_on.png index ae6038c842221c7a801cdcc5d5ed04f7ba0e9020..eaef0734251406d77c6f89c234019f636199371f 100644 GIT binary patch delta 236 zcmV?>a}u&;at*F5W_H-@1Y1~4!%FlD&h`bLx(0|NsC3pT-@ z;bJH>oIL|mEk+n%3vJ{uL62e-4!UNTv-hZR;WPwmLc$hcY35t;x`bhO57+-6d&U0m m?%~3joC&JIr9SwwaT3U00009);=aemeUHWT073(%ThRbq0TZSW9@S6{kT}Ps2Q6tZ{@5!aMfkLDW&YIXNgI9qQ7=G;;m>$gFIvk}ZmyrJf!OO5?Lj*>$Tt_^ z>`*zp=*t^uKrr3q0N(v70@i04;)~rCS)bjS4-mvj4)A_GseiLDqb$A#k6WqX7f2aU zL|Oa_DFX@%8&U_-cdEVv0AU0`quCON@^)AM5ArP-CZ>&Ptl$8uo;&dcs749hjNLMEV0N+o8J_{Oa@nbirU*5nFh!5yuErvpT zKxe@reIR$H_B#LoiYWjf%e7cClbO2@@+lA#YD298gTR8>*krjzeO|g=aFs;}fwh;l k*NOg29Ms-+(b-Y?0qc897HO5M$p8QV07*qoM6N<$f}z)EhX4Qo From b9cb5608a7ca34704069ad781e7715b3533b1fdc Mon Sep 17 00:00:00 2001 From: CrispyPin Date: Sat, 14 Dec 2024 17:13:44 +0100 Subject: [PATCH 2/5] redraw math tiles --- assets/tiles/add_off.png | Bin 176 -> 226 bytes assets/tiles/add_on.png | Bin 176 -> 231 bytes assets/tiles/div_off.png | Bin 194 -> 230 bytes assets/tiles/div_on.png | Bin 195 -> 237 bytes assets/tiles/mul_off.png | Bin 209 -> 223 bytes assets/tiles/mul_on.png | Bin 210 -> 228 bytes assets/tiles/rem_off.png | Bin 215 -> 232 bytes assets/tiles/rem_on.png | Bin 215 -> 240 bytes assets/tiles/sub_off.png | Bin 177 -> 213 bytes assets/tiles/sub_on.png | Bin 178 -> 220 bytes 10 files changed, 0 insertions(+), 0 deletions(-) diff --git a/assets/tiles/add_off.png b/assets/tiles/add_off.png index 286a7e92ff7cb15087caef780cb79f66785744b5..815c26952bdfce32bc77174bc30c3f6d42c068f1 100644 GIT binary patch delta 209 zcmV;?051Qq0pbCW8Gi-<001BJ|6u?C0I5ktK~y-6rINuB!ypU<&y4;aYT=zSXdwl- z5EtMUC?jub(WHXp1#`$s@Fe#`+7leG06@<9g&$N(S)?s)&%HMu>*g9fMi{WhS}On` zr8M+;P?+uNiP`XlyQCpPJF=Cnw@9Y}++d@vv;L0I2k_0##7eAqjdsiS=-wuMz?En8 z7y$rPoti(%ea5>gju;1!YaA_DGk}xX)|eFwM#s#uafg2}GkeS%_%=PvqQX!k00000 LNkvXXu0mjffx2Dk delta 159 zcmV;Q0AT;(0k8p(8Gix*005AYXf^-<0C!15K~yM_V{BP>jDZxu!oa|A_7StO+}}$p zCg4%07f}FF#>BwDfT=pMuqv^z3R&dRiV4PYe;F7Um>?Wt90O6tM3M*SqJafMp?MLj z;QanJ3T%MrMl%~t5CR5aC^0cGFz7`T5Tg{LjIm|iF_ID=BN(a48vuL}FjT9GC1(Ht N002ovPDHLkV1l~PJf;8u diff --git a/assets/tiles/add_on.png b/assets/tiles/add_on.png index d9fe365f851aceddfaeb4d146ad4bb7a67874385..142c90399c88fa4d0c683daada12a7bb7e2af107 100644 GIT binary patch delta 214 zcmV;{04e{l0p|gb8Gi-<001BJ|6u?C0Io?yK~y-6rINuB0wD}V-!j}CYT2`8UQif-0$ykA&U_v&^j{Y0T`+*NE06FIuKd6+l#I`s-uf6d&TwH_4L=9NuJrw{> zl83$?6lS}6(roy`?a~mT9ofp(TcphZ-Oxr`*ZMm`AE0k`CQr>quhDMV9^Kod57_gJ z9uomXWNQATAwsPcfU^jQ Qn*aa+07*qoM6N<$f?^6_>i_@% delta 159 zcmV;Q0AT;;0k8p(8Gix*005AYXf^-<0C!15K~yM_V{BP>jDZxu!oa|A_7StO+}}$p zCg4%07f}FF#>BwDfT{XG+M)w#i;zVwt(age_m_czfeFGP#xW3OOeA@LE*e-M6q*;Y z3OdY+qre7;ZZxye1R-D$h7uD41A|^f0WnG;${1VL9V036F&L7Xya6{PF--V5>ec`N N002ovPDHLkV1mS|Jt+VH diff --git a/assets/tiles/div_off.png b/assets/tiles/div_off.png index 272ecb429b219cbc3e26f2b4af4569493490c1cb..8f6d47659238ab194da3832a8bd8a9a1c655ac2e 100644 GIT binary patch delta 213 zcmV;`04o2&0p)+LI&_4 z86Yb#hHK5D%LGYfPLf6N`BlLCAb}PDsI`7^1Ff|sADhSL)ro!GLPMm0Y|KQ| zc^#BSw-Qmf_F7Ychc`wr0lw@j!FfbnMfyiF^R%iSpkMYdM^0<6%@MJ$TiA}j!~~3n zMd4%vApCWjdVubokx0k#bz{%{-wDvTKB`|CFcFi2j%#r2?gt08Gix*005AYXf^-<0EtONK~yM_V{BP>jDZxu!oa|A_7StO+}}$p zCg4%07f}FF#>BwDfT=pMuqv^z3R&dRiV4PYe;F7Um>?W9)${w?=J&T@>Vaw?*$-#{ zZub2CHlj4(Qi`Gh&AE6?A=eLh+<*qK+khDl_%z^(2Yfc*0V<4;#D^K#3>Y5Mizt9< fASv-NlA62$rTIq}lg11>00000NkvXXu0mjfEoV*7 diff --git a/assets/tiles/div_on.png b/assets/tiles/div_on.png index 3398ac3a8491a68a9fcd938fe56ad1bca08fc5dd..5dafe76f0d200957a857105b707d7a2389bbfd6a 100644 GIT binary patch delta 220 zcmV<203-jy0qp^h8Gi-<001BJ|6u?C0JKR&K~y-6ol?sU!ypWOLEIx|;oLEt5jsEy z=>Q!ejFB_5Se>9f1=)@%QQissKG?_;01(j^H&9BM;&FL=UX9r2)irpUC-C_Ej)@XRD1KvCpeJj(tQ0 z^p;1$(?kGZ=ApRjDZxu!oa|A_7StO+}}$p zCg4%07f}FF#>BwDfT{XG+M)w#i;zVwt(age_m_czfeFGvQ|&M-&S6#@rXHvUlKp@N z;AT6_iX%z`E~O|M(433M6mtE5#|>xzyA7D}fKLOic)(`^9xK2INqm@*&4A%Cy@&#+ g29gpVBdN(70K`l##b;(WC* zDm*&KSq2e-hzw(vw~{f&0&=|EpariQUEW|6v&s&5voo>RTStYJf6z5pc}C0Q0YFu! z@JQ7N=eA#}_=Zp!Imb(NEexQ8+Z=nlXAB0+YR9d<@(i{-2TBG-oSKj{A^-pY07*qo IM6N<$f~-kd1^@s6 delta 192 zcmV;x06+iV0nq`F8Gix*005AYXf^-<0GLTcK~yM_V{BP>jDZxu!oa|A_7StO+}}$p zCg4%07f}FF#>BwDKu|RU1H+{i6O85lGB7YOK{yNy42gwRiG@{|O5x%VWlWgTc(^DU z=J&UuDS|WLQs_1y>%poTi<8i#(YRPN5Cjx>ngP|9m|=jf0Xfr`SoM(XX+}umBbYQ8 u7#Q>-3ZOQeeZ&mm;8%V25i`OD;sF3^7)wmj(Y5ga0000DmLe;8?QFE`NOQKQ2fc(GLb1NpNvNlY(Ug_S)R8mx@b@(=(p z^Az^fJ)zbL0Jt;b6=P?Vxs+1N2Mq%lV4aiRVT{p$rSx;VRi43?=Ld)VM4RtbjDZxu!oa|A_7StO+}}$p zCg4%07f}FF#>BwDKu|RU1H+{i6O85lGB7YOK{yNy3y|XFR^WQHBhdIbdFzPn4l5A{DUcA z_Xk#*2mrO#t$9_$722Y1wc?r5AY_d96s#G*WVRS4t002ovPDHLkV1jhjTz~)o delta 198 zcmV;%06G8Y0oMVL8Gix*005AYXf^-<0G>%iK~yM_V{BP>jDZxu!oa|A_7StO+}}$p zCg4%07f}FF#>BwDKu|RU1H+{i6O85lLT!MkPAsf~$j$F>LskkApWokhX~hJ+hyo^L zIW(onroaIc9%-z0vfwfvmkUvBAgCI<20W^+m5c5qf>FT; zNqhv81_J|wUPJ-ZhO>{DAsqaw&pu*C*g!l0096Z1%qm_YqyPW_07*qoM6N<$f&n~G AMgRZ+ diff --git a/assets/tiles/rem_on.png b/assets/tiles/rem_on.png index dde5d9658500ba59fb88591b5849585f2235481c..fd187566cae4fda5cdb582b2eb520c98494dd962 100644 GIT binary patch delta 223 zcmV<503iR@0q_Bk8Gi-<001BJ|6u?C0Jlj*K~y-6os!KF0wD~A-|ldCQVVCxU`wz7 z3$Xx8AZ2)_mW&nX2_}TFIOfL7`ySzE1Avs$2Y(bZZ=o)(??-FAE_WC3JV6^~pzZ6R z-8M5ZGO-&_b-hvWjE5u_w7MIhO=sZg1T!!b584pmnRKYFc36q^W@qCbl3Gu{LN`He z{PGWmfYl$Ec>(~4$P%7acZ5<30N^HqCsAkAT8y#jyM+M^u+_A8ct&zyUG})UUaVlx Z^98KsP0_jPjY|Lk002ovPDHLkV1gN3VUYj; delta 198 zcmV;%06G8g0oMVL8Gix*005AYXf^-<0G>%iK~yM_V{BP>jDZxu!oa|A_7StO+}}$p zCg4%07f}FF#>BwDKu|RU1H+{i6O85lLT!MkK9IHuBIhtG4p}Kg++kMSr4d>!h}aPRxY}e2u1}X zB=HeU8Vn2!dJzRs8_qsrhH&t!KKqCnVFU3103H}iP~fyEqW}N^07*qoM6N<$f{gl3 A#Q*>R diff --git a/assets/tiles/sub_off.png b/assets/tiles/sub_off.png index af3816710da65c84769756857e65c5aec20ea6c0..9cbfeeae69d26d7e916876278f1cd6d51543b258 100644 GIT binary patch delta 196 zcmV;#06YJ&0o4JJ8Gi-<001BJ|6u?C0GvrgK~y-6rINuB0wD}V|1!Bd)WX>^Xu$$3 z!~$%AGCWgD#tQW0&LjDZxu!oa|A_7StO+}}$p zCg4%07f}FF#>BwDKu|RU1H+{i6O85lGB7YOK{&)X2BM6KIF};;?KQAKsKml5f=cK2 zw^3jNL^m;D5QY*H0|SFzL;*2MA>o#cKZz`#nbvEC7&m{@{m{QWiQ6m-oFjUhB;iEQTa75_Mk= z3SN2iq40%srCZ?{i%Yt4wgjDZxu!oa|A_7StO+}}$p zCg4%07f}FF#>BwDKu|RU1H+{i6O85lGB7YOK{&)X2BM6KIF};;?KQAKr~_$>2r6}$ z6-R*$5Z%OpK^RI*3=9l<5e393g(zcUU|=}=h?$@sNaAB)U>aZ~HF*O7oM Date: Sat, 14 Dec 2024 17:29:09 +0100 Subject: [PATCH 3/5] redraw comparator tiles --- assets/tiles/eq_off.png | Bin 158 -> 242 bytes assets/tiles/eq_on.png | Bin 158 -> 239 bytes assets/tiles/gt_off.png | Bin 198 -> 239 bytes assets/tiles/gt_on.png | Bin 198 -> 239 bytes assets/tiles/lt_off.png | Bin 194 -> 246 bytes assets/tiles/lt_on.png | Bin 194 -> 243 bytes assets/tiles/neq_off.png | Bin 206 -> 250 bytes assets/tiles/neq_on.png | Bin 207 -> 248 bytes 8 files changed, 0 insertions(+), 0 deletions(-) diff --git a/assets/tiles/eq_off.png b/assets/tiles/eq_off.png index 39f6cb1f5f6f3794636d2000e16253e069a74732..49c20e78c54fe5aaed92efcbee08404df1763d1e 100644 GIT binary patch delta 225 zcmV<703QFI0rCNm8Gi-<001BJ|6u?C0J%v-K~y-6#gefN!!Qg4PlgAGyVPDmBV-0m zsTGtFv`4zn22K;of-TtwQsg>{PlEUt{D=bxAuQWQjM3F~PcvHadb~^H{=5-FSaQw) zc<-AUfU=-|G;DC&uNMuy;UjA82q1}RngFn~d)QTy)&(}`y;|R$-6H4AJkP*41z26a zdV!_XjqwUGMpsO%ojs%0j;)5deDn`?3$`&zDo$HUt*A?kXY@2f^A$)bIY~~EODVaY b?*DuMhO=4prpY7>00000NkvXXu0mjfTO?wg delta 141 zcmV;80CNBG0iFSn8Gix*005AYXf^-<0A)!;K~yM_V_bf$g@F{n!oa|=_s(Hw72EX_ zF5yuZSfB?{#t5+iziPN11_lNuB2~kcF%hE_8L&X8#KJ0qO6T{tQD6f^H!)yD`hkf7 v7Uu*3B5CZsbC{qWNaAB)U|=LQc>@4ptta_dz}ZUx0000| Y0(0Y31jp7;5C8xG07*qoM6N<$g3kwJZ~y=R delta 141 zcmV;80CNBD0iFSn8Gix*005AYXf^-<0A)!;K~yM_V_bf$g@F{n!oa|=_s(Hw72EX_ zF5yuZSfB?{#t5+iziPN11_lNuB2~kcF%hE_8L&X818Iv0Ds`9@M}Z9x-Nb+q=?5kT vSez3Ch@`Ri&S8RjAc>EGfq{|K+$Z1`}2lU%B89R01*i} z0MG?|&|rmQ-U}U3v8uwlNATPX03>mq=hS(8f(Oa(38Ic70#^~4Ci3U*bma1G0^3r! z#$Dkk(x2d+wb57b+#Ds$<=sD+1jau=vO8^C8aZ9Sh&!w}M;HarT1zAo$<$g)E8hR{ Y0dEv%^M0wm<^TWy07*qoM6N<$f*E;bS^xk5 delta 181 zcmV;m080Pw0mcE48Gix*005AYXf^-<0F6mRK~yM_V_bf$g@F{n!oa|=_s(Hw72EX_ zF5yuZSfB?{#t5+iziPN1s0|R+iG@`ViTV9)ST(Gla4E1rj|o#Ev9JoR851Bh%;H-Z_l0fp`D_ahF8k%axrx00000NkvXXu0mjfOeIP& diff --git a/assets/tiles/gt_on.png b/assets/tiles/gt_on.png index ae01917df51ebc074b03a3ef4afd8818861392ee..09b7fd0a8bbb10fddbf0a2f7708e0731f716fe9e 100644 GIT binary patch delta 222 zcmV<403rXz0q+5j8Gi-<001BJ|6u?C0Jcd)K~y-6&6BYi10e{7|I6n9q02tG6}Tbe z3TB^lWP?kEXOy!^lUJcU9ta3OVgXRqy?5lCm-c+dNq%_U-_>z@UQyNkAsK+pG~@tO zf%ekjfxW*KxhmfgHAo44f+9Bbnihlfqk|l(HP3p|Gy&Fs1*% Y2TZ76@Fo$7lK=n!07*qoM6N<$f^{oq00000NkvXXu0mjfosC7! diff --git a/assets/tiles/lt_off.png b/assets/tiles/lt_off.png index 6b8bb6b6303d1a5b322574139f78541bd2b8547e..50ad057ff92728d7e3c84efe60770eaa8e393105 100644 GIT binary patch delta 229 zcmVK~y-6#ge-b!yphu-)U5Ul{r=ml;9eu zk`{0Y*N3um2Xf+L5C+*Z4!jxcXV9+TM+iWSac_x~lGNvsX708Gix*005AYXf^-<0EtONK~yM_V_bf$g@F{n!oa|=_s(Hw72EX_ zF5yuZSfB?{#t5+iziPN1s10~jCl*#g81wtv)=#(;SfIy3P$?Ea;8!}ozYV7b{7O+Y z5Tg_Vm~crD&@jKh4cXMh!YW*zMzMhyZCIRyUmH$8plO2xk}8u169WUo-aCgO9Q>;H f-Z_l0fp`D_)S5*|%4V=&00000NkvXXu0mjf2N6gu diff --git a/assets/tiles/lt_on.png b/assets/tiles/lt_on.png index 591877fa4b497a2422f248455acf38e6790ed23f..0f7033c47c0eb92ffe2db43d9559b4027d643f0c 100644 GIT binary patch delta 226 zcmV<803H9r0rLTn8Gi-<001BJ|6u?C0J=#;K~y-6#goku!XOZZKb#cc-t0##0gKGG z5c~1Ab`UQvAqeP<2j401eunG=_z?jhrL@+Bs)lmi(@eg&pC6ex-HxP`)>#yQtEHv} zAP1D24mZ|(8Fc8GOU$D9X=?2RU}lI&)7UzRdv?Dti)P`-=v(~7BJgSf+EX3{c}v|I zzX?*+kcU`Kw#L=c&RlADH9Fx_9^HetfVxIA1KGYsq*-;Y@e_KQsksX*%M!N7un=P$ c4*Gw10<}0^YS7s>(f|Me07*qoM6N<$g2g3hM*si- delta 177 zcmV;i08an&0m1>08Gix*005AYXf^-<0EtONK~yM_V_bf$g@F{n!oa|=_s(Hw72EX_ zF5yuZSfB?{#t5+iziPN1s10~jA4ppSVK~f+TR-7aV1XVBL8VyyfM2P@tT>z+@GC{p zK#WodV8SIqK!d}qIAl`~q%FebX%riX(T2rI__g8m1DZBCASyX&FflMN?7eds!ojb4 f@14U48;A!0FaAW#^FE@100000NkvXXu0mjf7rseb diff --git a/assets/tiles/neq_off.png b/assets/tiles/neq_off.png index a649dd13793db909bcafc67a1f84ab5347959582..86326771877936032684e36425a79a04431a86bf 100644 GIT binary patch delta 233 zcmV8P`UM_>j| z=@rZf+JjDP5E^8ZU_n8_b(ZdA`Ofeo5BwDfM0cDVHE=d!}-`dY~Hct7c$enBU)q;s<0o zJUSuT@Y#SBuwYt>%P|mu#Rfd88Swi7O^_OX!0#9cK-fTxYBs2bzydwEIy|Z&%9t1! r81~*djI0Nj>b-XkGcYhPlA62$pejQPf&M>t00000NkvXXu0mjf;@(fK diff --git a/assets/tiles/neq_on.png b/assets/tiles/neq_on.png index af8cba09c712c828c58d4d1f9aea3efdc923248b..1a2fc3cbd3cda3071bbe9cbff1a1e0e40ad55cc2 100644 GIT binary patch delta 231 zcmV65}_FW@5JrEXxwM hpJ5@TbTIlq@B)vBwDfM4~2v_%XI4C^Oca#pcrU|?W^aPX^!>w#*(ubP2@!C_V$iXV{W z@aTkS!)F6lz=CNhF2_Is78~%WX29hP$BC}Uz^ sVAy--FtQ$8s`uVG%)r3FNNVy10QfsY3&DNWj{pDw07*qoM6N<$f=g&r;s5{u From 9792410f02ccdca3b289cfcf5d58d470ec56b975 Mon Sep 17 00:00:00 2001 From: CrispyPin Date: Sat, 14 Dec 2024 17:30:37 +0100 Subject: [PATCH 4/5] rename gate to comparator --- README.md | 2 +- src/editor.rs | 29 ++++++++++++----------- src/marble_engine.rs | 16 ++++++------- src/marble_engine/tile.rs | 50 +++++++++++++++++++-------------------- 4 files changed, 49 insertions(+), 48 deletions(-) diff --git a/README.md b/README.md index 366d445..d60eeba 100644 --- a/README.md +++ b/README.md @@ -6,7 +6,7 @@ logic mostly like https://git.crispypin.cc/CrispyPin/marble ## todo - undo/redo - more levels -- make direct power (gate -> machine) work, (needs storing power direction in machine tiles) +- make direct power (comparator -> machine) work, (needs storing power direction in machine tiles) - cut selections, copy to system clipboard - timestamps in solutions and blueprints - multiple input/output sets diff --git a/src/editor.rs b/src/editor.rs index dd8d9cc..e1877b3 100644 --- a/src/editor.rs +++ b/src/editor.rs @@ -14,7 +14,7 @@ use crate::{ marble_engine::{ board::Board, pos::{Pos, PosInt}, - tile::{Claim, Direction, GateType, MathOp, MirrorType, OpenTile, PTile, Tile, WireType}, + tile::{Claim, Comparison, Direction, MathOp, MirrorType, OpenTile, PTile, Tile, WireType}, Machine, }, simple_button, simple_option_button, simple_toggle_button, slider, @@ -49,7 +49,7 @@ pub struct Editor { input_as_text: bool, active_tool: Tool, tool_math: MathOp, - tool_gate: GateType, + tool_comparator: Comparison, tool_arrow: Direction, tool_mirror: MirrorType, tool_wire: WireType, @@ -87,7 +87,7 @@ enum Tool { SetTile(Tile), Digits(Option), Math, - Gate, + Comparator, Wire, Arrow, Mirror, @@ -133,7 +133,7 @@ impl Editor { sim_speed: 3, time_since_step: 0., tool_math: MathOp::Add, - tool_gate: GateType::Equal, + tool_comparator: Comparison::Equal, tool_arrow: Direction::Right, tool_mirror: MirrorType::Forward, tool_wire: WireType::Vertical, @@ -219,7 +219,7 @@ impl Editor { if shift { match &self.active_tool { Tool::Math => self.tool_math.prev(), - Tool::Gate => self.tool_gate.prev(), + Tool::Comparator => self.tool_comparator.prev(), Tool::Arrow => self.tool_arrow = self.tool_arrow.left(), Tool::Mirror => self.tool_mirror.flip(), Tool::Wire => self.tool_wire.prev(), @@ -228,7 +228,7 @@ impl Editor { } else { match &self.active_tool { Tool::Math => self.tool_math.next(), - Tool::Gate => self.tool_gate.next(), + Tool::Comparator => self.tool_comparator.next(), Tool::Arrow => self.tool_arrow = self.tool_arrow.right(), Tool::Mirror => self.tool_mirror.flip(), Tool::Wire => self.tool_wire.next(), @@ -828,11 +828,11 @@ impl Editor { } match tool_button( (1, 5), - &Tile::Powerable(PTile::Gate(self.tool_gate), false).texture(), - Tool::Gate, + &Tile::Powerable(PTile::Comparator(self.tool_comparator), false).texture(), + Tool::Comparator, ) { - Some(Scroll::Down) => self.tool_gate.next(), - Some(Scroll::Up) => self.tool_gate.prev(), + Some(Scroll::Down) => self.tool_comparator.next(), + Some(Scroll::Up) => self.tool_comparator.prev(), None => (), } } @@ -972,7 +972,7 @@ impl Editor { Tool::Erase => "cancel".into(), Tool::SetTile(t) => t.texture(), Tool::Math => format!("{}_off", self.tool_math.texture_name()), - Tool::Gate => format!("{}_off", self.tool_gate.texture_name()), + Tool::Comparator => format!("{}_off", self.tool_comparator.texture_name()), Tool::Wire => format!("{}_off", self.tool_wire.texture_name()), Tool::Arrow => self.tool_arrow.arrow_tile_texture_name().into(), Tool::Mirror => self.tool_mirror.texture_name().into(), @@ -1004,9 +1004,10 @@ impl Editor { Tool::Math => { self.set_tile(pos, Tile::Powerable(PTile::Math(self.tool_math), false)) } - Tool::Gate => { - self.set_tile(pos, Tile::Powerable(PTile::Gate(self.tool_gate), false)) - } + Tool::Comparator => self.set_tile( + pos, + Tile::Powerable(PTile::Comparator(self.tool_comparator), false), + ), Tool::Wire => self.set_tile(pos, Tile::Wire(self.tool_wire, false)), Tool::Arrow => self.set_tile(pos, Tile::Arrow(self.tool_arrow)), Tool::Mirror => self.set_tile(pos, Tile::Mirror(self.tool_mirror)), diff --git a/src/marble_engine.rs b/src/marble_engine.rs index c682a91..f99ddd2 100644 --- a/src/marble_engine.rs +++ b/src/marble_engine.rs @@ -125,7 +125,7 @@ impl Machine { }; // `machine`` is being powered, in direction `dir`` match machine { - PTile::Gate(_) => (), // handled at the power propagation stage (end of step) + PTile::Comparator(_) => (), // handled at the power propagation stage (end of step) PTile::Math(op) => { if front_tile.is_blank() { let pos_a = dir.left().step(pos); @@ -458,9 +458,9 @@ impl Machine { } } } - Tile::Powerable(PTile::Gate(gate), state) => { + Tile::Powerable(PTile::Comparator(comp), state) => { *state = true; - let gate = *gate; + let comp = *comp; for dir in Direction::ALL { let front_pos = dir.step(pos); let source_pos = dir.opposite().step(pos); @@ -482,11 +482,11 @@ impl Machine { let val_a = self.board.get_or_blank(pos_a).read_value(); let val_b = self.board.get_or_blank(pos_b).read_value(); - let result = match gate { - GateType::LessThan => val_a < val_b, - GateType::GreaterThan => val_a > val_b, - GateType::Equal => val_a == val_b, - GateType::NotEqual => val_a != val_b, + let result = match comp { + Comparison::LessThan => val_a < val_b, + Comparison::GreaterThan => val_a > val_b, + Comparison::Equal => val_a == val_b, + Comparison::NotEqual => val_a != val_b, }; if result { self.powered.push(front_pos); diff --git a/src/marble_engine/tile.rs b/src/marble_engine/tile.rs index 03e98ed..cc41320 100644 --- a/src/marble_engine/tile.rs +++ b/src/marble_engine/tile.rs @@ -31,7 +31,7 @@ pub enum OpenTile { #[derive(Debug, Clone, Copy, PartialEq)] pub enum PTile { - Gate(GateType), + Comparator(Comparison), Math(MathOp), Silo, Flipper, @@ -54,7 +54,7 @@ pub enum MathOp { } #[derive(Debug, Clone, Copy, PartialEq)] -pub enum GateType { +pub enum Comparison { LessThan, GreaterThan, Equal, @@ -94,10 +94,10 @@ impl Tile { 'v' => Tile::Arrow(Direction::Down), '<' => Tile::Arrow(Direction::Left), '>' => Tile::Arrow(Direction::Right), - '=' => Tile::Powerable(PTile::Gate(GateType::Equal), false), - '!' => Tile::Powerable(PTile::Gate(GateType::NotEqual), false), - 'L' => Tile::Powerable(PTile::Gate(GateType::LessThan), false), - 'G' => Tile::Powerable(PTile::Gate(GateType::GreaterThan), false), + '=' => Tile::Powerable(PTile::Comparator(Comparison::Equal), false), + '!' => Tile::Powerable(PTile::Comparator(Comparison::NotEqual), false), + 'L' => Tile::Powerable(PTile::Comparator(Comparison::LessThan), false), + 'G' => Tile::Powerable(PTile::Comparator(Comparison::GreaterThan), false), 'I' | 'P' => Tile::Powerable(PTile::IO, false), 'F' => Tile::Powerable(PTile::Flipper, false), 'A' => Tile::Powerable(PTile::Math(MathOp::Add), false), @@ -135,11 +135,11 @@ impl Tile { WireType::Cross => '+', }, Tile::Powerable(tile, _) => match tile { - PTile::Gate(gate) => match gate { - GateType::LessThan => 'L', - GateType::GreaterThan => 'G', - GateType::Equal => '=', - GateType::NotEqual => '!', + PTile::Comparator(comp) => match comp { + Comparison::LessThan => 'L', + Comparison::GreaterThan => 'G', + Comparison::Equal => '=', + Comparison::NotEqual => '!', }, PTile::Math(math) => match math { MathOp::Add => 'A', @@ -191,7 +191,7 @@ impl Tile { } Tile::Powerable(tile, state) => { let root = match tile { - PTile::Gate(gate) => gate.texture_name(), + PTile::Comparator(comp) => comp.texture_name(), PTile::Math(math_op) => math_op.texture_name(), PTile::Silo => "silo", PTile::Flipper => "flipper", @@ -370,31 +370,31 @@ impl MathOp { } } -impl GateType { +impl Comparison { pub const fn texture_name(&self) -> &'static str { match self { - GateType::LessThan => "lt", - GateType::GreaterThan => "gt", - GateType::Equal => "eq", - GateType::NotEqual => "neq", + Comparison::LessThan => "lt", + Comparison::GreaterThan => "gt", + Comparison::Equal => "eq", + Comparison::NotEqual => "neq", } } pub fn next(&mut self) { *self = match self { - GateType::LessThan => GateType::GreaterThan, - GateType::GreaterThan => GateType::Equal, - GateType::Equal => GateType::NotEqual, - GateType::NotEqual => GateType::LessThan, + Comparison::LessThan => Comparison::GreaterThan, + Comparison::GreaterThan => Comparison::Equal, + Comparison::Equal => Comparison::NotEqual, + Comparison::NotEqual => Comparison::LessThan, } } pub fn prev(&mut self) { *self = match self { - GateType::LessThan => GateType::NotEqual, - GateType::GreaterThan => GateType::LessThan, - GateType::Equal => GateType::GreaterThan, - GateType::NotEqual => GateType::Equal, + Comparison::LessThan => Comparison::NotEqual, + Comparison::GreaterThan => Comparison::LessThan, + Comparison::Equal => Comparison::GreaterThan, + Comparison::NotEqual => Comparison::Equal, } } } From 654d6ccf1a9f90c3571f9baf617e32e3f50c2a47 Mon Sep 17 00:00:00 2001 From: CrispyPin Date: Sat, 14 Dec 2024 17:34:47 +0100 Subject: [PATCH 5/5] widen arrow sprites to be centered --- assets/tiles/arrow_down.png | Bin 197 -> 206 bytes assets/tiles/arrow_left.png | Bin 174 -> 183 bytes assets/tiles/arrow_right.png | Bin 158 -> 162 bytes assets/tiles/arrow_up.png | Bin 153 -> 163 bytes 4 files changed, 0 insertions(+), 0 deletions(-) diff --git a/assets/tiles/arrow_down.png b/assets/tiles/arrow_down.png index b7f31de29089d2d16081141703882b81d642f497..c18a2ce6faa0f99fcf1f504c59ef8a3f4673e0ea 100644 GIT binary patch delta 178 zcmV;j08RhJ0nP!CB!87jL_t(IjbmV-5HP|Rq2)9GlcI5TXF4MT0|NsKy2Sf?XYpzj zR5C{4!wqut~nZcNV8c zK_z1pK8gYF@1123R5Hd;gwFy-bV-;uu(<+eFwFTFE+EDg=ms;PE7-Go79+A^7{(@# z)dl!mfz4YOF2LprT(;vh09hl<6}X}nrvd1;VY3~t0m!!EOCneV0iooL*98>YP7DA5 Xdc;Ow$Ly5{00000NkvXXu0mjfG7Lol diff --git a/assets/tiles/arrow_left.png b/assets/tiles/arrow_left.png index c309db72e543bbd82d858140b9483c827dee2d87..77b59b6ca51f59464a9625b450c61a9d9b7b9a8f 100644 GIT binary patch delta 155 zcmV;M0A&BJ0k;8=B!7NML_t(IjbmV-HwZ1C`9HLL=6@KUg%pk0#0eUJuJQf7vkZbt z#)J(Zq!Fh9#A?JafK-hzz(i05u?D=qcb4J(y|Zu$Vr*w%K=Q(#)w38G7#J8_Leu^u z8$ie)j6fvSAVxw?L^lWqR(GZ|Vs!zrE+QMagr@z688$co02G58ICi2QAsGMw002ov JPDHLkV1hZ=Jv9IT delta 146 zcmV;D0B!%b0j>d%B!6{DL_t(IjbmUKav-#P=Ks+0ng3yY7E&}~6DMc@y2khS&N2up z851^ukVc#a5UUZx08%x=028u?_xH}iC5X|C;(|S^XE8D`Ffh1;ru|1YfRI5LVL+-u zjD(zsZV(Kt?o4OI>H=b2L^f~h$`9HLL=6_Q4F(Mm)EU~&Xoe@(xCSXG5 zyuWvrWEU}E6C}kTtOk%`5MBd_F^DJw@BtQL6bULBV|5Kd1F&h_vw9Xv^kOxD7>!sB nAVnii7Z9rv!vIn>4jupiF_b~FV5@Kp00000NkvXXu0mjfq^2z4 delta 129 zcmV-{0Dk|X0iFSnBzk2@L_t(IjbmUKG$6Em=Ks+0ng2=E$B1kIvc&4nbVf|&n1BhH z^Zwphl3m1vO^_6Wuo^&$L3j-y#vm4A3=mW@#%dTr1F&h_vw9Xv>|iy37>!sBAVnii j7Z9rv!vIn>4jupiZ_`1ro$YoR00000NkvXXu0mjfc|J4R diff --git a/assets/tiles/arrow_up.png b/assets/tiles/arrow_up.png index e7609e583521355e0f4629e9c7e439a31647a684..9810adb2bfd8bedb5f565bbf54c51dbd1692dfbd 100644 GIT binary patch delta 134 zcmV;10D1qJ0iywsB!6m2L_t(IjbmV-B?v8_`9HLL=6`%@m?*V`5ufeI{MDW5Sk=cD{#7i7~3&ifX{YZuE6R7Vr|DT e0H4i+7XSc|GA9*21;=~<0000