From 1635b9ba6b51b5270370f23185d121386c0f0935 Mon Sep 17 00:00:00 2001 From: Pihkaal Date: Wed, 4 Feb 2026 17:15:48 +0100 Subject: [PATCH] feat(fonts): add more icons --- app/assets/fonts/nds-10px.woff2 | Bin 2860 -> 2928 bytes app/components/Common/Buttons.vue | 20 +++++------------- .../BottomScreen/Menus/Clock/Achievements.vue | 20 +++++------------- app/utils/icons.ts | 5 ++++- i18n/i18n.config.ts | 3 +++ public/nds/images/common/A.webp | Bin 58 -> 0 bytes public/nds/images/common/B.webp | Bin 60 -> 0 bytes .../bottom-screen/clock/achievements/X.webp | Bin 68 -> 0 bytes 8 files changed, 17 insertions(+), 31 deletions(-) delete mode 100644 public/nds/images/common/A.webp delete mode 100644 public/nds/images/common/B.webp delete mode 100644 public/nds/images/settings/bottom-screen/clock/achievements/X.webp diff --git a/app/assets/fonts/nds-10px.woff2 b/app/assets/fonts/nds-10px.woff2 index e1386d0a44df84fe32303e75f9e49d0b650c939d..502edfcf81db3752d786ee606c80df76c3e31e77 100644 GIT binary patch literal 2928 zcmV-$3y<`7Pew9NR8&s@01I#c2><{904uxz01GJq0RR9100000000000000000000 z0000DxLyWe0EA=#HUcCAgD?aJ1(QVwAR87dQB;yTk$rVw9x}?`0k1C5NQ$QvkWS-+ zV&_j}nQ{Kp@BV-7X6gXAUAZUNUl4k1aV^u|*r*8e&uWAoq2(Mj0{dd6!{#7Yz2x^$rS2NV8puREng-=R~+RVbwB>R|rN=lRN zq)E=7_iaC)4p@tLW{Dcd7s}`H?(t(xjx6QL@WoaCU1XQ#vnBGMkApX3mAmf?S%|X& zJldhnZLh#{c7e+O1I3}}-rj}Rt$mYindkDlpkaaBWx6wEWpPq*|7Mi?d*5a~5KI*L zVl(r#`x*P0{^xwCxG?3retEActkbXE9#&N}QMsA?Wf>{9zoWlomwzh%b(#pYp*=9% zQSwTY2TA}vbO8N8=K<2lg=fF`Si`C!oUT{J$?C`}b@C8T;JJAdJ*M}XM{Llhx3k?K z<(C%pCkEY3*UhHbjp5O+7|%T2(7-474!;#nV_{?IXc4#K%~VYN=AQW~iKu`5_ZVzSdHx{cM;}&|dQToh+C{O6bx(`+AVxLtXYX{-P=R81j-;c`ThS?kmK76GGl_ z=L94cI)FZjaZdow&`BV@gZ19gUd)1)#SeB8)>(>JL&4otY&Z1H+dPjU-1b4soDL1% z?N%>JEr-PYWvqZVEE_iKsCHAX($KylFDmpR9Ymj1LQ?zUk#CT?UW2R%S9NMLc{u`$ z8dpy1OAH+y4fYgev=s;B*s})5yqC^*KySDMHn=0?sA8@}P5Dqj%`)4(cS^n2R@3kh zhFwvor8_-C?B3Ir*%&&C#+RgBUSdsfx_DMqQ6Z*OP918r6f(E_5KjUni-KrZ+M0e+ zZ`n<(i?XdpJC@3;ig_?r3KgZa%f`Vf+s=EE%UUQSMWkDngh@JyVOudMas3^D0)2qB zSOB<M1-)?1J;!So6s@b zNf-!xA`8y%pqR!WohzC5?o7AR%V|N4BCKMeYY`Y==d^k01DEG9?-?un&=nWb*7Du# z0NzYUwhxN{6hk^O+ib#Rh6$$&c?rsA&rttj>YP(*Y#rGqk`~|7PRvR)3zLAruDsU4 zmAHT{MhorAT~8~nVihxrD^~&9lPsk1S%wcRa3v4?Wmc#6S##zd)EaBK^QsfiE#Hbu z?8=WQ(GYeJim`IVUkH+?W9gQmplByjFLsEedFPg-U3CafXkU0YVF{Re0?9&vcAeh9 zT7jW^1~;Pn()}LHZn1j624$k+)s=w1zWVq?MfAH0Ls+fVyQwZs6 zT6d|6Nu&(lplDAVT6{z}Pwj@tp~Nn0bZ9UbGBCzJ1#0T3LoAR{Lr%|i*UrL7C-kX| z{1TH_Hn1F9_lYh-A-G~%Lftlfr@N6vQtND$*+5o)Z>f=hXT#kunpg#9 zm_q%E+Hy!AbDbPA=7UK{lM0TB*CgmO?@QK#bAi|E-UmO@IL}*RJOZ8bmN|*?paQ+G zrCl|K2-o$@gD#pCm9ZC#NrRwGEKuFV99NTER^ek*>`WccC`0MK6BY11Y;f$MkxGZ5 z&1K?}56`fp%=W{Bmj*o(e#l~b827RkyN3pQ8o^rn#Nx0n7p%NMC8B#n>I(K`aBB?q z9pK^peK>X65s$ctkwpyF5iA=JN8{D?O!Np394R$!aAY=5Ac2JL?f?x$@A#=E&r;{2 zgo#k1-&SJCT>U3el8+~($W-Np_>q=qr+T~wE-fFik!-=U(XKWY1~HW|Xe8fb!X8tB zY&&hd<%A(wiDZN1O5%H2R+T`e%xOL{r2p%Ep=#yaKev8}_s?RrX*%cSG`kZoosDid3p2SobTkml_ERo3$6Q^$%RgQj z;<`J)hUnuq0$suds~W_6(TzRnAY)1)kkO?q!lb7P!g$jkVZ=;@OhRTsrcm}lCSSf> ziiz!1kV)-|h&#;PE6`8c0DaZNup#zdX9U*XXBc~*F`V3YjL6&Hjl?=lMyKu!SX9k! z$QT&sB8#ST4Fam>M`X;pZfz`@ZnqH7boU^jzm0o4)|D#v8pI1C)PZ%YrvO<_ik$MO zYQrv+gQB}TJ1p;7MrxKc7W*J+aj^H=1|y|{WG#zA!HsgO`pcqSQRA8x%jS=v7O>*E zl40fSK6?sv;~-VhIj>9k;J!MlusPYXwIw?l6N26q&c-W(>wcslMa#UP%`%oh4T*vP z*KU@#zQn`z%doCqg3_(7obt&hr~GosBU@JnYYV!;9PP%5n=&t2$yek=1S&;oW!0>1 zE5)JAmA|6@NKyt>Ml`FytS#h*g<2vW>fxHCrAWa;16h^eUW1{IO8D2ixL3^PyT4+~ zShZ@TI-{?w!l7G>ioD^gX|3^p8NNSFA;EB)b^@&`|e2d3**=v;c3>6Mt(E zUJp3r3djG}o2^{o{~Og3>c+Pppt9iqC&A};bLPvJGk>l;*x(2qX!hOTov0E0g%K+@x;tpH3 aF{`Vi>aF`_yB^*y7V$l6n4_CI&j0|oUA}?< literal 2860 zcmV+{3)A#>Pew9NR8&s@01GSt2><{904baR01D;+0RR9100000000000000000000 z0000Dv|k2b0EAQlHUcCAgCGP31(QVwARG561MVBTQ^@}6zz&9wHw36esJ00v zyiA-twYNrNNwmT^0r6D(ajM}&PG|fG5pLy2b@{KldW1#bNj@Z=NM8Z%Er)YSAT*tQ z42%dv-=>fh|5?xbO}H5~qUk)~X^mP^Gd+`gh7e=DdNm>cZqh$Ea7j2^6lxVRWCzM{ zJVqfb-l82w^Z%IILzAxUEowaz5fM?oY)AL_Tp}A(q&Kd43qJ7grf4h$|4gwo8?jR& zmcg+^xxl7$&ldkX+Wg&?i)?j)UrM-MJ^x=~qDU61cK!Up9TSr({+qg{am`y`mBn*w zgO84b2V#}Cj|mydCb&PMRRb^IURO~0FHc;g?L)h8pS5p#$ik4_N2w01*>!c_a8W{L zWziAV#F}79Z?i@42t}H8oBr^%@Qp4ozbtPl%a>dwQ8Kgd^o5 zow6x!+o}8dZ!2-tH*05amH6{7XTsATpBNf z;apFxy-2m7c|6i&yLPQ8o~MS3RT#fZ@55pCfyGBtA_BW#-xvcKkfNKADBdYy4c z1Dwi8AicAGtSOz)az@!Mb`sXPKEx6VZug08yT0H3dJN$X3oWxc)H{=JbyBEhm$*L) z9e9=7$fK$(kjNsD`W1Omp&Lpky0j9K+86eGMCy78vLakFQ*Fj&1F)!ZrCML2>u6|U zPeDXmu|Q5*7I4gaWa%uR{WV~N3qp=6W+7_I2O2W7%r@^y?8n7iUwH7{o{>2%-RWtp z&)8R(m7$@ie1yYeFR{cpE}rGh$b^`d$*CnXS_sv8>?MKIaKXk>RzS`Vwb^vcCB-;fC z0E!`A9!%eSL@YQLmn1HON5YpGIut`X~ zM9StH6zvH^iysiKQaUnlC_`6nbf~Z}WMK4v3e?n5i>;Coo%q=iN*9fr0l zBbU5-h8<K=$Y_CInEEmRyM59(2$=7u$DHmIIPMAg@d zM94TT(}$4N^q)j&KAw;wQk7Q>A89k~RF4F zw$u7sju?`am~D_;nfY!>Q3+(ql;$G?$3Nw=&=HwGgsnSh$H@wsmTV&0fF`%fZjLP4 z>jqce_!zpp^|B=My35JoX|0RNs^DIt8)9G&Q$^>=T;S=xImO;N-tcpxv`A)P72`o? zO6X}pFHVLt+*{+f6hK_qIG)e35{e(e?VUQtTtTNodQ&Y%3tYw88M1`_hs;xj3b zyk4#e*=siP{Xx&XCjm$t^%MT^wOh1oj;aXW$+$6>1x=?L!D2Drok1Rm8w3OZKmcF> zQ49j8BuP3$fX~MOx?nPYTOKWcpE-8sGEN3Xs6|L>$dAOLT-%g^t7v&-HM1H40rAofNI!igI=4$`&uRqqf) zTLLX5@CSlgl^_rNo>s=@ALZb1;IjKam>Y6MH-K;o8sZ=Vd$KBM1wVP}oRMq_(U`BX zUO76>!JRkw4DVDHyc(V&ohJJdSmXgia15JUx0E+e@9h}PRPJ*9$T);(H zY#6@UMk3JKD2O-OsBp2+XlRX9Mn^$Ei~*C_n5a*ejD^wk*4P+K|BQp`;^~tS&BagM zy)&`bhPNCY!iJ#po)OTP2b|YC??pHMTqiOX-y<>_9}<}Y^MuI6&q!nx{zznU&Nm`c zVVd+f$ds91Ad{JV=r@JbNB^Ro5rMpp0sTy-U_<EXnMCIpqc%SjBW7gm80qN7y(V+I0W>!@%F(kE7FqC9Igz|lm=`W zpfGCQg*~?bfkm2bD2`l!N!CQuU4V4(u=najO0x{fQWd7)MtP9`Wtm%N&Q5j7RN z9LiAnW8$}90^p1$C`L*-pw%gW(;Og{V+5aOGS6;PBCgp&0m~k{u^ehCW`FaqSdq4E zn{!1X4j7Lb)~(;KC$@+_*vCIKdYM%51CoOK3$2Hr&B5Li3NLXItiZjn#8=6|!@a6B z$MV1Zr+8N} K$)KZKy8#K)i*&63 diff --git a/app/components/Common/Buttons.vue b/app/components/Common/Buttons.vue index fc56991..cdbfce9 100644 --- a/app/components/Common/Buttons.vue +++ b/app/components/Common/Buttons.vue @@ -17,7 +17,6 @@ const { assets } = useAssets(); const BUTTON_WIDTH = assets.images.common.button.rect.width; const BUTTON_HEIGHT = assets.images.common.button.rect.height; -const LETTER_WIDTH = assets.images.common.B.rect.width; const B_BUTTON: Rect = [31, 172, BUTTON_WIDTH, BUTTON_HEIGHT]; const A_BUTTON: Rect = [144, 172, BUTTON_WIDTH, BUTTON_HEIGHT]; @@ -29,24 +28,15 @@ onRender((ctx) => { ctx.translate(0, props.yOffset); - const drawButton = ( - image: AtlasImage, - text: string, - x: number, - offset: number, - ) => { + const drawButton = (icon: string, text: string, x: number) => { assets.images.common.button.draw(ctx, x, 172); - const { actualBoundingBoxRight: textWidth } = ctx.measureText(text); - const width = LETTER_WIDTH + 4 + textWidth; - const left = Math.ceil(x + BUTTON_WIDTH / 2 - width / 2 - offset / 2); - - image.draw(ctx, left, 176); - ctx.fillText(text, left + LETTER_WIDTH + 4, 185); + const label = `${icon} ${text}`; + fillTextHCentered(ctx, label, x, 185, BUTTON_WIDTH); }; - drawButton(assets.images.common.B, props.bLabel, 31, 5); - drawButton(assets.images.common.A, props.aLabel, 144, 0); + drawButton(ICONS.B, props.bLabel, 31); + drawButton(ICONS.A, props.aLabel, 144); }, 60); onClick((x, y) => { diff --git a/app/components/Settings/BottomScreen/Menus/Clock/Achievements.vue b/app/components/Settings/BottomScreen/Menus/Clock/Achievements.vue index 5c69568..87af50e 100644 --- a/app/components/Settings/BottomScreen/Menus/Clock/Achievements.vue +++ b/app/components/Settings/BottomScreen/Menus/Clock/Achievements.vue @@ -1,5 +1,6 @@ diff --git a/app/utils/icons.ts b/app/utils/icons.ts index e548c6e..ddf79e0 100644 --- a/app/utils/icons.ts +++ b/app/utils/icons.ts @@ -4,5 +4,8 @@ export const ICONS = { X: "Χ", Y: "Υ", HEART: "Γ", - SAD: "Δ", + HAPPY: "Δ", + ANGRY: "Ε", + SAD: "Ζ", + NEUTRAL: "Η", } as const; diff --git a/i18n/i18n.config.ts b/i18n/i18n.config.ts index 109cd46..9c31859 100644 --- a/i18n/i18n.config.ts +++ b/i18n/i18n.config.ts @@ -6,7 +6,10 @@ const i18nIcons = { icon_x: ICONS.X, icon_y: ICONS.Y, icon_heart: ICONS.HEART, + icon_happy: ICONS.HAPPY, + icon_angry: ICONS.ANGRY, icon_sad: ICONS.SAD, + icon_neutral: ICONS.NEUTRAL, } as const; export default defineI18nConfig(() => ({ diff --git a/public/nds/images/common/A.webp b/public/nds/images/common/A.webp deleted file mode 100644 index 2b1889c33db7b31d2af2ab80db9197e6027f9ba5..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 58 zcmWIYbaOLeU|uD P1yL)5_V=yQI>P_}=)n_f diff --git a/public/nds/images/settings/bottom-screen/clock/achievements/X.webp b/public/nds/images/settings/bottom-screen/clock/achievements/X.webp deleted file mode 100644 index c3c793e581c631ea07aaf768ec3e08924540318d..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 68 zcmWIYbaS&|U|