From aad8bb9c8329d337b49096800fa4f3b3698cf1fd Mon Sep 17 00:00:00 2001 From: funman300 Date: Wed, 6 May 2026 19:38:13 -0700 Subject: [PATCH] Revert "feat(engine): bundle Rusty Pixel as a built-in theme" This reverts commit 21ec03b15751020e109d6d54ef5ddd7f68feafcd. --- .../assets/themes/rusty-pixel/back.png | Bin 4947 -> 0 bytes .../assets/themes/rusty-pixel/clubs_10.png | Bin 4714 -> 0 bytes .../assets/themes/rusty-pixel/clubs_2.png | Bin 3539 -> 0 bytes .../assets/themes/rusty-pixel/clubs_3.png | Bin 3787 -> 0 bytes .../assets/themes/rusty-pixel/clubs_4.png | Bin 3947 -> 0 bytes .../assets/themes/rusty-pixel/clubs_5.png | Bin 4029 -> 0 bytes .../assets/themes/rusty-pixel/clubs_6.png | Bin 4189 -> 0 bytes .../assets/themes/rusty-pixel/clubs_7.png | Bin 4312 -> 0 bytes .../assets/themes/rusty-pixel/clubs_8.png | Bin 4429 -> 0 bytes .../assets/themes/rusty-pixel/clubs_9.png | Bin 4589 -> 0 bytes .../assets/themes/rusty-pixel/clubs_ace.png | Bin 3692 -> 0 bytes .../assets/themes/rusty-pixel/clubs_jack.png | Bin 4651 -> 0 bytes .../assets/themes/rusty-pixel/clubs_king.png | Bin 4656 -> 0 bytes .../assets/themes/rusty-pixel/clubs_queen.png | Bin 4594 -> 0 bytes .../assets/themes/rusty-pixel/diamonds_10.png | Bin 4704 -> 0 bytes .../assets/themes/rusty-pixel/diamonds_2.png | Bin 3654 -> 0 bytes .../assets/themes/rusty-pixel/diamonds_3.png | Bin 3875 -> 0 bytes .../assets/themes/rusty-pixel/diamonds_4.png | Bin 3936 -> 0 bytes .../assets/themes/rusty-pixel/diamonds_5.png | Bin 4015 -> 0 bytes .../assets/themes/rusty-pixel/diamonds_6.png | Bin 4140 -> 0 bytes .../assets/themes/rusty-pixel/diamonds_7.png | Bin 4258 -> 0 bytes .../assets/themes/rusty-pixel/diamonds_8.png | Bin 4384 -> 0 bytes .../assets/themes/rusty-pixel/diamonds_9.png | Bin 4516 -> 0 bytes .../themes/rusty-pixel/diamonds_ace.png | Bin 3529 -> 0 bytes .../themes/rusty-pixel/diamonds_jack.png | Bin 4654 -> 0 bytes .../themes/rusty-pixel/diamonds_king.png | Bin 4650 -> 0 bytes .../themes/rusty-pixel/diamonds_queen.png | Bin 4589 -> 0 bytes .../assets/themes/rusty-pixel/hearts_10.png | Bin 4503 -> 0 bytes .../assets/themes/rusty-pixel/hearts_2.png | Bin 3558 -> 0 bytes .../assets/themes/rusty-pixel/hearts_3.png | Bin 3569 -> 0 bytes .../assets/themes/rusty-pixel/hearts_4.png | Bin 3859 -> 0 bytes .../assets/themes/rusty-pixel/hearts_5.png | Bin 3865 -> 0 bytes .../assets/themes/rusty-pixel/hearts_6.png | Bin 4045 -> 0 bytes .../assets/themes/rusty-pixel/hearts_7.png | Bin 4163 -> 0 bytes .../assets/themes/rusty-pixel/hearts_8.png | Bin 4194 -> 0 bytes .../assets/themes/rusty-pixel/hearts_9.png | Bin 4357 -> 0 bytes .../assets/themes/rusty-pixel/hearts_ace.png | Bin 3478 -> 0 bytes .../assets/themes/rusty-pixel/hearts_jack.png | Bin 4640 -> 0 bytes .../assets/themes/rusty-pixel/hearts_king.png | Bin 4649 -> 0 bytes .../themes/rusty-pixel/hearts_queen.png | Bin 4579 -> 0 bytes .../assets/themes/rusty-pixel/spades_10.png | Bin 4634 -> 0 bytes .../assets/themes/rusty-pixel/spades_2.png | Bin 3295 -> 0 bytes .../assets/themes/rusty-pixel/spades_3.png | Bin 3484 -> 0 bytes .../assets/themes/rusty-pixel/spades_4.png | Bin 3916 -> 0 bytes .../assets/themes/rusty-pixel/spades_5.png | Bin 3956 -> 0 bytes .../assets/themes/rusty-pixel/spades_6.png | Bin 4137 -> 0 bytes .../assets/themes/rusty-pixel/spades_7.png | Bin 4236 -> 0 bytes .../assets/themes/rusty-pixel/spades_8.png | Bin 4360 -> 0 bytes .../assets/themes/rusty-pixel/spades_9.png | Bin 4522 -> 0 bytes .../assets/themes/rusty-pixel/spades_ace.png | Bin 3643 -> 0 bytes .../assets/themes/rusty-pixel/spades_jack.png | Bin 4645 -> 0 bytes .../assets/themes/rusty-pixel/spades_king.png | Bin 4647 -> 0 bytes .../themes/rusty-pixel/spades_queen.png | Bin 4577 -> 0 bytes .../assets/themes/rusty-pixel/theme.ron | 76 ---------- solitaire_engine/src/assets/mod.rs | 6 +- solitaire_engine/src/assets/sources.rs | 132 ------------------ solitaire_engine/src/theme/plugin.rs | 46 ++---- solitaire_engine/src/theme/registry.rs | 90 ++---------- 58 files changed, 24 insertions(+), 326 deletions(-) delete mode 100644 solitaire_engine/assets/themes/rusty-pixel/back.png delete mode 100644 solitaire_engine/assets/themes/rusty-pixel/clubs_10.png delete mode 100644 solitaire_engine/assets/themes/rusty-pixel/clubs_2.png delete mode 100644 solitaire_engine/assets/themes/rusty-pixel/clubs_3.png delete mode 100644 solitaire_engine/assets/themes/rusty-pixel/clubs_4.png delete mode 100644 solitaire_engine/assets/themes/rusty-pixel/clubs_5.png delete mode 100644 solitaire_engine/assets/themes/rusty-pixel/clubs_6.png delete mode 100644 solitaire_engine/assets/themes/rusty-pixel/clubs_7.png delete mode 100644 solitaire_engine/assets/themes/rusty-pixel/clubs_8.png delete mode 100644 solitaire_engine/assets/themes/rusty-pixel/clubs_9.png delete mode 100644 solitaire_engine/assets/themes/rusty-pixel/clubs_ace.png delete mode 100644 solitaire_engine/assets/themes/rusty-pixel/clubs_jack.png delete mode 100644 solitaire_engine/assets/themes/rusty-pixel/clubs_king.png delete mode 100644 solitaire_engine/assets/themes/rusty-pixel/clubs_queen.png delete mode 100644 solitaire_engine/assets/themes/rusty-pixel/diamonds_10.png delete mode 100644 solitaire_engine/assets/themes/rusty-pixel/diamonds_2.png delete mode 100644 solitaire_engine/assets/themes/rusty-pixel/diamonds_3.png delete mode 100644 solitaire_engine/assets/themes/rusty-pixel/diamonds_4.png delete mode 100644 solitaire_engine/assets/themes/rusty-pixel/diamonds_5.png delete mode 100644 solitaire_engine/assets/themes/rusty-pixel/diamonds_6.png delete mode 100644 solitaire_engine/assets/themes/rusty-pixel/diamonds_7.png delete mode 100644 solitaire_engine/assets/themes/rusty-pixel/diamonds_8.png delete mode 100644 solitaire_engine/assets/themes/rusty-pixel/diamonds_9.png delete mode 100644 solitaire_engine/assets/themes/rusty-pixel/diamonds_ace.png delete mode 100644 solitaire_engine/assets/themes/rusty-pixel/diamonds_jack.png delete mode 100644 solitaire_engine/assets/themes/rusty-pixel/diamonds_king.png delete mode 100644 solitaire_engine/assets/themes/rusty-pixel/diamonds_queen.png delete mode 100644 solitaire_engine/assets/themes/rusty-pixel/hearts_10.png delete mode 100644 solitaire_engine/assets/themes/rusty-pixel/hearts_2.png delete mode 100644 solitaire_engine/assets/themes/rusty-pixel/hearts_3.png delete mode 100644 solitaire_engine/assets/themes/rusty-pixel/hearts_4.png delete mode 100644 solitaire_engine/assets/themes/rusty-pixel/hearts_5.png delete mode 100644 solitaire_engine/assets/themes/rusty-pixel/hearts_6.png delete mode 100644 solitaire_engine/assets/themes/rusty-pixel/hearts_7.png delete mode 100644 solitaire_engine/assets/themes/rusty-pixel/hearts_8.png delete mode 100644 solitaire_engine/assets/themes/rusty-pixel/hearts_9.png delete mode 100644 solitaire_engine/assets/themes/rusty-pixel/hearts_ace.png delete mode 100644 solitaire_engine/assets/themes/rusty-pixel/hearts_jack.png delete mode 100644 solitaire_engine/assets/themes/rusty-pixel/hearts_king.png delete mode 100644 solitaire_engine/assets/themes/rusty-pixel/hearts_queen.png delete mode 100644 solitaire_engine/assets/themes/rusty-pixel/spades_10.png delete mode 100644 solitaire_engine/assets/themes/rusty-pixel/spades_2.png delete mode 100644 solitaire_engine/assets/themes/rusty-pixel/spades_3.png delete mode 100644 solitaire_engine/assets/themes/rusty-pixel/spades_4.png delete mode 100644 solitaire_engine/assets/themes/rusty-pixel/spades_5.png delete mode 100644 solitaire_engine/assets/themes/rusty-pixel/spades_6.png delete mode 100644 solitaire_engine/assets/themes/rusty-pixel/spades_7.png delete mode 100644 solitaire_engine/assets/themes/rusty-pixel/spades_8.png delete mode 100644 solitaire_engine/assets/themes/rusty-pixel/spades_9.png delete mode 100644 solitaire_engine/assets/themes/rusty-pixel/spades_ace.png delete mode 100644 solitaire_engine/assets/themes/rusty-pixel/spades_jack.png delete mode 100644 solitaire_engine/assets/themes/rusty-pixel/spades_king.png delete mode 100644 solitaire_engine/assets/themes/rusty-pixel/spades_queen.png delete mode 100644 solitaire_engine/assets/themes/rusty-pixel/theme.ron diff --git a/solitaire_engine/assets/themes/rusty-pixel/back.png b/solitaire_engine/assets/themes/rusty-pixel/back.png deleted file mode 100644 index ef19f35eaef8fe0e0469eeb5ae27544016d909a6..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 4947 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 diff --git a/solitaire_engine/assets/themes/rusty-pixel/clubs_10.png b/solitaire_engine/assets/themes/rusty-pixel/clubs_10.png deleted file mode 100644 index ec5e928cd4facd0f225aa9b9cece3c641b8ae104..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 4714 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 diff --git a/solitaire_engine/assets/themes/rusty-pixel/clubs_2.png b/solitaire_engine/assets/themes/rusty-pixel/clubs_2.png deleted file mode 100644 index b6eda9db9452165f80a9f8d3df8f0c381be944b7..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3539 zcmeHKYgAO%89n!KFqemT2SgAF3?d8_3y2hk@VX*`Pasx-5Maguwt)t~uQf8D#jdmi6+ z_CEXDw>UI7XtBP9J^*0x=1l=R03h%y!H|pa!@spzhT~P61J>_Mi%|}&{UWNJv+?83 zWeMHl%|)C@;Jt>BJTV@xVtjEv|#7j$aVWPIkzu#+EZl+F5l{ zOYRFlL>*nF3IwOF8kDluh-6oCscj6%>oEIJc+py>y%P^+fG`vyDzdqkTzI~mk%Bc4 zeve4*#mt)=)o+0pL%R}wx|{Y3X43Gm76?|EaG9TG;>vic8EI`!)SM3^$es1HS_#O5 zb~K2tUgrTrxHJf1MmcXs8WwEi3TJ`Vy|4?3x{n2M8;Svu2$dEncohwJO?&K-JBQ0` z7e^mqixDZm9@d%9+C$W!*SL@3p8`Zp@3Bg%H-G`|!o!Op&)C6$?b3wQ-`z%f2Qt8F zcw{NGB`Nl(MFA~e3z5p)qmD9PFW&)V3hTSyQe;*+AR-J=o*qRf&;Hq#28V$#7Fr{D z=4<(9l+Ou3T;Jv70&|VIppT(l2uL~!4x$R}$K7gDQ_WQ93w;qO4hgs4C?CW5jcxLw z-i|osaz@8IGPsbm+`xbne{1EE6FeHsS6<-=e~0s0yUQF2HRu*h(|)ddA#f&>2+v>e zglb&#eD9Uz!ahBURhpUu;XEFkJuy(iDv^_Js79n+eX0vxAZJt23?7?ZKakI+;QcRc zG0bOu@%fZ}S55Ixu;;8ShZWvrC>${VVC7w3b`9|nbL;n0`?EM@W#N-BWxfpoYN$s_@$T_ z_m8Giy_+yGS`VATI*x;Zyb+A72f}uIq{9<60b(BlCJ6onNbg`wlz7D|sKg|g*Vm=x zDVQjHFCHfWSMn&_0l+d`efvYtVmcF|Zdq$2(~~>(&Ee|sT0Av4Y4qk4hb=5<81;=lBqvlj;p0LDF$yr4wN|STw%kwSN1&*64cAQ_bu{obp6YMV&1Zm;a?T z4ZeJ;d07k!&6>^2z%oLVQ}bro$Frn7=5=3^RR5ZKq0jMAh7FPUL$)>!CFg#?+m5ft zci-$@27AHxcTG|EU+d#bwty}%U$Go@H+M)pUd})JQ5vJQ3Yu>2GR*k(QsU+K)3(O& zq|xyeXF-*7KuQ*LfL_WcC^^#h>WB>!lRc|1P8ZabhT!AfQKJ}lWQK+-1e5DX zKTYw|y23Qydw<~>(^E});&h=$SqShjYsl~+>Ww>nL%{8M9y6l**xQ%rk7CECQNtFO zd2hn)SuLnCOPhLyl2ZxE0~2=jwTUU@Qm_4r5@{r@ZOJFfHh{L(_RQ`A8Q+L#Hdjry zo3Q(bu0FG69&57Cia??1+z=nB_ONw6IlHL3Cu_SfQ6h#POu7+`l8N&=ChXSdB6Tw4 zOUu1@D;ck`!DJ7jA86!`dUE-Jn6(x}bKV~ZQD&PdN+Z+ZP9b!4+cAQuMfq*7#B;!_Zd(J&MVGjcC-nFF7)7OYFl%!2BZqCRtzwHWSI>zu}fo`OkMwP3$f>~scM!zS}aV z3opoodg59CrFf;44fkS#vCjTupA{VKIU~gr4?V&H8ENY*!pd7HNg`srMeRwrqgD$C zvp*#I2iQ;4ChRBK%~=*O&2uQsjG`r%?-$uIhYHI@G$?@eojZj?1GkQxNT?vTOr#uHEZU60lpVGE2yM zE5H^pw+-BUp(Cbkf#_S(4V&|K0;>C2Im5OL3$f*36b^6zQ(wL4cG+8j1vB*6tEwU{ SJ{|w8fz2C(11|W-=KTvJnG)gv diff --git a/solitaire_engine/assets/themes/rusty-pixel/clubs_3.png b/solitaire_engine/assets/themes/rusty-pixel/clubs_3.png deleted file mode 100644 index 09a1df61a57c1a99044338edcd46a21a1b250cba..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3787 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 OD%kAg>X^qDME?T>XrqGw diff --git a/solitaire_engine/assets/themes/rusty-pixel/clubs_4.png b/solitaire_engine/assets/themes/rusty-pixel/clubs_4.png deleted file mode 100644 index f4be5c7f6ce59613b642b1a5c3cc7592e1185cb3..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3947 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 H%7cFcK&LzY diff --git a/solitaire_engine/assets/themes/rusty-pixel/clubs_5.png b/solitaire_engine/assets/themes/rusty-pixel/clubs_5.png deleted file mode 100644 index 3526423a88da296644fa5c8054dc9df236ac7bae..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 4029 zcmeHKYgAKL7C!fK2{$~0X)7v^%iBU*P$+LgK;*TQFlq}3g+NizQi%#Bgg|aIN-Ie4 zi3$~vc3?n()+#EHTt%yPL{N%?3JDJtsX$O5$g{`!Gp^OH)wO1I*8G_MN>~i&atok`=u_`f1LNIUUI=RBgMu|SY;dSOT|I`e=K4oPnd3WweE!8t zekCB<_5dU`IHUx(Vh|)&neSh!gP?;453>w|2$e68<#0-$2Voyrvq2%P{CzAGMlla} zu$AjjjJL({fu9l+t5&gFbwjUyLqpv$oXDwOZ=1frBV6^bs2vAPNyj?(raTAzUIf5ogjFR8!ZW zt~eFN3i2ZmYy^T)Z!UMj?$RYb_~D*16ekJ-NN~5!!$>>>qvw`9V~Cw$^xk`y@kbnP z6kyr%M3o-?$|$&6fAD*K@nS1Ba4@Q}H&>m(aAj0*WDcdXC_>sBdR471gE?dO+%JLpnFtD z0!mK+WP@!f3*Cd^r3~3!d;?RZ_zy7l=7Cqsz7pvf zl?))!#vE{SR?iKwl12>jQM@-Q#Ri}eoZxP4G-xviUV=SNNNKs)`DsZSS9F{vk%wSz6WmV&1gS?-*G zD|tBp=k83Xi3tToW2dpYjA(vFeIn@9NipRuD`}Z*FJw|S@#vRL8l6{7V325k0dNV- zdt(y=Aj$c+I{r!LI+>yb*>d2bz#U2caTUPo+*gLfziZ*+B;504=rLBe!~o)cawEE_ z80;E*uHE}gdWH6oqsZrY^o1di*4%~5(m@@o&g|*Q!MRg2?GBxd0Kqi!^pjFWb#vpx zcV(^*UPvR$(}4LlTNZc>oC=Otp*i_;16q- z(sUf+@wQI0$BEAZcl8&xh+X|wb5gTCq*M6pc##gE(9?` z(=TFG_Qogar}2qt4`lqO&l;l8&H$IK8b~Am5vJ-xv}yx^FIk^rOFm>)4NJk+S7x;` zdra}tOgfn4i@NP=kQpIAC-T;7VZ8NAwFKs*M!~Wp1Q`(Lea8;*@*PXNO^{C_Yv2Wy z=fs{7Nk2`OC(@c|`+(r_MA^d*9f4YN4QSDdKbwViVqZMmfnIq3K+GJ2UEA2Gk#zF@ z=fh0u^RJR8&kD3&-_DDPAWjl!K#=7ZN*n?}tJBx17Kk&a2%ON0c*H{9(qg>N0e{tm8*F| zXo3dOgwuS~ZEa(^H|%&t&Inz34P7hKN31kt!&8;Swgzc-JnZ=&YrD5W4UOE|j1}xt z%bMv**%~`f3o>L{^BlbtOkcC6EBkmWH(HXqRavc8q^v6|{3)jTq%-CVCeoPv!@^8F z=J=lKS{j|(>BXSxC^}mSMSKD0YjIr|Mr%kw%NZTQ8RQZ+*AdPj#K=3p1|cl8wiUMi!?XLb))q)2-lF8R#uYSCe^9jQSwK&=G@-n1z; zRWz+xw3r~dctjzK3J9Ez#C&xg~(0F8W zqou#TP%+t{F_jz`aY+nZ#+IoPONLVV6fxOFM7={nBm514N&QD2m@SzK*^y0F8`(?Ds5?a6fs( z@nc25O?`N_7weoM<2Bu;nb#dZDY)7HDgfM+K+8TD_+F|PB2k@jg=wFz_-30X;&m%q zttqz?J#2jyK35~lZ{63{Rm-HB8}+8nF7(y*WqjycGcq%NpRSBM1%1dsx?yNLoGW6W zJ>>-2O}L>!*JdWq+e@~jYu2@wWo)}Pw!^Vr^S&T3_A;fJA+t{m6441+V@kW(9iZi11zO;_-r z;YFL)O(oe&;NbPw5q~-tPwB$>7ZaS-bfu7HXYt>x3(pLZ>+oW2Jp7bK25Sq_3%hx*s}ad-U+xYs9= diff --git a/solitaire_engine/assets/themes/rusty-pixel/clubs_6.png b/solitaire_engine/assets/themes/rusty-pixel/clubs_6.png deleted file mode 100644 index ced4916b3d636039c960c6ae75c2a957434dea97..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 4189 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 Xeqc}&9`kJc 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 Aq5uE@ diff --git a/solitaire_engine/assets/themes/rusty-pixel/clubs_ace.png b/solitaire_engine/assets/themes/rusty-pixel/clubs_ace.png deleted file mode 100644 index f2c6da91ac1835de867495dd16538a2245294063..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3692 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 diff --git a/solitaire_engine/assets/themes/rusty-pixel/diamonds_10.png b/solitaire_engine/assets/themes/rusty-pixel/diamonds_10.png deleted file mode 100644 index fe9dd6b077f8465698ac3c564472ac6340d3b1b2..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 4704 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 diff --git a/solitaire_engine/assets/themes/rusty-pixel/diamonds_3.png b/solitaire_engine/assets/themes/rusty-pixel/diamonds_3.png deleted file mode 100644 index 0834e1a5ca69cea616304c808e7928c1e255d90c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3875 zcmeHKX;c$g7JlzhNJSJAaX}*xh=LoU4azEs$fDqa9>$%;nYK|-2nqyIpb8Njk>Igg zuw`>O<1)A)G>Wp7+9K055=9zpS)z#SNk9x+AoJ)mGpGOP%+Kj_{8g`Ry}H}`zI)&O ztJeni$rEQ!1OQB4yT)ZR01z)BMNYsE=SRh*0O)nDby?*d>D$wI=WJs=$92hWrcd3sK0L&*Nl#O{i*F2L9&}oQM0CPAXd}+ zOhB+t%vELq(?d4aD0V6jBvHbp5RrP#?PRg0r_Rq&D_4h%pUR`8vgBkYyBajWZ3J;~u`#L<~NyXgF<`aEiII^cZ|;M}Vrsz{{Je5{Tw?mq;KOOHwtNq~y5 zBA;(-Y|uZeK$I`zx2sKf6Vi3}V!!W1DJ96|pWAU1a|}A&Aa@J`3H$e!k``qJ(~kklJuF zO+*fG3Jh_-0Z=p!ta*P}0@Fi~vWOoi@}y}1_E)(DkPRCs5d7b^FqYaShIi0sP0?w_ zsHy29B6%V%M1_-Y>hh)8*hux7M6$sR8(H1;i0n64<^lBqX3V6EO_%Y7AVQ1wM+AFL z>2nSbIN(E~Ymic`6?gARdke{C3fD}IXR2{r*#WJ5j)6M`%3T9_L`)WQ5j=~jiuL}r zd8(u7yKo{4>#Dx9g+)i;oche2?JTpyIh_-9mc7?q)+*2&?sUmw6?;ez6Th(7jJ<<7 zr#=h7{l*s|dz-lsbaiLA_#Z)*n$6N2R-~C|`KG$nG6joG^$2>e7)l^8e#X@x{hF$%sTIy7O~VZ7#SETlUg`T5-2h@r{t_!l{+XRNJ8k4#+ln@i2gslCnX9cGL%3LS!YoYPk_?)Nd{_g586)soD`Bv=~Dk#dj|8HK%+JXUG%42L2%#7ZJHb_H5=ooN;d>cmj9%jO{Zi zY%Q~Y7;xJiRQHvZ%!Un;NN#`lfpigEEY!7k29F<`QEy$J_nRe*au+%<;~X+N>6<570om#lxA za%{2QH4|9y|pSi2L>v;Eglsp%U=TyS)>MRE(mj zD-zk~R#9IB|1bF{bbK;i^&LjuRJOGS*%cZ?RBxH@>0m~Ah6an5q536xL0mH`=&(Fu zIjXm~lQc4qN}_`!>`?vU+^w%idnd<+tsEyt)4>O17)YIl2Dp5@~5l|N1O{r zIYJ9fWscuyf*??8MPuUlnNv+e8FC3GPLh)lJbr6V?WUU?^8cL_nd&b9_8I88?xco;>V^;aE62C14FXXSED zldj9Sf-6Um!Ho8*7B*8wWtTca$Mr`QQADmdMh+5M2l{OZrFCy&mrt}iCQqVP@%=g2 zg~H)J!Yfm#7$&3+*=a?5Dvcv41@M$)ps`i3u-lW`uDcrK_c>;~?>3}u)Fv-(3Mg<_ zqB#125M{l3r%x=kYb-mLjBAy^AnjjO%N)=e0UER2tBNVqs(7ZU60;opD|e8n;-`_S zALJl!CI#|7h;`Um0vK;e_2%PpA2D`i3hozgbp6%)5pg=Rtm8434k80V`grXO85ZGg zRtn0iaVdT^l^73nP~sO#!#3BN4WU)K&ZMLgZ^5yvhK1T7r=T!KK#k z8P3HLU$IW^R^O{d^QfANOL}ZZS;+E_WGp4_z!G)GWPk_e-mi_}%f7PW;o6YF%M(`W z+nT-{2}kXj)g5vYldv7Pw8b%>0CC8e)y9vuSuAgJ(Jd#K(NZhFoIQ3bmY@Lcai1lO zD17MZaapRSlgKVHf{v9Vsz5^I@OG0n>F=GPFw)$j9H^3+CxGgiV*LQ-%Di4Uvk$8?yAghtR24s-JESoZ3*4gJPGcq4tp`3<-hrS>@rT)MU|9t0MOuX_NWGxIx-fs>5Q0#C3$PC5Zi$9J2! z2j@v^6X6%ZA1WUk*@MHqHR3&_jMW*)lg0yR&2r|F-gwHH*coX0A3+#THcOZ|t)CKd zAexVEFGhwW`wu6e2g*i=D~(+X&bk8n&xr7vL-mo~c(n5v4&-~SqrgcmFC*Fm8KEsN zwsJqWL$N3+CmEmu4E)rxPVzgfW3&1s-^-H%fkQbG;R0HN9`<<+AHV-|3m$&KTGtIO Jx19as{t0mW-17hc diff --git a/solitaire_engine/assets/themes/rusty-pixel/diamonds_4.png b/solitaire_engine/assets/themes/rusty-pixel/diamonds_4.png deleted file mode 100644 index 921095f927941ff8d2162725d922e7e90a6c663e..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3936 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 bQ@XP58fm=sfY~G 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 diff --git a/solitaire_engine/assets/themes/rusty-pixel/diamonds_jack.png b/solitaire_engine/assets/themes/rusty-pixel/diamonds_jack.png deleted file mode 100644 index aa979b13a7eb2c209794adb405aee15d1ddbd309..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 4654 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 E7Y$H6&j0`b diff --git a/solitaire_engine/assets/themes/rusty-pixel/diamonds_queen.png b/solitaire_engine/assets/themes/rusty-pixel/diamonds_queen.png deleted file mode 100644 index 7b5b710878c31cb61d0bf7cd9c685fdcba144cf0..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 4589 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 O4)9##y*l5Wee9paz9mus diff --git a/solitaire_engine/assets/themes/rusty-pixel/hearts_10.png b/solitaire_engine/assets/themes/rusty-pixel/hearts_10.png deleted file mode 100644 index d6fcc4b37819d968e364c63abb5b0320d0b4d39f..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 4503 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 X?2S%49Dbk}z~5@Wz?Fr*{M0`KeuP&# diff --git a/solitaire_engine/assets/themes/rusty-pixel/hearts_2.png b/solitaire_engine/assets/themes/rusty-pixel/hearts_2.png deleted file mode 100644 index bdc2e0d1d498f933d5dd08ea1d0fcf902ea7fbfb..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3558 zcmeHKdr(tX8b9~sUQ8~Ckpy9tS5QL`1UjpQkw+qefL4g2f~$sT$44EP$JSy{3^!g|@=vtb& zsnwm3e&Xz-U@9-1PFi0%f9E<`;a;9!YA9{I<4v>A99_}A`|;opI(uaK8GVoT(;|

c)QqR_ftDN!kJ@~{x+mo!v=5m_&TET&( zIG+~o{FuE6{pY8(ra1Xo3U=VXcTp|Ji1v%e%hc;597 z@YzIp2oR5E72i+BV}u$I)7u*eb!boB(fa~+{znol|IXc1JX2t<1^I@8BDHrR?U>5n z>0kLvuzD8m2)I2sJC? z883{;PG0}v{Os>3Sg(HQ>=uzA!PIBZt>SD7F`GS9Ar<`uhkIqF6f9nyeu!3LL~T!J z99#@ZjgTzjc7$qxwX`%*vs{8bjN393jw42upYk{l*&^x-QE;qWPq*k@Ms|Ls(~mo> zJv@bVETLl1h_g2ZXu#FFkrnt!o)omkZ{Gr+a75Ib;3hYf5f5>+Nwm-&ty;I#z*Fcc zsL-D?%*&2M!8Rm%AEl>u8L!S4s-7au)A-jCyc-45o%Qm!oX%tk))}&9n!g#vYE}kS zBr&M3ZeFALy!g__O2c%F4|RO~hs z?U*a@4X90#V5Yhck4efXc%|r8EN(?R9(XLAd4;D)2U+1tYc$p~{A63E06GxAA*^4P zBWg1!>E@ZE9n8}g{jCUW^sft3y+K0x?7Zw4odZdx{x88FF-uf0VST21O&mpMB9b?D zM!|SQvdBft?O3P*xkaT3nnVf4|9p!(Y(VK}<_xp>=yQJxtBRHDkjxfl`l$RdLdrk9 zj%`ArH2ipXu5_LT9KTshs=AQOboF`oahxw%?YUl1yAh=|E4)N-t$LES~&EMA4fUA~H`z}%*IackofNC+W z1xKcN$}+G+taR@hu%6f2I)H92_B!YT0 zM9SA?TZc(z``BOzE*=$+!$7KTcsz4IkzFUr$oC@5TbZuV8pK*fbPA>}s}N(I!TPS& z)rggFL&Liiyt%K(iz#Xiq&!%cGi2D8y#DeU@Wb$i?qn>O*ZmF=Ty2~jNy0j#m>-RS zR6PB_r{Fs-I(fglX&BIg^5G@+I(K?#rfeS|vIBQGiUKKnac<@nkh{y{&Kf`n_|;R? zCszGDg{nvtgr{OJOhLjR>bU3Dl_JXXK&zZ+KfP?1GjZxn=pVIUMIpPo62zK+a@&bc z{q(>Nl?0Xh5OZRFyC3QmYie1lQxs(1n6px|RDvz~Qa%j|FoIhceqM5rf;$s$xZ<&p z^ux1)RZghcoGSEYA40`ucc;VYNJj!9lFLSN;Wl2wXQTCHWUe0<)motVn6n6-)x&&~ z#1E!U&KG0&1qGLLRkn(hfl;<)A*W+`GeT|7i)uQ7PT{=`jRjFHEEhDUZemp@(}1?Ht|AQ_=|eMVMp$DrWKXMIBEzc4drBFaCXOA> z&jt(wX%+h4^bM3;0-3XhUVE5d4~H8YCv*7pU4PjmlpU~dSL?(lVf}_%+6-E2=qVny zq9LR!>A*M>1sK8Pay^4J!0E_fKhCEjCGuKi*}R%BAxrcY{L)E?s2k5BmmrYqd(i)$ z2m{YHW#wI~L2nlp;PYQrMWutv8FZOnSh@sraqYR!5rMrFEl1aoi2MZPbUQJ45P1s5 z?2UY6_OyR{adPT9@*jh26Awzn6Cc_~f{& IvGT%y02)3f%K!iX diff --git a/solitaire_engine/assets/themes/rusty-pixel/hearts_3.png b/solitaire_engine/assets/themes/rusty-pixel/hearts_3.png deleted file mode 100644 index 8b96ca7dcec8b24e050a0ec7d907947f8e6201b0..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3569 zcmeHKYfuzd7QTIHr3W485phu%7$7oK0G(A7->MG-VHK~b1V?Fy7JfQTs1>A?po zC_X~8d@z$@UE_*MM6*O*jhf&pED(c&2-7@d5Riuh@*eh*+DcY`#I3FUv1RR#TYc-) zz31L@&pF@s^`UivG~Zx>0RVvSzsl!B05CMg7-A;+c;7BAMfO5}pAR`xA3% za(_#cy-X&HoxQ?!2F-0SS2WsrFVa8eXz5Fy@UApC^XFUd7mTIE?!LTKD{m+ZPpog! zcukE=YEMp)l;{Mz6!Ynbio{Dv5y)UD2?hy6btmComN0pLDM(@{J7nQE*AvMJGdUB+ zmlB-|AL>8_#{}RrlhRQ-<7&3ZnrM zqh!Gl&;KlT%#VW*kHLISy=J*%gn5-DO?_;Z!`pJ~@ETG6L4Y~HE3=`HM^Y6V2KTYn zXghIZ2@&@m1%w~f8p8~NWUXuNi)xMoEH1z|h;Xo`Kn7*Mm!jcfynp07-TH@~!(P_y z-NfKR3ZxX&&W8_qBpY|vKvaWb7_9P(AOggk759dP0uKfD3?+qljkDQ#E6I6)1<-i_ zrl6~+x5ph|;~*{(egps2?Z^eyTQ{K?FYf*tKq9~f9Z_>j0w8tP}FczcS0F zMv3lKy(;}Tm$1*u=KiEM>9o9MC>TixSp5t<4LOP#@uL~g17JCRKyKQ(EnfGCtMdsp zQbZezK%?T9%#w_d5}gJZo*o^C6Re?#3}8Uo9cNdFqkIy!k_jV)U&H8A`4=iJG2xEE zk%ag_>wFIk)_Z#EiTbrT!D$*+9AaPLhH|TW4az<*>sF5`ft8e&2{E{_B4i={L?B|~ zk4F-UT{s~VewIx}(%d?bB~+%^avt)c%4Pf5GIaKmH_wg<0dzH9tTAe~&5cIUe47z) zhuDH9SO4&QHL?9yi)22`5wzM{d^` zz{@D<+giJV@ap8(U zi*#VC7nYI$H?B?YOT_bcr-orq9m?w3rXMY%J9P3eo22_53tU8llUT4c2mHmjGgJu@ zHA|lgvDr4oLo*2O(SWCifUVNAFwX)rvEKNJJhE7$c5K->Ifq>l)+l$zwp+Gb&?DIk zF5}WnFcxv+`bxObzvu%;7)g5P&LdRoO--)28TMLt{1yTsy=NaFluN)LFP9|hW#yE`F9<%1nkL*hEP1llY|r3C>yB(QL=JmFkN82OfhKM7Mywp+_$N}g+R@<^r9HnyR)sYcq$jB z_9ZS^Eg5&mw&!?Z+bv`}#_@ILY-9p7U3fYr2Q05vg5^f}g(=X^PxpJ<#EXnzuqmPJ z^q1iJ?-+1hD<5#1Q3CIU5b)mpMti2e*s?+lX8rpdL4ooXGX(bedIXMMnCm}s6!8%D zCJzxJm*iYTcJV+VgE(nkS}PC%w_ioZ+oJcdv!g8G`}zSGL6#pn7DVkWOx8n6a5 z%%VWUsF#3x1xYGihm)uR_c^j{Qv+E)3@i|^LMW4iZ94e8f& zPQ`N((IYk?IXrX0lkV;?tS9^N^C%wYbp30zL0ib>%`2?;wLG?T~lqAn253QE-4KJB`;l?_~@=3tQ-+wM>hq|>Ti7NiOtoQgyaA} zUbs@sRB6%pO;+0ys>>rSyuLN_kPo?Ebw$VDSFUq^=jby%dlw%D9Oxf%bDsu< zKH7&?qk?m8%=#G;s$!Z`&0%56-I+dIBN80(Zwiigv%>yY+fqv;Cl2c_f5j6;>j#*> zE<4|r3GO%}*O!TrKz-ZFe~RG$0DQR7s_tOrUJcU1wKySiO}%pwq1zx|B6q^z!K3Q_ z=eRo_paxnRnL9`L%0LGE=*&+1vUpFRzAP0#fp{u*EIdn0fdP9!Ey3WbKy}Xmu7j5x X%tDrZ()A7cl>`31fj(EgWoiEal~55d diff --git a/solitaire_engine/assets/themes/rusty-pixel/hearts_4.png b/solitaire_engine/assets/themes/rusty-pixel/hearts_4.png deleted file mode 100644 index f016ef10e75f53f78a9e9d67453eefdb9a4d01da..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3859 zcmeHKYgAKL7C!fQFD3yIBmt}z5K*Hd;M5i!d0bdfpg0g85LASqYm~N%;4_6tZm3`d z6{@v9cqFS<@tt(gk}8By1hhVaT70x15vm}d1W7ayAhTVaS+mx3t@$%+&7bkt&Ar)s z-|y`6-Ti%Mw;(2B9OoSlLTFr6WY`jf2>3}bEE~9l{#d0!$o`k8u#jcqr01=3_fKwg zqy)XZ)F#EXHCJ!XOeah7BlH`%Q(VRt&5?8Nh_2kq`@X!Wc|q`Hc}r>cjqDoZcL_!M zU!~T8zF>{noxqh`@lsTIqcz&e98D8y7MbR)KxvaT!Wo8F*LA^z6PYYpe*$y#Cu*}c zVCjgRc02OHG7E>#Sl0I4WSf_w?TogR8lI^wz5Dt_rHcSn)?oAks=O%CY_F--ZXzVs zq37@ZqO7rQ%L+r}2}nJ4?P0OjhM-i$?WwFqJONsIpu%4^4)3B2=B&}iBiS~pDO90{ z!IPj2p5irZFBYHK$?c`};eaIE&@ds=!7M-#(pyraY3HH8jUlj(&1X7GB>CED6jwWK zjcEy4<|IJ61%q5!G^c8$M{X6r-j3Zye$dE?#FuX3Q^f$I*rx9ydw8Y-wT!|3&I06b z-*(0c3dij~CZDoQ-WNb%3(3_6MaO#j#n8l_f*U`Qui!;HzAg(Bm1rN=*cr_qjxJy_ zCayfJwZbxd#>yty@|j7y`kLANH;vf~X!h2%g}JSW+&eF8w9c$z}VGH9`G<)D}B zIv}|o-kr+|@J%qUUL=w;_`$ko zQDg&qy)`=I3?99V<3c*w0lo@UR{1gtAA+78D)`yfQJh2*0UMtjAbn;ikdMnL7f(YK zgT;@2n!!$lP9*v)@eR{|2D?*rFm{5vgdTJ!Pv@IATTd$n$m~R#7*>}aAR7RCzhfqW zgMAbzyX96C?x5_gp+(Ko8f)a0zQMwsl2RHVbya+@n=WDS7X?>B$sv+U%P&Te?WDb} zKBJ>q&Nc^16Q4SJ8Y&r_K9SXuKoc$VB}zb{9s_JuC8CI6Cqvfgq_*kGpg-;sgI!&Y zSmFbC@x*8 z{*26lwFq3}r!>t`piA{Pr#g5kP=3lX>q2((K)oq8IB7>s_u$>+bTgs^cB;&fGo1xJ z^6aXi?B;>;8ohzwC|pIRoOqqf{ooO?Y2hHG1>Exq1 zbz}KVJrer<*4}X_xa?J1ioRm<IT|66?Aw`S*-8nF+iNQ{QxC@%)%OU4&ZGRD5X@CJMMJP>4HT@OZM*{o z-?P35RsT|XLGnSey1j!-I~w}cwvR0D);4oC4QvgNl;HVZD=Z8oeCq%7qC6fIkMMxB zlH)Nu;ID(PuODg-RsRb4F&buUp%BfmT-ImROjWN8DU$@&@RTU8&p2ft;{JBc|LiL zgQK{5*5*YQRk{be%fP&+U4 z8R*c}wh^iMnCXt@$&<}rCEU9Y3gqS^zNa)t^dIN_c3aa5xdrY2(xiGZm%#~Df4c1s z&-?j^Qi=ciP4Ic-+_4xC{b$h=>{)lw!Ofa*I#Z(_eb#uUPZ%g2vbA>yU_`ucs!5VD za<@>}rpz2Qx=aoNWgBxgsi}LgeW=`BsYx~sKl7b0VKCn&p<3|=Y4;1Ddz?;!gUv6i zAoD;a9uq6%bT~~cGnP#A1G8i|zG;Y@1?uokr?>1e=7_}1y%_>W0pbO&W7~n-pUZg2it zn@&(~A^Z=!APU!8?r-b^6BKWh{1@$4E!75(RV}?+!LkEeUWY4uWTilk@)PSEU8lny zQ)^e@g|PWCf6;mREdmzVKX z&O6&a$#j;bK(PeTy=khYa7_5w=#A^(n4r?0jTV)I<2v_k19?z3SX zCSSpa5V)@_RP-$XoLGFE-3vs|njDy`jg(o5FNP1SIDgwW1P;3>Dm*6ae5fer@8V1F AJOBUy diff --git a/solitaire_engine/assets/themes/rusty-pixel/hearts_5.png b/solitaire_engine/assets/themes/rusty-pixel/hearts_5.png deleted file mode 100644 index dd2f719dc238eca536b5d8fc3470b66f7ec7a290..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3865 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 a6OQO62;HMjOw9`b=<)UTpI0mtr~U!y-uP_* diff --git a/solitaire_engine/assets/themes/rusty-pixel/hearts_7.png b/solitaire_engine/assets/themes/rusty-pixel/hearts_7.png deleted file mode 100644 index c838716cf82964cd3d6e71a3f352240aa7016ded..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 4163 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 diff --git a/solitaire_engine/assets/themes/rusty-pixel/hearts_8.png b/solitaire_engine/assets/themes/rusty-pixel/hearts_8.png deleted file mode 100644 index d15f453640df5317c3249456638cf71b377bf017..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 4194 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 diff --git a/solitaire_engine/assets/themes/rusty-pixel/hearts_9.png b/solitaire_engine/assets/themes/rusty-pixel/hearts_9.png deleted file mode 100644 index d444ecbade96ec53533ca68f29a69a6f9197cf93..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 4357 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 F|0fMmX+!`3 diff --git a/solitaire_engine/assets/themes/rusty-pixel/hearts_queen.png b/solitaire_engine/assets/themes/rusty-pixel/hearts_queen.png deleted file mode 100644 index de5919807fd10becabc7e870b1db9f60984d031f..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 4579 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 diff --git a/solitaire_engine/assets/themes/rusty-pixel/spades_10.png b/solitaire_engine/assets/themes/rusty-pixel/spades_10.png deleted file mode 100644 index 6feda4ee06abbe945edf937b9a750a442b5e1d9b..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 4634 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 XAPjl)RmUV6;LnQBe3o5ZDvtRZ=XRCh diff --git a/solitaire_engine/assets/themes/rusty-pixel/spades_2.png b/solitaire_engine/assets/themes/rusty-pixel/spades_2.png deleted file mode 100644 index 051f84717d91fb26db15312b2de658fcbec9aa70..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3295 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 diff --git a/solitaire_engine/assets/themes/rusty-pixel/spades_5.png b/solitaire_engine/assets/themes/rusty-pixel/spades_5.png deleted file mode 100644 index a0734c9fb7fca17e588f0f64f5dbceb3304c150f..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3956 zcmeHKX;c(f7Jl`3Ky}!v=}{073L3>IgbosLVJQ|t6akGRBq%f)q9%q#G|JLK6)wc6 zKom8I3LbUFi5Z#}9i6uXp>N(g9fskklFjyKAcT0`E7mgEA$(5ShAlua4( zqL*{tAmHcumDh!u^~ar1L>0!@`!X}b-h=b zwaGMq$|;(CBk+lcGs1Ip)|C1c8W6DSP_C!2fl(g>G9xAT=Lp+SobWeB{t@H}ngRB6 zFL2B%h(cY=V{H;L7_Bc;Fyq80fktQ;2lH6hG>w~%$ik&T$Ni)x1Z=3jw_do(n;x%a zq7-SVZ=SD5@3t2OB87+s`&nKJkz}FljF^?%YYt`sqJcnq zB67+(r$EQN!oxp4gawZRHUZ=r%mUAwHv`cl5zP(@EdZA-N*b_H_sE~f<9atv$;sqd zTsg)P=epQex&&j%3MWvvDb1EY>@wtf(G@T9Vx_Mx#Yksj6QdcT6b2@M?HZ^^~9I!_VH~b z#kbkMMZtdigxA@7@)7y+u`wcScSRPz2%?0nua}d#c95gT>(Zn=UnVs z6e*;^eC`!W%V_nv$aGcOP`|!bp`7hUX9J@BtFRf|Hi&YpI6dkb#+Ll_xBm1=zQYj2A?=oEFRyC*YEn8J(MHa|;I@ ztPQ$Ke(%qMINvA!fB@%=m4H`=YX&@o*GiUt#K1Z>9O?>_t>!|6<+UX3Usb^KJ_u>-)Tk(Rr%oN z8+OErj+FoWdzf zuwWIW+5E5%dwNOrh6=<0H~Dw>8-)zj-xROCu)W;ldF$3AoBDbX)gE6}Ke<1BT9_O5 zEgAb5lBRP2B#T13w?MMh{)b`sU(-j8((grn9S|uiGQBXgm~eO;UA1`vdq%zG9XXUb z`Y{Z*3kImT%=w&?JzJARvS51H?*}_jvAGFB@vS#<6(_*-HX8uL*X7+gCgR_7$GG;- ze|t0$h9AhptKIVc@~B`?m9%z`X0&nj?SZP{QtRxSW**9&{9|2`HkWSmKGV6YH{Q$Y zq*F@T7+YsRF%rHj!@pj?QI+PtIBIZwn8-JySt)y4_uwg$OUj9)ZHlguUL98_2IT8p zIz8hUmp(3j&EJ*46Ln`t?B)$9B z5dYO$$fsJIqLh{9t(au`y>bQ3xY*4HyYtLU`2|~d_OC&j$kis5S-{HT>5{9q?2e3- z?)Q=AyBL+58Bvja_jg4p6MK~w-)@9qyHk|GpmHFh?-V%tna3y~+!r^ORtx!J-szj! zZ1flds-ZpmkdrG~4`4tkhJC`TMr!IPnqtOo3x>^s*9x9SwE^5`lT>=WwQVOO|(^uRZheg znoet_(|Xm!d$L549a}fT`g9G) zI?6H(E{!ZC5D}qyHv~1I8S9i9%!#&kKXBqd(PP<+sV1MKM`A}$H>Y))?TA9!(K21H zF+YuqcXLJ7u~IR+!f&$~1&A+WgZl1af=*gVO6^%n(Nm3S^FhR+9lC_&hN*W+s}FwE9V*$}WiKU$ zZd9(Atsa~(C>@?nc=xRjg$=bY>YA{KFqVHGQY&Q6xeR9T(OB=9mnD*GY#DIm&MgC& zi3M)7`i4y?)7tSTBDjj;#+7+!1K9#BdLX0pc?Ch z8FS0A=vZx$;!WqV1v<-&nPlWFpqM#3zZNdT`+A+2o6XE2;I*@ISBNiU^dit9yk^IM zyuo|^bRNL0QRoiyu;H-c5ow3Bw1eCL`Y<43?u5cIYoRM7+i@w}hv$iN@MY_c z_!fZ47-M$j4f3o=Vsx0Dc0O2KyEHNHhKhOnmXC diff --git a/solitaire_engine/assets/themes/rusty-pixel/spades_6.png b/solitaire_engine/assets/themes/rusty-pixel/spades_6.png deleted file mode 100644 index 7f5cb1e56b7df6bbcc7f4905606f91753cf5650b..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 4137 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


ThM)@#tgK5x`Yv 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 diff --git a/solitaire_engine/assets/themes/rusty-pixel/spades_9.png b/solitaire_engine/assets/themes/rusty-pixel/spades_9.png deleted file mode 100644 index 8d136a27a13a1bc652058933b18fc4087c8a5016..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 4522 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 UW|l9TBTXTQS{ECBF^tLiCuM@Ft^fc4 diff --git a/solitaire_engine/assets/themes/rusty-pixel/spades_jack.png b/solitaire_engine/assets/themes/rusty-pixel/spades_jack.png deleted file mode 100644 index 2b22d54ab5540ce54d9783408ea7d36f7326244a..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 4645 zcmeHLX;f3!7C!gph6E7^Gi8hepcREa6sTdiDo#Zqt%?W=!KcRJ0H_EOBp0=I`Jh
YD<0ssO%IG3 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 diff --git a/solitaire_engine/assets/themes/rusty-pixel/spades_king.png b/solitaire_engine/assets/themes/rusty-pixel/spades_king.png deleted file mode 100644 index 2b8aa99e6a146529cb7a576500a1efda82e7f7cb..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 4647 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 CBp)9D diff --git a/solitaire_engine/assets/themes/rusty-pixel/theme.ron b/solitaire_engine/assets/themes/rusty-pixel/theme.ron deleted file mode 100644 index 39e6af8..0000000 --- a/solitaire_engine/assets/themes/rusty-pixel/theme.ron +++ /dev/null @@ -1,76 +0,0 @@ -// Rusty Pixel — pixel-art card theme generated via Claude Design. -// -// 53 PNGs at 256×384 (4× nearest-neighbor upscale of the source -// 64×96 grid). Card aspect 2:3 matches the engine's layout -// assumption. Drop this directory under -// `/solitaire_quest/themes/rusty-pixel/` and the theme -// registry picks it up at next launch. -( - meta: ( - id: "rusty-pixel", - name: "Rusty Pixel", - author: "Claude Design", - version: "0.1.0", - card_aspect: (2, 3), - // Opt in to nearest-neighbor sampling so the pixel grid stays - // crisp at non-integer scales (Bevy's default bilinear filter - // mushes 256x384 pixel art when displayed at ~150x200 on a - // typical desktop window). - pixel_art: true, - ), - back: "back.png", - faces: { - "clubs_ace": "clubs_ace.png", - "clubs_2": "clubs_2.png", - "clubs_3": "clubs_3.png", - "clubs_4": "clubs_4.png", - "clubs_5": "clubs_5.png", - "clubs_6": "clubs_6.png", - "clubs_7": "clubs_7.png", - "clubs_8": "clubs_8.png", - "clubs_9": "clubs_9.png", - "clubs_10": "clubs_10.png", - "clubs_jack": "clubs_jack.png", - "clubs_queen": "clubs_queen.png", - "clubs_king": "clubs_king.png", - "diamonds_ace": "diamonds_ace.png", - "diamonds_2": "diamonds_2.png", - "diamonds_3": "diamonds_3.png", - "diamonds_4": "diamonds_4.png", - "diamonds_5": "diamonds_5.png", - "diamonds_6": "diamonds_6.png", - "diamonds_7": "diamonds_7.png", - "diamonds_8": "diamonds_8.png", - "diamonds_9": "diamonds_9.png", - "diamonds_10": "diamonds_10.png", - "diamonds_jack": "diamonds_jack.png", - "diamonds_queen": "diamonds_queen.png", - "diamonds_king": "diamonds_king.png", - "hearts_ace": "hearts_ace.png", - "hearts_2": "hearts_2.png", - "hearts_3": "hearts_3.png", - "hearts_4": "hearts_4.png", - "hearts_5": "hearts_5.png", - "hearts_6": "hearts_6.png", - "hearts_7": "hearts_7.png", - "hearts_8": "hearts_8.png", - "hearts_9": "hearts_9.png", - "hearts_10": "hearts_10.png", - "hearts_jack": "hearts_jack.png", - "hearts_queen": "hearts_queen.png", - "hearts_king": "hearts_king.png", - "spades_ace": "spades_ace.png", - "spades_2": "spades_2.png", - "spades_3": "spades_3.png", - "spades_4": "spades_4.png", - "spades_5": "spades_5.png", - "spades_6": "spades_6.png", - "spades_7": "spades_7.png", - "spades_8": "spades_8.png", - "spades_9": "spades_9.png", - "spades_10": "spades_10.png", - "spades_jack": "spades_jack.png", - "spades_queen": "spades_queen.png", - "spades_king": "spades_king.png", - }, -) diff --git a/solitaire_engine/src/assets/mod.rs b/solitaire_engine/src/assets/mod.rs index 99bb74e..e235edf 100644 --- a/solitaire_engine/src/assets/mod.rs +++ b/solitaire_engine/src/assets/mod.rs @@ -11,10 +11,8 @@ pub mod svg_loader; pub mod user_dir; pub use sources::{ - default_theme_svg_bytes, populate_embedded_default_theme, - populate_embedded_rusty_pixel_theme, register_theme_asset_sources, - rusty_pixel_theme_png_bytes, AssetSourcesPlugin, DEFAULT_THEME_MANIFEST_URL, - RUSTY_PIXEL_THEME_MANIFEST_URL, USER_THEMES, + default_theme_svg_bytes, populate_embedded_default_theme, register_theme_asset_sources, + AssetSourcesPlugin, DEFAULT_THEME_MANIFEST_URL, USER_THEMES, }; pub use svg_loader::{rasterize_svg, SvgLoader, SvgLoaderError, SvgLoaderSettings}; pub use user_dir::{set_user_theme_dir, user_theme_dir}; diff --git a/solitaire_engine/src/assets/sources.rs b/solitaire_engine/src/assets/sources.rs index c06d9ed..ab6275a 100644 --- a/solitaire_engine/src/assets/sources.rs +++ b/solitaire_engine/src/assets/sources.rs @@ -155,100 +155,6 @@ const DEFAULT_THEME_SVGS: &[(&str, &[u8])] = &[ embed_default_svg!("spades_king.svg"), ]; -/// Stable embedded asset URL of the bundled rusty-pixel theme manifest. -/// -/// `theme/plugin.rs::manifest_url_for` uses this when the player -/// selects "Rusty Pixel" so the manifest loads from the binary's -/// embedded asset registry rather than `themes://` (which would -/// require a user-supplied copy on disk). -pub const RUSTY_PIXEL_THEME_MANIFEST_URL: &str = - "embedded://solitaire_engine/assets/themes/rusty-pixel/theme.ron"; - -/// Path the embedded rusty-pixel theme manifest registers under, -/// relative to the `embedded://` source root. Kept in lockstep with -/// [`RUSTY_PIXEL_THEME_MANIFEST_URL`] by the unit test -/// `rusty_pixel_theme_url_constant_matches_embedded_path`. -const RUSTY_PIXEL_THEME_MANIFEST_PATH: &str = - "solitaire_engine/assets/themes/rusty-pixel/theme.ron"; - -/// Bytes of the bundled rusty-pixel theme manifest. Mirrors the -/// default-theme embed pattern — `include_bytes!` resolves at compile -/// time so the binary ships the manifest even on machines whose -/// `solitaire_engine/assets/` directory is absent at runtime. -const RUSTY_PIXEL_THEME_MANIFEST_BYTES: &[u8] = - include_bytes!("../../assets/themes/rusty-pixel/theme.ron"); - -/// Generates a `(stable_path, bytes)` entry for one rusty-pixel -/// theme PNG. Mirrors [`embed_default_svg!`] for the second bundled -/// theme — the path matches what `theme.ron` references. -macro_rules! embed_rusty_pixel_png { - ($name:literal) => { - ( - concat!("solitaire_engine/assets/themes/rusty-pixel/", $name), - include_bytes!(concat!("../../assets/themes/rusty-pixel/", $name)) as &[u8], - ) - }; -} - -/// Every rusty-pixel theme PNG bundled into the binary. 53 entries: -/// 52 face cards + 1 back. The macro pulls each PNG via -/// `include_bytes!` so adding a new file is a one-line append. -const RUSTY_PIXEL_THEME_PNGS: &[(&str, &[u8])] = &[ - embed_rusty_pixel_png!("back.png"), - embed_rusty_pixel_png!("clubs_ace.png"), - embed_rusty_pixel_png!("clubs_2.png"), - embed_rusty_pixel_png!("clubs_3.png"), - embed_rusty_pixel_png!("clubs_4.png"), - embed_rusty_pixel_png!("clubs_5.png"), - embed_rusty_pixel_png!("clubs_6.png"), - embed_rusty_pixel_png!("clubs_7.png"), - embed_rusty_pixel_png!("clubs_8.png"), - embed_rusty_pixel_png!("clubs_9.png"), - embed_rusty_pixel_png!("clubs_10.png"), - embed_rusty_pixel_png!("clubs_jack.png"), - embed_rusty_pixel_png!("clubs_queen.png"), - embed_rusty_pixel_png!("clubs_king.png"), - embed_rusty_pixel_png!("diamonds_ace.png"), - embed_rusty_pixel_png!("diamonds_2.png"), - embed_rusty_pixel_png!("diamonds_3.png"), - embed_rusty_pixel_png!("diamonds_4.png"), - embed_rusty_pixel_png!("diamonds_5.png"), - embed_rusty_pixel_png!("diamonds_6.png"), - embed_rusty_pixel_png!("diamonds_7.png"), - embed_rusty_pixel_png!("diamonds_8.png"), - embed_rusty_pixel_png!("diamonds_9.png"), - embed_rusty_pixel_png!("diamonds_10.png"), - embed_rusty_pixel_png!("diamonds_jack.png"), - embed_rusty_pixel_png!("diamonds_queen.png"), - embed_rusty_pixel_png!("diamonds_king.png"), - embed_rusty_pixel_png!("hearts_ace.png"), - embed_rusty_pixel_png!("hearts_2.png"), - embed_rusty_pixel_png!("hearts_3.png"), - embed_rusty_pixel_png!("hearts_4.png"), - embed_rusty_pixel_png!("hearts_5.png"), - embed_rusty_pixel_png!("hearts_6.png"), - embed_rusty_pixel_png!("hearts_7.png"), - embed_rusty_pixel_png!("hearts_8.png"), - embed_rusty_pixel_png!("hearts_9.png"), - embed_rusty_pixel_png!("hearts_10.png"), - embed_rusty_pixel_png!("hearts_jack.png"), - embed_rusty_pixel_png!("hearts_queen.png"), - embed_rusty_pixel_png!("hearts_king.png"), - embed_rusty_pixel_png!("spades_ace.png"), - embed_rusty_pixel_png!("spades_2.png"), - embed_rusty_pixel_png!("spades_3.png"), - embed_rusty_pixel_png!("spades_4.png"), - embed_rusty_pixel_png!("spades_5.png"), - embed_rusty_pixel_png!("spades_6.png"), - embed_rusty_pixel_png!("spades_7.png"), - embed_rusty_pixel_png!("spades_8.png"), - embed_rusty_pixel_png!("spades_9.png"), - embed_rusty_pixel_png!("spades_10.png"), - embed_rusty_pixel_png!("spades_jack.png"), - embed_rusty_pixel_png!("spades_queen.png"), - embed_rusty_pixel_png!("spades_king.png"), -]; - /// Registers asset sources that must be in place *before* /// `AssetPlugin` is built. /// @@ -285,7 +191,6 @@ pub struct AssetSourcesPlugin; impl Plugin for AssetSourcesPlugin { fn build(&self, app: &mut App) { populate_embedded_default_theme(app); - populate_embedded_rusty_pixel_theme(app); } } @@ -349,43 +254,6 @@ pub fn populate_embedded_default_theme(app: &mut App) { } } -/// Returns the embedded PNG bytes for a single rusty-pixel theme file -/// (e.g. `"back.png"` or `"spades_ace.png"`), or `None` when the -/// filename is not bundled. Mirrors [`default_theme_svg_bytes`] for -/// the second bundled theme so the picker thumbnail cache can read -/// preview-sized art without going through the async asset graph. -pub fn rusty_pixel_theme_png_bytes(filename: &str) -> Option<&'static [u8]> { - let suffix = format!("/{filename}"); - RUSTY_PIXEL_THEME_PNGS - .iter() - .find(|(path, _)| path.ends_with(&suffix)) - .map(|(_, bytes)| *bytes) -} - -/// Pushes the bundled rusty-pixel theme manifest + every face/back -/// PNG into the [`EmbeddedAssetRegistry`]. Pairs with -/// [`populate_embedded_default_theme`] — both are called from -/// [`AssetSourcesPlugin::build`] after `AssetPlugin` has set up the -/// embedded source. -pub fn populate_embedded_rusty_pixel_theme(app: &mut App) { - let registry = app - .world_mut() - .get_resource_or_insert_with(EmbeddedAssetRegistry::default); - - registry.insert_asset( - std::path::PathBuf::from(RUSTY_PIXEL_THEME_MANIFEST_PATH), - std::path::Path::new(RUSTY_PIXEL_THEME_MANIFEST_PATH), - RUSTY_PIXEL_THEME_MANIFEST_BYTES, - ); - for (path, bytes) in RUSTY_PIXEL_THEME_PNGS { - registry.insert_asset( - std::path::PathBuf::from(*path), - std::path::Path::new(*path), - *bytes, - ); - } -} - #[cfg(test)] mod tests { use super::*; diff --git a/solitaire_engine/src/theme/plugin.rs b/solitaire_engine/src/theme/plugin.rs index 9292a4a..3e75ab6 100644 --- a/solitaire_engine/src/theme/plugin.rs +++ b/solitaire_engine/src/theme/plugin.rs @@ -17,8 +17,7 @@ use bevy::prelude::*; use solitaire_core::card::{Rank, Suit}; use crate::assets::{ - default_theme_svg_bytes, rasterize_svg, rusty_pixel_theme_png_bytes, user_theme_dir, - DEFAULT_THEME_MANIFEST_URL, RUSTY_PIXEL_THEME_MANIFEST_URL, + default_theme_svg_bytes, rasterize_svg, user_theme_dir, DEFAULT_THEME_MANIFEST_URL, }; use crate::card_plugin::CardImageSet; use crate::events::StateChangedEvent; @@ -129,32 +128,16 @@ fn load_initial_theme( settings: Option>, mut commands: Commands, ) { - let id = settings - .as_deref() - .map(|s| s.0.selected_theme_id.as_str()) - .unwrap_or("default"); - let url = manifest_url_for(id); + let url = match settings.as_deref() { + Some(s) if s.0.selected_theme_id != "default" => { + format!("themes://{}/theme.ron", s.0.selected_theme_id) + } + _ => DEFAULT_THEME_MANIFEST_URL.to_string(), + }; let handle: Handle = asset_server.load(url); commands.insert_resource(ActiveTheme(handle)); } -/// Resolves a theme id to its manifest asset URL. -/// -/// Bundled built-ins (default, rusty-pixel) route to `embedded://` -/// so the binary's compile-time-baked manifest + face files load -/// without touching disk. Anything else routes to `themes://`, -/// which `register_theme_asset_sources` points at the user themes -/// directory. Callers (load_initial_theme, -/// react_to_settings_theme_change) consult this helper instead of -/// hard-coding the URL shape per id. -fn manifest_url_for(theme_id: &str) -> String { - match theme_id { - "default" => DEFAULT_THEME_MANIFEST_URL.to_string(), - "rusty-pixel" => RUSTY_PIXEL_THEME_MANIFEST_URL.to_string(), - _ => format!("themes://{theme_id}/theme.ron"), - } -} - /// Watches [`crate::settings_plugin::SettingsChangedEvent`] and /// triggers a fresh theme load whenever /// `Settings::selected_theme_id` changes. The settings panel's theme @@ -180,7 +163,11 @@ fn react_to_settings_theme_change( return; } - let url = manifest_url_for(new_id); + let url = if new_id == "default" { + DEFAULT_THEME_MANIFEST_URL.to_string() + } else { + format!("themes://{new_id}/theme.ron") + }; let handle: Handle = asset_server.load(url); commands.insert_resource(ActiveTheme(handle)); } @@ -375,20 +362,11 @@ enum ThemePreviewBytes { /// `.svg` then `.png`. Either branch returns /// `None` on I/O failure (file missing, permission denied, etc.). fn read_theme_preview_bytes(theme_id: &str, basename: &str) -> Option { - // Bundled built-ins consult their embed tables before any - // filesystem I/O so the thumbnail works on a fresh install where - // the user themes directory doesn't exist yet. if theme_id == "default" { let filename = format!("{basename}.svg"); return default_theme_svg_bytes(&filename) .map(|b| ThemePreviewBytes::Svg(b.to_vec())); } - if theme_id == "rusty-pixel" { - let filename = format!("{basename}.png"); - if let Some(bytes) = rusty_pixel_theme_png_bytes(&filename) { - return Some(ThemePreviewBytes::Png(bytes.to_vec())); - } - } let dir = user_theme_dir().join(theme_id); if let Ok(bytes) = std::fs::read(dir.join(format!("{basename}.svg"))) { return Some(ThemePreviewBytes::Svg(bytes)); diff --git a/solitaire_engine/src/theme/registry.rs b/solitaire_engine/src/theme/registry.rs index e62bb28..6be6dad 100644 --- a/solitaire_engine/src/theme/registry.rs +++ b/solitaire_engine/src/theme/registry.rs @@ -25,7 +25,7 @@ use bevy::prelude::{App, Plugin, Resource, Startup}; use serde::Deserialize; use super::ThemeMeta; -use crate::assets::{user_theme_dir, DEFAULT_THEME_MANIFEST_URL, RUSTY_PIXEL_THEME_MANIFEST_URL}; +use crate::assets::{user_theme_dir, DEFAULT_THEME_MANIFEST_URL}; /// One entry in the [`ThemeRegistry`] — the data the picker UI needs /// to render a row and load the theme on selection. @@ -98,24 +98,10 @@ fn build_registry_on_startup(mut registry: bevy::ecs::system::ResMut ThemeRegistry { let mut entries = Vec::new(); entries.push(default_entry()); - entries.push(rusty_pixel_entry()); - let bundled_ids: std::collections::HashSet = - entries.iter().map(|e| e.id.clone()).collect(); - let user = discover_user_themes(user_dir) - .into_iter() - .filter(|t| !bundled_ids.contains(&t.id)); - entries.extend(user); + entries.extend(discover_user_themes(user_dir)); ThemeRegistry { entries } } @@ -137,26 +123,6 @@ fn default_entry() -> ThemeEntry { } } -/// The bundled rusty-pixel theme entry — pixel-art faces by Claude -/// Design, embedded under `embedded://solitaire_engine/assets/themes/rusty-pixel/`. -/// Inserted alongside the default so the picker offers both -/// out-of-the-box on a fresh install with no user themes directory. -fn rusty_pixel_entry() -> ThemeEntry { - ThemeEntry { - id: "rusty-pixel".to_string(), - display_name: "Rusty Pixel".to_string(), - manifest_url: RUSTY_PIXEL_THEME_MANIFEST_URL.to_string(), - meta: ThemeMeta { - id: "rusty-pixel".to_string(), - name: "Rusty Pixel".to_string(), - author: "Claude Design".to_string(), - version: "0.1.0".to_string(), - card_aspect: (2, 3), - pixel_art: true, - }, - } -} - /// Walks `user_dir`, treating every immediate subdirectory as a /// candidate theme. A subdirectory contributes one entry if and only /// if it contains a `theme.ron` whose `meta` block parses cleanly and @@ -274,22 +240,20 @@ mod tests { } #[test] - fn empty_user_dir_yields_only_the_bundled_built_ins() { + fn empty_user_dir_yields_only_the_default_entry() { let tmp = tempfile::tempdir().unwrap(); let registry = build_registry(tmp.path()); - assert_eq!(registry.len(), 2, "default + rusty-pixel always present"); + assert_eq!(registry.len(), 1); assert_eq!(registry.entries[0].id, "default"); - assert_eq!(registry.entries[1].id, "rusty-pixel"); } #[test] - fn nonexistent_user_dir_still_yields_bundled_built_ins() { + fn nonexistent_user_dir_still_yields_default() { let registry = build_registry(Path::new( "/definitely/not/a/real/path/should/not/panic", )); - assert_eq!(registry.len(), 2); + assert_eq!(registry.len(), 1); assert_eq!(registry.entries[0].id, "default"); - assert_eq!(registry.entries[1].id, "rusty-pixel"); } #[test] @@ -300,40 +264,12 @@ mod tests { write_manifest(&theme_dir, "midnight", "Midnight"); let registry = build_registry(tmp.path()); - assert_eq!(registry.len(), 3, "default + rusty-pixel + midnight"); + assert_eq!(registry.len(), 2); let entry = registry.find("midnight").expect("midnight registered"); assert_eq!(entry.display_name, "Midnight"); assert_eq!(entry.manifest_url, "themes://midnight/theme.ron"); } - #[test] - fn user_theme_id_collision_with_bundled_is_dropped() { - // A user-supplied directory whose `id` matches a bundled - // built-in (rusty-pixel) must not produce a duplicate - // registry entry. The bundled version wins because it's - // guaranteed complete; the user's overriding copy may be - // partial, stale, or otherwise broken. - let tmp = tempfile::tempdir().unwrap(); - let theme_dir = tmp.path().join("rusty-pixel"); - fs::create_dir_all(&theme_dir).unwrap(); - write_manifest(&theme_dir, "rusty-pixel", "User Override"); - - let registry = build_registry(tmp.path()); - assert_eq!( - registry.len(), 2, - "user override of bundled id must not appear as a duplicate", - ); - let entry = registry.find("rusty-pixel").expect("rusty-pixel registered"); - assert_eq!( - entry.display_name, "Rusty Pixel", - "bundled entry's display_name wins over the user override", - ); - assert_eq!( - entry.manifest_url, RUSTY_PIXEL_THEME_MANIFEST_URL, - "bundled embed:// URL wins over the user themes:// URL", - ); - } - #[test] fn full_manifest_also_works_via_meta_only_parser() { // The meta-only deserialiser must tolerate the full ThemeManifest @@ -374,9 +310,8 @@ mod tests { write_manifest(&theme_dir, "../etc/passwd", "Evil"); let registry = build_registry(tmp.path()); - assert_eq!(registry.len(), 2, "escape attempt must not register; built-ins remain"); + assert_eq!(registry.len(), 1, "escape attempt must not register"); assert_eq!(registry.entries[0].id, "default"); - assert_eq!(registry.entries[1].id, "rusty-pixel"); } #[test] @@ -387,11 +322,7 @@ mod tests { fs::write(lonely.join("readme.md"), "wrong filename").unwrap(); let registry = build_registry(tmp.path()); - assert_eq!( - registry.len(), - 2, - "no user themes register; only the bundled built-ins remain", - ); + assert_eq!(registry.len(), 1); } #[test] @@ -420,9 +351,8 @@ mod tests { refresh_registry(&mut registry, tmp.path()); - assert_eq!(registry.len(), 2, "stale entry replaced; built-ins remain"); + assert_eq!(registry.len(), 1); assert_eq!(registry.entries[0].id, "default"); - assert_eq!(registry.entries[1].id, "rusty-pixel"); assert!(registry.find("stale").is_none()); }