From cb94d3c8410887b1650a966e22a993df3bd3f7dc Mon Sep 17 00:00:00 2001 From: Sollace Date: Sat, 25 Nov 2023 20:12:54 +0000 Subject: [PATCH] Add interaction indicators to the tribe selection gui --- .../client/gui/TribeSelectionScreen.java | 25 ++++++++++++++++-- .../unicopia/textures/gui/tribe_selection.png | Bin 5533 -> 6593 bytes 2 files changed, 23 insertions(+), 2 deletions(-) diff --git a/src/main/java/com/minelittlepony/unicopia/client/gui/TribeSelectionScreen.java b/src/main/java/com/minelittlepony/unicopia/client/gui/TribeSelectionScreen.java index 73551090..32c7dabb 100644 --- a/src/main/java/com/minelittlepony/unicopia/client/gui/TribeSelectionScreen.java +++ b/src/main/java/com/minelittlepony/unicopia/client/gui/TribeSelectionScreen.java @@ -14,6 +14,7 @@ import com.minelittlepony.unicopia.network.Channel; import com.minelittlepony.unicopia.network.MsgRequestSpeciesChange; import net.minecraft.client.gui.DrawContext; +import net.minecraft.sound.SoundEvents; import net.minecraft.text.Text; import net.minecraft.util.Formatting; import net.minecraft.util.Identifier; @@ -110,7 +111,7 @@ public class TribeSelectionScreen extends GameGui implements HidesHud { private void updateScolling() { final int itemWidth = 70 + 10; int x = (width - itemWidth) / 2; - float diff = MathHelper.lerp(client.getTickDelta(), prevScrollPosition, scrollPosition) / 8F; + float diff = MathHelper.lerp(client.getTickDelta(), prevScrollPosition, scrollPosition) / 4F; for (int i = 0; i < options.size(); i++) { var option = options.get(i); @@ -124,6 +125,21 @@ public class TribeSelectionScreen extends GameGui implements HidesHud { updateScolling(); renderBackground(context); super.render(context, mouseX, mouseY, delta); + + if (!options.isEmpty()) { + var element = options.get(0); + + float diff = (targetScroll - MathHelper.lerp(client.getTickDelta(), prevScrollPosition, scrollPosition)) * 7; + context.drawTexture(TEXTURE, (width / 2) + 40 + (scrollPosition < targetScroll ? (int)diff : 0), element.getY() - 20, 10, 165, 153, 30, 85, 312, 312); + context.drawTexture(TEXTURE, (width / 2) - 80 + (scrollPosition > targetScroll ? (int)diff : 0), element.getY() - 20, 10, 195, 153, 30, 85, 312, 312); + if (element.getBounds().left < 0) { + context.drawTexture(TEXTURE, 20, element.getY() - 10, 10, 188, 235, 24, 60, 312, 312); + } + element = options.get(options.size() - 1); + if (element.getBounds().right() > width) { + context.drawTexture(TEXTURE, width - 50, element.getY() - 10, 10, 164, 235, 24, 60, 312, 312); + } + } } @Override @@ -151,11 +167,16 @@ public class TribeSelectionScreen extends GameGui implements HidesHud { } private void scroll(int target, boolean animate) { + if (target == SELECTION) { + return; + } SELECTION = target; - targetScroll = SELECTION * 8; + targetScroll = SELECTION * 4; if (!animate) { scrollPosition = targetScroll; prevScrollPosition = scrollPosition; + } else { + playSound(SoundEvents.UI_BUTTON_CLICK); } } diff --git a/src/main/resources/assets/unicopia/textures/gui/tribe_selection.png b/src/main/resources/assets/unicopia/textures/gui/tribe_selection.png index 51ae0fb09b625e697fbb3c16678e68f64800de17..445d6dfefdf43ef6a05921dd1765021fc4f2f5b6 100644 GIT binary patch literal 6593 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 literal 5533 zcmb7Ic{J2v+kR%6%-FKD$et1x6 z000d73Iiwx=)>IOogDy2ZL~Dh4Sk1}GdeM+2K}3}a`Z6610xl)mc!N(j9hl{ABCzI zVX-4_3HKO0grbb-Y=ej}5^J*f_k~+1-w>g+dZ!PrWSL(s3}H47tu>4+Z_*gc98x-b z{j*6l>8aAKyQ0kVhRNDir}Kpur^pBH-%QfZy|Z)@X`( z@MQG(eHOeF>5ciC8OAnx;_-^W+=#ACyVj@`AHF^&0%bv&<= zQo(&vaZ1<}88N8p-(sfPy^Y>fPjDtaB*)|bgJGCjfS-$i4Do^INKZ=R~zA`z>X)bhZSoi){apOIRUbOL~q= zUp;NH@?5x&*V0TR@@4A&CVBmSdBDk3r+`4}l1;&~0S3GJ?oC2u1h?vDxR#f*D{gOAVQEKISGW~k-vTr9?XU}|?7sxaHss6auUM_8!Qb7*N%yJ~y-0AdQ^XIEuoAsK1 zQAzjK3(ruSqZbc471oT*=5j`w#PA*h010|z?p32^b2kS26DKWCSvN;fVYC}57IwPjl+Ber5womIc< z_E^bdPli|AxQT6n4>O!wpC$ls1MG=;qLQa-R!Fmw$EFYuY&Ca%&v2rfntd`LPHKzD;J9=!MFM_eK~P2PgbR%=i}{ilh=!G6P~+l)iCCW6Q06)z)P=ycHa}=et!w+p?#y797=S zhp{NpPyQ>Xq+*6RbN8l*`E-ZWn^$XUdla&~R#tl?@JA!!2L)Wyo*iAklbYfv`xyQQ zsWZ4G}LxB5*-AoP}UMkPfI^Sc&twa-lYT(&#Q3j2%4UQec;3j^mxNS@b?byB@n z_?zAg*=lLS{w~}hR$)Y2_<8m0TtmwDSF}T)Bi-t`)=KAV}|tgGa<{R$}U8z((+_TBnIEO3r7On z0bK4wxXRv--*)5jj5XzAE_0a=U5!So=BA`YvHO|2E}v*Ef2xgskfBD5{!Y*I$gy`M z^>MJQo?*$;8JL<05_JdAGAS2ZV_pbJ7D@6Hu%_e(2S-eOVogWk{@Gl6s=6+)`+oL3 z0Z_ezgU|9htx5*rb8>PtOVaK_DrP8=Ov=2ZpzvInUqGPENH2l~0meIhX-juUTB+`8 ztbeH6eTpbE8gl^PPJ09Wr9(_z4SQ#Uhzykg0wSy$m)F<-z+S={-j){p^ zIvAEVXqJ@iJKN!H5f74{oE$#5Gv3U4$b^e$mZ-##d3f*^$QuYzb@ z%*mH@|0-+tr8>%DUG%1sD7-tgie-PA16+qSe=StbYGWMTkZ6#4Rd3bpYEMCd?JU{g z6dRcyox3Wp%q|`@Xc*74Ec@Ey8eQK1QpobsE^S^2E>b3aFU=fVY7SRhgGSR+VR$bp zC^%S#m;WSMhWBO2j`%Z_7ak@Ri``XFP`Lf-_HE2%O`AQHe9xw_EF4Pb)XrE0kzx>` z_H;a4ziQ6Yc73v}c5U&LfhogR`$%;Fl2RURfRu%5-=)>nMatGyjR^6ZEd3QCoxfdFLcNJJpdgCxK3aG@z)Fh1OV)R=HFj;@IQax zbWKVRLB8SNBF8wc0})yXR{*N>1V1P4+la}DyBe=8Sf-{J!3Zyl~Oy!$i` zA0MA`0)ezpU_z%WfE0|t<-ngKle+m=gH}gXMn3zMrRIKcg|{8=b?Qt*H;6ZUZfCHY>-Fc-iwrc{&&7;kGt94^!f)|0?@pfSK$kSolK&}17 zFMEzMyq@k>>eWE%LN99n0lsgn?Po>WjtS;c&?M(=J|K>Lu7?q%IJb;2`ntLjec;m` zRp;Buq|A2ehQB8V0-!Z}ev(KDSfSxX3}x@I6vRRojg&`84AD& zh|d7j8>n-zqcuW|xmT8!I;P*BfaE-S+=q+C^6A%c7%+L9?V~EO^Gy0fzhiK4u*5aU znwO2Oj~_N}?$>UZ z(8uKvgTeubez}|WXhe0*-rA~Aw0VTuID$lvx-f=8k+bkeb+g+6C%}7DF5_{I>#+ZX zRrCZ}0GOYd;Km)2?<03ct2NXA${=of;@RQs^UwfbFFEi>159Bv^^DyNkf3KX02}Xm z2-a}W9#J060+kt3wj?%3BotHw{|guX75Ts7|IU^Flrz+!|KHybIFbLBSW?K5TOcZu zRYmRsBQ(6+z%_X)O|oRJ|8Ve{Ef=@b)-VATFLAiMbLB!VGe+ zzdvadOSYhw3abQBP0Y;9hK7fK{Qh0KzWW(krlPVkce6TL`V`Y6?r{V=!2LWhW?FdV zRrj%R3|st-l{w-ypBDk{7J1B)6PuO5xMHl{U> zVh1U|i-O53BX-+KAFHbi?1`E4eTBxR_wMOKUK6!%iWkA)4f0>eq(%#$O>UoGTGELX zRPBe7Sw-pC-A8ap{eXWx19U!QWmy`(y4?*0gy+KrgSy+=p6cr9CF+Pg++DY|ExV^> zP-AJF)8p%DEyCGmBcmZ`#0Xr5zgjGrMJgnUJfB9ubOKXcH><6e2??73dj9a_b zV0sRNS0>(3%GjnG=No!Ww;i3{*p=hR7J=*nbH~2K&guEB#epCkAzCv3)SAU}QBKCw zoQ!nW`_ZfL^uunGah-Ns>(e*uZmRh}y=Q)FBJPOAj;xksWoEW*D66hnWSe2ILMS@_ zM_N3!NbpFEq1g1LC)&B+jWje6bMX3ulONp6P4CL3CC>UmxveV`iAxP?KJanBOu;#I zB)b=D@wxG8WHIJ9vg{fc0DHJ7%KgdKoJKr)W3(3;WgBk=qv|2*@cmtY^!8@S8yw(>% zV4aY7?8(@rqJaGFoaU|+G820ZvaDS}dA;)$AsNhF=r~F9X`hCrpz4Fz9l9>U$jFHL zk1P3#7ktSp7Utk0ND*?o6&9ot*YoS9e(39O|jg*e=@CZ6J|%ymUYMV&G15SI^& zBx;v;(%9^~6k0k%d!L4uF=Q~uy=0F4x|=%jN*e)AXmrQuIlhi2xwyUSj?|M#?%my0 zM4o(#?nSVR&d$zi=k@X%|86>uXz+s-&&?Hczw2{^I61%7WwN)nu>yzgLFXFknPW*U z7D!Z=)KXJ9X5dOzl}V#73Uu(TwAG>Ang{K@Nlb?>GN_Umi5s&-T5i)L383+7ZqA{I zY%F#(*Wm0}Qn>xfwbo%8WxwH-hVc%wgv4Yq<4;IzW@bcALQIr`G$d}!3@R$xt4WRP zQx|vi0^-X6OaX?9Q4&tjx+``Rf+9T#F3xeC3%u1>3rTmY@D5?G6<2UvLq12*S+u0;2p0#apse0(2ObVU*h`W*LD0xP%ZA*srrlvC0=xy+BA;iFD0AG9(q z?DGl=DlRX-$S)}9dHTdf5OL~V_{8R>A@t$^Qbb5?g32$aw_1!N_tqz(!a|J3BDE^p zqb-ti4DuapZLjHND)&TjNpAjb5$vV6!0Io!krxU6TLr3ziTGh&%i41$f~Y9yb6#=)u~{WE-otCIq9~wa2LDYDypQcEW8IDl4%N|E44A>p%`4{l3djY6YxSb zyhc}^{o0V*G!l?b^C7cQeN*0_+|0 z(AxQi>hma`&sq_C?yH^_&magxjk3bMd@Zx`V(c9mWphgn7gMZOYO*Ohx%28f(~^J9 zO34^k$F>U%=O*7^VYI~bXyxrIUBg<+!nwM3eeq*vhr;~!QNa8YO0!dOchJcwS;Au7 zb#mf5${^p6WFvraHj5+L2HKMg`wEK6+w98rRZtQZ)km22T~Y^QQc7>l(H2TAAZuqq zIFOc>7WCW>f=wnYb2cA>Mj^@!lc<|VTH#4=wV}?}@nwv3)t~ zW;v9aJkygaWd%%9uTk%|uY`w(4~>rY=iG?>SW|=V?Y-md7ATnaKZ5zy7u=uzTyJy_mZM66xViL zJ!Pi!<0hDgkYv*R2J+avxv1I6*57vItTn$9ypCT4IJW_{ct=UE*;RV+)QXCW-0Q_F zU+uR#BVaWtArL)HxaeOcP;NqS^xyki=hs#sRWrK!t{jxHyPQy9tB1_8yQR1^{v0L# z<5!RN6P{<1E3I5~>>7VAFwWNB&VhNm*G*r-3k_Kn7i-7wJ7CJDE(UL~)p27)B`j)R ztJdygpt(({u6eMiDu>rzF!(6>A|j=plN-B_ROQFi(SHSJJ#(pHD0)hgWT)?0$+rxx zs_v0yzskeAdk&^N_)KA2Ur-glBPYV#7^ncWl<;yTOO%B-DxqBT<*d_Mb@b7I_&0*J z!DqFqDP5AnT2_JkRl=-Zpw^nz4c@4LYqfp+n;*KqzHR7k#7PD_bv4zl_qW-|qR*^_ o>Y`I58ocxnaKSk^s83&`AE>69sH(V$LB0}bUDMSlzJd<