From 3d2d186f4d9de9b20a406c3a4f35fd98b8edbccb Mon Sep 17 00:00:00 2001 From: Victor Chelaru Date: Sun, 3 Aug 2025 08:24:32 -0600 Subject: [PATCH 1/6] Updated styling docs to use ButtonVisual Updated using statements to match new gum namespace --- .../images/pause-unstyled.png | Bin 67459 -> 48729 bytes .../images/title-unstyled.png | Bin 64353 -> 50881 bytes .../20_implementing_ui_with_gum/index.md | 18 ++-- .../snippets/game1/initializegum.cs | 6 +- .../snippets/game1/usings.cs | 5 +- .../snippets/gamescene/usings.cs | 2 +- .../snippets/titlescene/usings.cs | 2 +- .../21_customizing_gum_ui/index.md | 50 +++++++---- .../snippets/animatedbutton.cs | 82 ++++++++---------- 9 files changed, 84 insertions(+), 81 deletions(-) diff --git a/articles/tutorials/building_2d_games/20_implementing_ui_with_gum/images/pause-unstyled.png b/articles/tutorials/building_2d_games/20_implementing_ui_with_gum/images/pause-unstyled.png index 3a592da473676f89fc6308656b85b521a1e2d2ba..aea789bb410d24dc015150076d489b320fe15409 100644 GIT binary patch literal 48729 zcmeFa30zZG`ZwO6W5wDEcBT$9E@0cKjyi2xi^T=Fr5&qvA$7sH60KE=w%~$9mgN2{ zRXe2)ZipMCtxGf@K~YfxT$Q?km}(jjHAGa1A&?-K5R#jF@Bg_s3tVzn6m|HMXPzlA zeE84cS?j{;$l$}L)Th#)tKT@uI$=_%Vok`uwq4Wp95_QY`N!oIFPysZ_ZeFbyw>N7 zTW`O9?4Lc}n|yBa#4q1F_T!d8BR}5%#j)?UEdS@~10gSd^`7+FV&3X)e|o9-B4-6I z)KFz6bVcdt%J_gK*UWRvpY;w6$JYFNY*zl zNif<>Q;M$-JDaP;TjUraN5~6Ui#IwNk00GTVYg>t!r8vgE2P%^LR%uLp{|@wr3)HL zkP#1&=Un&4arn#+6&e|(c_G1q1~gQo{#Pfo-fSzpN`)=^Uu>Pl|6lnw3O@-}kv__E- zpN`p5=|&lqgPF}#Wo|gJ0M;}b>usBl>Z8cz-!?bWbR#XaV3??xq)GV8gf1iQnTy`1v>GwqNRt%$ zZyRaR(A*TPx#39J?D7F9X zS&kkc`xQaG6CUZGX^_5rH|f!khW+$Ai_3`GAnNrhoHkNj|6Wh3Z02Z$5=-jPYa5L}8&>f7U=Ou8L1Qn|hMJLWmiw5h8CB z{m-hBaD|mS%`xY-XGFBu%LT*C^*;sQy%eyz-yF-Z9%xfVIa+L(sBI8S2`V)e`$6NS zX`!2afzXywvuxLgBtwVdtKSyZ>j-qfqYRB#FDLnt3}zsE=!k~?(DJ#P<>;v7#AC^x zz%RpyLPSfvJcztLq(MK=lWIY+>hkn)z19zkbaG(r8m}IxUkh;^En6JWJ3*0LR|WHa z(?lY=X7Zy3J^es1y0^{BC55B{Z9@7|B8{1_z`GS)({PC<2--%_g#L^UTF6=Rsq?Yc z3gKTH$;MR72F$BMZ6J8ICZ09-5*dZfhkbo|Qu~b?!?8lg&K;3Ze>W zxZ`@;rhiV&Om_A_d|gATHKgiWV<5k5r6z=~K!|XJtcfB^jGor8AY!w|c2rDildV<3 zcPG-r&LWLso189F)J`MFcc(e2yEd0o^ez?7W3Ea<8&WBixUXe)Vcp`i2tM^Mc`l`S z*2z(!;h@x(tM=eWkDW6myXf{q|S=<8E&7U9<|bY5pENt}fLuw0@YHzd?Ilo$VVpS{JLMMzAjd$%c*Oj~O2- zrkHu`OI2*Nf8D0AX>nnB*ktCVk7B=kG19dB27ZGKWnb3$sQVJ%@wTU@8f4p;m-G0; z$eUgTdz$j2(G=#TfBHm0k?5i7fc7Af(GZZg_k^#3uN$)RPZ0<-{5!PiY; z>>r*vk()?fS1!hy{BHVATO7#Tk?u(xga>@uM}HmeXo|kcVIDAZPBL?cq)4P=9xz&| zomQmX@7ZJ1B80g&aB%Y!=20(|?f(rLmo2mAN3#O+tN$*miE&d2=*jXzXP75n!U zCy(nr=nL}4$I{@}YP?{N4nI_dU-$P|uWU$|_nMj`i#-(}KFW_3hZC_u^RdPtMKhjo zN>nXOuh&{WBa4ZE+X}qGnqrPUCD!JcMjG+Y5Jk9N;4gli6C_J~*V0e1)9rg+rM5zp zt|*h`D{{!L9&D(|slK3H+wbqb_bM8@(O~-rYt#v+@>}vfdsM$4FuywuwjYUnuVSaS z*nE4)O8?LPaZp|vKCCn+56eqGKve(ZhB$mJx;F4bbIIHTh@zINjoW5O&6$Lzt4NjU zZ)#5XRw^Ka$k2b7$G`Rp89Up|E8iZC?VDi5GYzt=VLD22FHk`p-Irqg%*8aUjQIedEhFx@`L~cXvK0`m==Q{6Rg7H%)T%{HgBloFsJ4 zqY8Z7vVJ#94Zd~iYqGNYad}_pbzj$7`>RdTSqfQ}@epBK9+)K=c{)Aoa2EgiLfK@K zt=1Zur}*72jutE8nsUH?dBqSTI_Xoc?7x7^n^i7*n8iC7Ct54?S8I9tRe=l7nW87G zCBHVrg-W%&a)DC#`&~>Vl zDh}wnGH~Jah1mD$Xt%Q0tEHCWaL+-V#)oUY9tH<@A^|zWmt& zSIbBw{Jxi*LLa4H+~4vhCw?whVZJUNt9ROUqA2D9Vf5ddzDPW)ZR+q7r*S%U(P-m~ zW=}y3Q$(7#$1V_ld4+Ox$8@IdV({GwLB-&gsL*?L6G!_TF;#B)`VYDN(@uu9Tz|Xp zLULJH)vNibNscayBA-L}9}epIj^%vGN0L#WzM8Qbdw;eZ+^?%6kpXn z#oeRflgN2Q!9TzjzNJiBK+Jx_Ip{CNvcEx}>lTfENqU}4{>gg1U;T!O8wF`63(wC( z?oHIjw7l5zcJ+{k4H;I4W2w^aY`{}~2wt?^cm4a{rSQ!S;+69s?LT+pdAPke;$&sq zMc+sJPYxFKq^=HjQnz;EYqo^fR`t92VB+16KCSMPg(~`In2f>?vNBI@OFXr_ra#g{ z5sq?PlcVxI^L<_=G%|SQrzgG$%-4RcvYLZl<&}-Ql6+Qt#Ki&RVOTzcd%k1c|1vkl zxaqx->!|pwIY&`r&WOP$L;jL3?CD|;tNqf*#@7u2y=~Xej@)1xO7?b5xoJ8`knz3m zJeWVGcjmdcK_^!AE7wiDYpFAC@U8ydL9kn!6VHBt`aL*uZ%D(ESs_-I8rsz#;+TG?_bRPNR?nj)rkP9gXdRw6_9zYCj8fB0vFd$gbObqTw*j^0M~3L> z6C&wUGa?N0mzdCbNa!I#93+F=k)z@fN|GxsFO49@W!w~{H5`%bJ|E}V!+#ZA*8LlG zltiJgIYDvtlHzDusa?CKL%*P>by~lfa}>dMhlapq_7=NwV|NA=q8F3f(Z^#CJt2{TcVqFF*|1E^c%{GQ5rJtB`>6AgQu2`XvLL5O|AN z7X&T@^Ai{mVSN?*;Vq;Hj{rvkegd`Kw0xZpqrC^DbHSZ}pBP2SE5aYb8<@UeP%}S) zYAP6zJ`vv1HfojNP{2=&v7!Rk6W*X7;N;dZE9m`f-`}A%@SvEEfH5N5sJ#wvFlxq+ z>Oc^1tmX9}?ZHR+`D5#LYuzQkF7l=#5?1Dzp2T+@DEX_m*6qp88`zw4JF;?6&)HR! z@=mFmSR4rR?{`ohHd%nEO*8U-<1dPJ4j#Hw;9JHx!ZY*q2cyl(g`9)(-}sAtmG%kw z;s1Aow!G83ZsTTS42Wc9X%jw8>_5$nuPq8#~NqY=KKK)Fj)2u`z3RA`8kyhSDe7_sISeoU+eeYEl`rB%1g zYB{9Xdx)^)>C-O$@`lFNTO5lBByIHDY=cTNL2U|I^2;0A*PKuno(tM?(7h9)yxko} z_KO+{i4S7d*`S`D)9W|sbrDm|{=%^S%@Y~F>M(eLaRZd(G%;@jd7W_*q~Ow|UyMeT z+R())>tr!5q2w(!P(JjgFY7Td{>{@qMwRWDn&rp>E_X>Dro*M#2_UefCk@l98uFRN(-1s|@3iM+rseA@8O_l$Bva1=KKl%IlwscGsjvbn$Z4*!pw@f0mGsm-t~* zyLkCT1eQX~Z7|h677MBGYl%JlLzbmoybQ(Vt=+=CLp9~LQKcMZ7caXtEE$yV^!{YO zq@u4L_fA zh(gW;r8vKY_7l><#FFd=_au0Z7(2W}KXWc!ks0LG+IY2hO6Rw-T`v@mtWZQ+0&M#_ z8BYSjJ1$l?#2sCjCr{DC-kMUX3@bDK;H(ehG~~z!&sYj4yr3W4+gT zt8K!;P6mS=&g}G7w%?89f-9n!5^a^Xv%wH&o}Roz#aiH~h(j!EYB?i18_a~IzxK>@ zNnT3;ux!ZN)uq9U;`*75;9<|AzBlY7LzfmrN)#Ezl=OI5u2TCb={XXm8^s0N#50?@ zu_E{?bSWA-S9Tl33&TR2c`2s6w4h|8uZgTr>F`8y ze<4=jyfw6fA6lm0sa-pz#S)p3**w1YXWOvD@(xYdUU`pvMLCklD2`Kyh7zkviQB)VL)EeB zKZ*)(kH{dwg@3@QjqK0__SHw&vJmYhbFy(*mG+LpstnNz{7X4&#vz4h0`eT9 z6_tr&#$j?0s7lKt@;>ol%UE*`bwX)TPs2+-5e?52uo;yBGqxQqD z>TE64Bl2%g818n?%?1kcK1}4tCgDSd$9R!@g=r>hm)Q)5&m$;!_qED36{e zn@Z8Sllpkw`rJQL!T%|IyJBXFY4#z4>-><>nACfraMgF23hj~NxRFXya;5!;Pz%E( z1&y)NDI(bh>z25I3}J{%!-}{2(jlyz&!gRD3l)YiU7>j#55we2_9L&=_V32%Q@RV2GdN z12%$LHF93Z=a`eNlp&? z5{8!DCv*f+*xE);iFUs_n_{i4;5o^SjNuVl79W$Lxa8JaplJG|q^rd7%AEPape$K& zoFdX>ISqY&L^hE^e#h$z#f6x$#C4f-XqU`Nvsvgih*ZTy`C^ha028x)su|_!MgV7P zw(swG@9xfE9KB0Ggs3Lf2*GC2dfy5WQya~lCzpqi>*g^<@_r+FUH6%$P)9y*=u$J~Mh6#RWDhJOoI_&8LuLbO|s-?xlBgXT)ig1jgE zc*T~rQCt7c1{3QuIjjPK_7cupO-FK##%NIf0#N|^n%UUgM1_Fo(&dkK$K_CVx|?%U zW3a8GCL1*MIx;QGvea-bSu1-$snaVpI?(!E{pfIw5Qk#64Xy-NHu|YjYuyuMv$5L zdHgbvXp-2qSSHBR5d4IQs}HYMk;g@$W#daTh^3@7Q?N&3il2v!blw`K=IB8PD+7*d zl-9YfTWdvgu@U;Tp@f@XihGYvVVmpvo|*_Uy-ZQ;Y>sCxVf)I}n@@;lJ8yOMbsi=$ zkF4b^AHjC9>w8L-*1)6U6lZhJ@jVr3>db9)>8xLyoR1+*g|WTU zY>I4*<*i1JW}z{b{E=tGv&;GQ(MUj4^>PHk_9j%O+~H>E#S4RslMNCOl;hQ2iuq@5 zDHO(`V!>->Wvw+lRUzL-M64xMA?6}{c2+Zv%dcn`ULjB9Q5DsA)&tSJh3H8o*^r-- zLE3EXnp;gmhm=!U+yYFyr?~Ss=xDKtbpbB~-(}6aUulRxv!lby`R-18!EZkoU3GK; z7+*%enYVha|8le8)W9-6`F+*{N-mERi3+z7MnkQ|Vwr5fzL!f`z14l3X&6bg{a>V<&_0s`Qh_JHUfyP|>~+j6|oKgk8gjrJU`S&??bn zKv@{n^rCj;=~ggx^wQ8|v5|>dMkN$}K{!EH)4Z9pO+V{~*fsrj`CKLC^)W#b!7AaEW8-U57mNPd#mie@vB>v&_UL~91xgUp3l`FbUHpxfrCq#S zj1~nLBMZm&h6uUx=r#jg*Tu!`qdpLb0HYb6sb!#z8>Dz}mjeYdJiL}{3h`$QMA5Oy zd34T_F2@R#P+N{w>R1zyGy6j`8uO$X-aj5G8?Sz;j9_AN9`y`3d8BKC!mn3ZB#&8q zLl1UMBKY-93{sg`hi31N0bNWK+v+)69wZYnUdLxMmOqJ_y>J#>i?Jj1XYSRS8V5Xy zpp)L=w%I3*O*Y% zWtGYJ?=Dw4u<%rH$?P$wZp)`gdF;A=moJ9o?)}YZ&cuPbE5rd9ewx9CoK0N_%8RS89=6h`ac?U)ojkw8?#+Bt{mA z*oXp??Kgb%lVnJug^js@HE{F5PhBWByV|QMhyH>-zdaALyU2bYOX+D$8OGM5YlghJ z!Na&SGl;*ndnQUooLvPc+{gQOkNI+?mmJ3U@6yPE=?lA~i4lXuv7)0+f1lSaF>{CO zuvIiGC#>z3_C76ULW>{>3ah@Z?Ura-g|H@0!mZ#%#lM;MVQ`P`n#XqC+kN}K{?OV`|;9zg4k9(Rwn zbi?y;k5P^2hUUNS7DVZWuY}y{t7qW>Foh3y!&Yz)*rjyCyZY2W6BL@=6wI*Q^QMR-6aneC+xc{>nwhNl-S#QN~3I`4{<>`up=Nn=@A{0*E#j=PrU zDyJ&=OzIeMQ6W(%~`0}(v@znV^$@~q(5ikV7T@@60J1ZQVyd9CJ z<+LU={LEVmEu80BEe@$CGuu9X461XaW(Z*GN@UB&&f&(4@2lmwC5+tZ>ptEp+d;Q9 z7I{_D5yySE>iza%(T?OAY;5n$^NAshh~%}oM2UN+3m8L|!6QQ58!c_JZO}R;Whdmf zCw_HGW2d1D?iV)SZQfSK}eBh3hP)DFUJ5cc^nV6rUy;V!`j@h z3`Fg@DzNXFvDMqMoErCLe1tpP!7M`bvu@RZG(OPqtvY7STJm?9Q7}#*y`epI-*b!e zs@tu(4Q{Ccd2Ps3WO?2#a39@9zHG$3-Q?-R_G{ct^j~j3olZe10xi{+;`^{4-DG#0{*^vQTm9Ol)yD&VY5*2Cgp49ZZl$?NZV4N{1BbQTaAv;;|a}|$WYqKr<22W-%$JN>o>+8$t3vDqLohqh>SzLuukJ>DBnS?DN(DF}Vs^sFDw$0xbA4YzKhY zwMI<@DZnsR;aE>O^{Z?C@MvSuq`Qm0N_=(3;2&l!tsJy(RrW>lNG4PX@HHz#3o@z{ z+mWc|DVBWs5sFGHL(PO8gNqu^Djyfz#?Z)YNbKpkam<)kRKZh2Yf8`k)nmmSNKW~W zbZakneD4QZW+#HG;X=Sd&p(d2T=nfHn6;1Iy>ZU78vEu;`uH{tQGhm1W)c|rYsW=7 zdRiR^S&qOSOAo~Pl)vp&bAgnn8Bh}yMpEp~-db7O&@^nN-6I2TFM|CKydq#R?!do| z>0MX4_jnL&UA@CSlMcy^GRR1Tc(bfhlcDitnTtHBJb-(*aWkpq%-lvK!rs(^*qL_r z8eaY<=vV0Ao`o@aw2Fu~5&PLW#A5bDQ||GlSrD4#UsVQv4*Z$z-*ynv#IxlgW-Jbs ziBMJ{o61ABU*os>pN}kGv-TCk-tUgRsS83)3G_wmk+EP~;tP<&Db2hjx&iTX`y3Wn zwG-ziYmfOFBne?<_hSL*P?NG=iLe^jp_x`mbm>@T?IU~aYqNsKs-D<98>dzYtN|qf z_<>^RlQswZY#wdZ7c1 z`&M-Fv}0kiIo1yO8Jj2fcy7?ugW5HLFeuNVV@}@{0dI^HXiM$W!7?hETbCUBCWjp} z&*)VhSH_yds$}Q-WNip=q*<9OkB4q9aCCFg7m3gR*L0Ew?998e6o4~OR5iK~uRqSF zSO1S^?P;`H8iW`tvDK~xx==OcNHZkeN~*AZHC$SUYE$Y`k3$tSv6op;VipJxcBKen zSSjudQ$`b59;!9C2f1uCspP4Ggr)8;}Y6kx}UxZx_1^f=|`*#ixGpXFzy#*ekV z9Vj4ZY z&*wF@hFR~`Ll*Ce?sp!wJVRIaR0a2hOmEL|r_tB&W$-Ac0Ou_YQ#WW!H6G3HTk@3$ zFuG2RaH;$=*nBEqU}gnMTsX64A$!^t00i>{j~+W|*U-UVu52he_tDyZ=OF7l(bK@c zk`J_6>cPQ<7tSy5S8;qb^@;Y+ZY7-4+qLywmS z*;c+eYw$loNNT@LBzU8ufVrLO0u8NE^+hXf!bQjq#rSDfLP1&Z2a3Ifyjl_8I==?X z^KJ+;<0x`d6TghO5!~AY8T3M^$BVG!#y-4DrCi->iVZSL?2?(E61%oY?2r21^s2@~ zwo_CN$|%el@M!Q#HCsolHqGH^0zM95W;Iy4e-x!NR-~jP_`E9GtJjz@Rf`S|WM%az zqak3n{n6;jtJ`B`cZYm!8ZJ(?FUtt>ZMu~l4i6Gi16X%}p+(lA_&2wB{#%;OsEr-5 z0`0MF&{^U>m9aGaYW%Yv(=$ODT}_N#1^In?vBhYZ$S{WKn#)UIDguCET%%jPW#wpf z;`->7vowsh zZ5(>UEe6YKJayotNo)Jf*={G6di9ncf@hk{sfzh(RxOEqcIfBY?K#BYr?VY&i^-y+ z8H>(59>5cs_uqy2WT&n?kKl{BoAZ`q6gz zp?Tfo!$E$bC~C=9k#e<~uGI#gNjKTG?tMnpLM5bxdeHM3?|?R`7W;*9Kq9S@=bHUs$l zZPrqxt~~fIaXe@-dIyp>w1IWe0@@~g*-cxsK#cOJJu1k`UAuyn9`|k54`~q26=x#` zLBAHpN5-{z7yTWmT-a3uu48Z}w${aP_Lc~^65HX{RVNX7%BEbRLVY-f>-;v63* zPJGAn-eqa!WWzA9Opp0^tQeI4qR0C3acX)5ouOd&CaU-y5e-K6zgN4Qk%mZ0>{gY9 zDG4%hwrTciqzW7Y)0jE;?{0?jIb}ME2ZasoTO_G@*Iqs3mQ2bH6qMTxUSe;s?~Yte z%Dkric5~vG!1#B(44GB2GQ;1Tsh@ZFPOxfRp3I7>8Bc^hD+RZB`&Zz&2^L}Pc&nw?DSPSD>g&h_`0UneGHI}_i4qP=Its{{3r;RUirJxUCT9`S^%S;Dex z`B*!O=S-hq94Sy@N-8PHgE#0iXdj#BnRnBd(29ypnUIeL@A#mSZ1-|ZLloPv+~#tbnPhIT<9I+ZOm{B)MEqO zaVnQov!`MLHu_V0P{fs+!)TS({%pikT`4}Df~9PxPjJ_5;P=Il$`* zX@i~Q20C}NaysC~?pBH$1)Nq!!PwsUdm)6v3R#IoVA&m(OazJy=-4D5m44A{(-Q>F@*cV)3+T0hebM>>=`hmp=WP620YjZ z)^`0?^XtYXES>&su5yM5U=Jk9n7xUDDYM10NetM(CO7}|x?@MAl@mH2Pp5ukWbCR( zAJ1ebXq~TAx;!~QD%KZh!ahSVewx|lo@4n6Yhgc$3Z1!?^6Cp0lBTg!cV7q=aA0F$ zwPVH~1>LFlQ{$Ug&lnD7I(VAi`^PT2$K-_6idtuxE#mGgwfYlk828={^@w%GSP*>REX@su;f4W>u8COpQza|udYFrk7c@l=(qeZb;L zz3LEEcv7!A#x|Zbg)6Cc5f(d>d_YU+Wcp!>(sqd!)5ekX6ezK;99dy3Rx948F4B4= z_BG;Yaoq5$Nl=iWz#ukGwtHE+5k|zSpir4jM*Gs&M$YA!_<-eK8%Zb9O3n0Wpk5(Uqsf3f9y}g|p^u2aI{kReDw=Rcw3dRJ)5KCA@j^x+2$(=@yC997 z@;lJKNOV-u2_p9L@-5R-Ofzs3 zM!rqtg2rWq{OMWzG;AO^Z@Vvrr&AUwN!XWBFcw^#KPT(cO$lIakX^k7nY<|t7 zifSP%SRXf4mQAbn7?7!Q@utjPe+`|>*%13E9|}W|xD(Y~SX~cx|7;R3bkkV{F?8Uv zz;xKgYNIX~!=1PcT}$+@wyG>pu&gdMHX$Zf!|JtGPIO?GcG>fH`c1=7^8K~9aA+Dp z-hixSrU{$K88v|BBsd?5R4bw;oD_w64jB8@-|EDszZ05LDeA7=PuA2D#i|D44;VjN zlVYRJYO8QpEXY<^Vl3)}9F9bSc6w$ywfN37>!#Wh+PQs4{T(2h1*Nq~P__E1n8Yoo zkrWn75EY9xUoR)6w(qZT8owlSe3sJkc2iTfK*&EcK!n~kKi@3hrtxhFNCo`Yq$qLXfH?66 z<~6e;zjm$yJ^+^S*ZE47>EWXx)^_d8TVoPdFK;2&YdANJlYv-xLoB$?b{dN`)#k;;rVJb^1m5J}Ep?5+ zelAl{oiMOx;}Ev=g*~>-%EHZ!UiX`P`%vBtG9q40HsJ@3qfD@-R^13-I}-~Sbt4`?-8Ct~Lnh60U(zvJ6P1d~ zwb@}S$<#!s zGz)!Ec`NH?;pYmgYWqAN&ds|1Y$4Rr^b?-`k85Chi|RieD{sAHLm#ilV|t?4&r zWIMtUlK~JDl;FJ~a!_niYJBIgaS*;x^F4!ifWCz;1(rT=YL|A2EI*T6tNLk&teovG z-AzJ^IRzNYxKsNgustju7h_oqCjduDAtbjSy0qsCC`WJ&J7iOJ;48<9)5915G#`8V zOdbjZs@p{93{JLB5S85@axM67X1mpA90}E8G_NaOg?SoY&PCBhtXx4&!p@kyHBX1$ zn|O9az(Z$pgHv3+O0R768fliS{wNsG(3x3cQTnWAE)d?hlboh?@Orgzn4VlgSJI{w zTYj8R^^iwqN{67;wF%7%>kjg`4_-}0w2}4Yt3N6VzGlE=uw=9OL01DSzv)Gy4R0MVSz&C_iTusgL9KiszzzB-%#T3*HqSVJRos(KN@{Xy?3sj3>^m}ag3;aWLKcfmqKJrz3V{2OEt~eDH!Bb|8KAP;cb&}MJo4kKrX42Uaemo- z2qoy}iW~DIq(-kcY<0_kDR?DdEQvP}7V^71rzPcCHf9|oAKQuSeG{j;s!7-rvRo@I zq=@5FC#yARk9dxfj*>;*;0(Ab=Ks(#VKV`2#YV#+V7jgnqjG7(NS;2{2d_~ig1MqS zhNe&4t?*NsH?=XQJ~wN$84z!RWk=emkJOH&AMh5uJ2F+rq)!*I{A~BmQBs2_y>`g{ z5qRxT^80f(%Y<+EKed|X`HWEiD0iL$-{p_`fUN=|5DzF$=r&vNG#Hpqoi4$Suo2@l zR(X3h^VYI#9tt6Eop;|F1?OYi_by*>W=$#dA~8=DmwqYVf-e#>%0{f6Ui0=e6ItbM zM)7ZxX3KI2kX7R=5e%8-H19Dh)tRPipC|3IH^=nF)@5T-xmYsp^5NqAybrNY-$X?( z-uE8uazY@Sem{25Pe;q}fSOXVhaU1$7z=NdxVwBssmz_3!H%r2y^xqTFwmK<;gnSl zJ9tN8pVcPc;|6VP%-Bg)-!6R?`^)hlb(+%>Rxp#cI#A=4eo0(zB$X&NxlH1i#yO12 zZfg>+u$Z@@+zfU>&cb9aGyP|(I#F@3#~G{FTr(aZAM_7M{h^bFRO3J%SVQJS?ISIm zZXj%{Z5xfR(dn~UDRo4|cUhRCAYU;X*J)?^vR;*2>a}ayT;%a|k!Q~8el3)DaIrR= zHJ^2 z(J_`yDa3G(!4GPYPt*#$Zguv9Aq^zwiyiKhk_rd5wK4zsC0MF0ejZ6AoUD^rg+iB0 zVo69~qf+gBC3{3`Suq$zO+ySCW-}!u#Jc2<-TtR1dj?H1`<}`WYa>TRQ2|oRTd1ec z*oXI=3Sc<)7ao2Wo?jPrG9BWBDp4`ctp4`=A;9+iJ3iVx zGo9h(cFq#4a#A`U45Az0jkiTlw4E*UE)3eFXRyDshn0nwfMhvbbE&;JjF>w>1I&Cq%PMzFV zPpEy;yHj_(iuGcJEpeEz%$@}SIoaCS2|Z$PRGlRROYoyeyW7&Y=7n7OyoJj^tY zwqo>T(e?XGR5nuqG1^f`C$uZH#fP+*Q(@5r+o)_SQHr;a+cn(Spn6fEludGwH6G}w zewEP*zFXZ(9R-=>PUC4`2FLRbKPBjmv*C}RJe+NnlasHpTolkV;K=?34zM!S~>*^S{SWD4kV3fkJm00sRC<1;=n zB!HRGXK5;@vRGvveBKz9>B<#J*!@@q;H*BtBz`(q39X_pFbDxyW&0UV4|!mFpWAZb z-zI5R;UvaeiDMbDvrZ4{$s$fJrDQBIa&4jsOp(~2Y7O1rMkwM&@-%|p7VCn}W&yHMCB>x;nXXdUp2{$zm16?=2#jkm+FYhe53A5&3d3`ZX&H^%N}((>B5iD{1uEEOX=Y_FW>i~ytxzoPc| zYn?dJ-?PS^2T#dCMyfEe(Jc?K#L zcq(@rhN{HFu)~j%235soP6R|Rqiji-yb9oJH@ncdsqBH~ZK`1JMh&-x+(63ikisv( zcVgVmPIw*?EZgl5a&py2P%jueyb>Lu7$)%jBpdat9J34R&qEFsgwqf&CaJ2?EVJSd zyhn?+z8a8h`a9@VRovAT{s}%oZpZ^g{Y`vY$5JBs@5RU0~Jm#HN{uDiB9G3_PBnNV=67i~?v1jU@K0oVvU z1WnJ-C{#xOYTyt^zglR5GceoFUbz9gWDClcg7y40F&FCtQUj_&8Znz_YDa$>FuqQM zp_?0%&ememlfwL#oAi)8WS;%1!ZAT zkZ|&774BwRYrN`D62`YMugqEjiro{H$=JLxh@WsU-_AtC7}UO73*t)l?PyNp{*`Pi zrxN%a`Na1A#My~|3{phq!IYhG5{#KVds14)C}WfMjFntKiokrNAaP9@iYgmoTk>0B z5sUf#_l;BQ6C z{-d{nz0e4C6uO-yz+}2P_Ghqax{LgwpPAdjoX+tSxfG{5aqb_VJmv89?A01vw#E|% z;l7>uNjV6e1IG3wxYj^@YsQqr{k{RYaGympB@Z6UZuXSDE@HEed^DF);mC0N9n+W~ zv1*H$Ifj$>%u zXm(Bec#eTs19-CTr|Qrho6XG=`T?L`q5tTHhcj^$}64kI*GLKzk$O;lbGCS z_-Fi^_C=*zZ9zc^}4OaZC1Ab@LhG? z(4z{nsbX%RqIONJZ-)wmlkoc@Yh7k~xamxOvZDYZQ<&0l2u#io^=lAe%xp!DbwOpv z(tI~;r^P|zGqiJsZy24m7MZ%8thB#jy~7o!sqoC8RC9;2f#3K+u94zeZR~7u3E?Q~ zXfJ!qY=S)zWLAcUn*uTv)xr)%5MM1#1{^FWE?uQ<402SEv=`%rO_*OkpRtmTlpiV6 z#>M&1R^)ctZK-8dV8Or)?fiD#W{y*Wjch|y)&*SS#afG7-&(8DelQxzk_eWV65KlH zUe5TyJh5JChiaL<@C<9kTglEU$PceYwJ92%A&R;BYR7VxyZG); zgG$5hW&G~&O*u<^I@U=(XOp@=Ef1gXW;@-bq)?&wa>t65H9YsHT~E`v_T;a87OMQK zPZRjUjx{>p#4-v73eds~2bZzDZQKTdkXcxwbF1@{dKfwS`I)*8qJ zWU7GU5gzM@XIP;&{9GYb*LinmTOQ#lpO`E;Ys^}?vmh~3Ro7l$<2YA<%i?BVCp6_z@M_+v+z zYPL8qo2Uc_rqVfhg&4Wep&;@N+YM52EgYp@a>zWk0x?_F??b(W5T_|9+wj&&b$r@d zliIc)tXN_*fF{jD)O1}!vzFV5Jj2@cgDHtF+1=`3cCYNW3sLS~J!MyAmG0G3e(FNT zg?)R-y*@5ri&#Y7YPV)q>+`Fi5B-#gW}C<(iqf99pG=m z6;T43CstTTiZ_QFQGa$hU3D*OX#K3N4fR^rc|g2KPGHuAGQQ=rfOuNYF0Vx*_bnRX zO9ZrB(MjF;`xW?YHLcR-P{rZ*D+mp%A9~@ga*bV7E4`k^pT|)nr8%Z}dx=9vtUPIr z>>rPv2+KqFgzL?ItoUbnojI7ji`tx^H6se5X+H%VM#K)gJC(n`G1zXz>8OZwIDUxL zm3CPVw&c4${{%Bf2bB$t%N|dby#}#%t^AdRn$IT-3KXmbV?QUrah4;LTaJt|V{Xf~ z)z(T6#B@|_SnkLhCiS7{a^f?#*K9TD*0PHKnZ|W{>Er$0$UINVU$X_6qMsm@APJIp zKtHqf00>8gZTp#>0fU>TNGgO>PDdTD*y#%;zZz^m_19T{YAx05sOD`iy2sr_-iU}1 zcXB?%#hmI(BAs6VvUWmV(8<;^)%GIXj#7Wh#aQ&7&Lz!f7ARQOSHWGlHH+I?yWdgp z+ivYS>p)7fu@q%pr)yG)FF{92=B6nW8MCV>Y3o(3nh^H3^&#euEj8es92zku5NXa` zy+>uSiysgnvM*EUc$>tbPOLIkVjr-q`bcn6vbDx+FWt|c z`_j5UsT0X%*Avj(+F!9br9aqK!vj9;P+VF=yeUp`(HRJP_YF6~K3+?j7YB`Wl|2Tv z6dYEoi`JSe-1KC}1-V#cEJ~Q|D&E|FMi>ymRkfrI=T~mBWV+6nxt`|h5qm_UOw)w3 z-j&_?hrQ%XNl({Mu5voVDOyj!IcIZ^^#7lB+x|ViR=D+O@SZ3|cwK-?YdK~`oILoy?pwbFp*wH5D__20ob$dj_4R>IV`f`+7 za61yG7cRdgU*(2mw8B9SJJ*#x?ygrl1wq>0>a2C`e&W}h>PuaMBhbmtlwPNxNjq{l z%^)|A{hLrxmq-pn_{U)b2P_942TeRqK)qVZc`Po`3h=ZoyB{IaQQ?rlfqvcL%$vta z-AVWqGcsOGT4uJc2FE9d40HveJF${l=ZO8ppw7;t>^6>+cIz-82UfB@>nlJZ8_Se5~@4uVD~^ex9knJwn1+< z>CoDphw zA;BUhonjiyauWD!2K77yH8-E?xIH*inF%93&Kzu=&fo1|r`GVbyYarR+4eZ-q4V>y z?D$fr)OyS@SieORuIRY?fjkahztg@w{+PdYr)-afE}X}V+3T>mpOe;=OnB@Gf%hvK zmpl$>a2~PN8iB{$&g_zCFHy7GAiJ$1k5yuw92U4Q-S@G80*gC1i`cozomFw7x~OWu zPD#ivhE9%|yQs4qdo1$7EK=QUI4bY-7n=bjFJlWfLabV~!mZ9?cMl3YZ*|7A3aiIg+k0HTfMP_6EuN5c`$06cDi-pd_b>c^k;<5mG4V9Jo1L&&C7p z{E%bn-VHkHkRsze_0Ug+pGi-@7>z2mp^LlM&vmCLb~C{Ly#w1<$)9Y-*Orgptkdod zirQn)>azp`lnQ@grJq_+zR>7*NDOloktdePD>%Uu;l5}E;ixQ#QxKMc|)tL_%Vz@qgVb(Votrm zHn_xUIi%Qo=$AJ%hP2$&FoD0*|56fDI*#lYHMEaPsB zuZfz`{kiH^LlVT7U?BkiRdML>pT`uBZAd9jCfR`9-Z2H(j$h7wZ5q-kF4@=b%QwBI z>9SI9sJViI9R|^yr>f%uoFnaAg~{*Wpc4W%1i! zdI&$k$>(vfjR@W#a3L8E``xN6(a(YgT!bl^T$s=*ZeC_LAN{58J9@TQS70m$Rs!}DqypcnE#fV zZi-d!E2AUGS-TCWH9s;$PoEG;r*jg}&wl#nnrSqiLmf?V32c&gci4XkBlKIrrl{T8HP2JxVLBM@IePW}2u9O$2Dr zhJGQ&s0;Sy=Ft+<%%#7$86BB}DeEBW`|`d@&DR}A^-G!|!cj>Dq>R7IrdKjA>TuWx z>H5p-1Yp}vlT_+)Yjf+Bsz0y?{0@94%k{f&ZdX@d4F1-6W$k((6`Lx{v}Af0=7c?< zf%!e|TgVu7mOBm&{1Nax=WSA-Pdo1%O*dbgQ=V0K`imE|9=-nL_1(L#eD=|Iqh1U7 zjHb;$p8j&_=C9WY)+{!i$xWXA?5rOQVfxZ*o|Rje=RTiy(W`ZY?fb zTl-!2|9U-NyU8`fstuxGFvUZb0DHYvNsnsoQEKxN@pi zVjjcgm&$P&%(m~%^YOprIoy@$>65hFshTMt;z~=zAzT>`!y3c=CBs$akEfU0`n9b8 ze`I?aE^&};-SwhV=G(%G2}HV1G>&`gXMU;|l|)lb1%F0*hBfu8Cu8_A*9*h*#Mid} z+)r}Ns5C?P?N;`YC8-J^8o$&R;rh zt=*4Q`sb)Y$ty}gdcHx%=9;&E(|IS`-R2k`5r2w2!{ztI5nI1WGz8t|Oa5oM7)=qmh|rSk+be8t zlj<|t0;6>G^=G!y1!0UAqiJ3IuwCYfz8cC$^9({Z-;UBywkVWdd^cqRzqA>gR)*BS zh{j#?yD4(2SzIXiA{K3WRBwFLw?WClY>oB$a!f?nQfcerhp*1OMMm7*R5+kUnGu2C zB6qwaQ*#&l2>t8cmmMlyVV-#_KL*(l+oaC+D%ivP#$5DL&2>RhP}6eew}Z?@yC!P- z5nbhl*~Wvws4==x3PlBY(PC5wHn%Xe{q+rG3PjD0B( zTa%+i$x&!>)cx+?z2yeUiP(BkAN-+wv2Wby&%@;68#O11;aB$?HwquB znBOKd7rmKWII#IUo|5^Ex#)a=HS*@B|8FE20LlK}A3l!0_jvZb$G7i2mcB1vC;Z_! ze+{$A@mA`u5Bu@@I--HO>(24*dybp$J-&VK|G(CZ|BwD>Oi10wZSaQI Qh5-mXUHx3vIVCg!0Cs=HZU6uP literal 67459 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

K@La*$u`q6rMwJqr(#|(In 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 diff --git a/articles/tutorials/building_2d_games/20_implementing_ui_with_gum/images/title-unstyled.png b/articles/tutorials/building_2d_games/20_implementing_ui_with_gum/images/title-unstyled.png index 9e4ad98702399b615c107e5de70c19c0a1268d78..a4131a1f90efbbb0ee2ecb94560fe86d135d5651 100644 GIT binary patch literal 50881 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 literal 64353 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

r}shbwObDvebzps``7w#@V!jF zPUxY73%W0QZwT+b7_K|TdqGxMS5V7cjx-+RnLS7;U9F!6#)x~g2Dom9u+t~*NzLec z;W>QeChk1IgEV5Uxg3eWE>#6>D_VUIdcfk4vC(3S&^2@Gczc!byhf3BU1}2 zM5F?)@F$A}prfg=1@sUE(hRGixy}yvv6tG9Dh(PfW|xguHT0_8nb2R1jGsCdS?A4# zABNIF+Kx{WqaJFT7gY|-wK{x7W85+q>6OqZ+=q85)&$fFY$>>NGv9f@;bz!@~G%= zHhwh6jlB%7zF}JYU@As>CCwxI5LflL{caa$!TXj8$Xobg_ssU2iK|SPM{Ybi#D}hn z+9E)+fMyUJ#Wj$T?SOIeHo6pcbWHhT5a8bEeayZZ zOXw8yrCA`Y<+xXu{^Q}@CWc1c#vwn#WV|Z7FK}fZC_{P%uPrJ7cl%W7)5d0&dg&mzes8Vk z?6-=5s)1dbRg!C(G}HLX?7i?#@>#I5R@GX-CmL7qfv0j{-u6=DR`z|} zne4WSF_x-<8MR(|mxnKpD#X3Leoz5>;C`4Y{r>FXo`J&{9M?2ROF!+XcAsef?b~u) zZLiz1-=IUv{qEieZaQk;s;TZL1ruA;SXdEY(uiV@GfjR|Y8Jx%>l z1qtRp_~rO@;1s4*zTBL2h&A`X_<{^3p++2nK9^Mt%7mjfuSP zI!@GO=tWnZp0ZU7Q0qfDs+q43=N~mJSf_5Pk!~nDv8WIYx>N;j(!Q0si^jq_YicqBeWTPFIMmMrf(9s1L!hG- zC7W@XZ@@?U;z!V>AIuy$D0ZO>THo1w(?N|b59U`}pr`S8+Aj@s8t8qOBd6c z!NYDB(?9H;->+rCk8hfdr!L8}SG2S6AiBy3qeYL%Mrl!Gc+Ir6jfU zqh#MbqJF1n=6G!^&s5cOncSY|Ooy6MV9DQT;0)rRQOd#g## z&|GAn@|&SK8%9Yg^`WC=<9!pMWDH9dY?-Dyff%L01*yIS?H%Xe%l#yYu&Xk+LZyI&$eBXY$iyRQ}1Y-4Y zD_M(6E>9y+bygk`8k<<KNXz$Sd3>C~l{Pl=XvSuCI0p928k>vjG5bG?z2fck zU3+4o6wAWT!J*+>gv*a2G|Vge3fLdc?1uueF8^eNUKGkMcPJjJ(Yrp6x~gz?+Q6X` z_vY#s&or{rT6acjsj0ax2AaM;MFX`j1TMZMuay@)3MLR$uisJ9FYf0D`c@cTjyJJ$ z3#-6cnkj2UHBQRiEd*E?DkAk>9r!ErLSg;`dvl=3U>zVVg$PWb3B3d(x|l%z0S7gn z>1AA_ps|q4yFYh`W}g)47}WZT#+fkx#G&CPPU=q(qUd}yIF{mhe4RW~CkbncdUpva zce3y7Sk|E!!y4^FaU!q6t@oR`ziu$Pn%}l3*oST(wNn(eKaI$cj6|Di>edGiNR{ry^_KD5#v(QNVrd=oek zs*2a@$8+WY{_J6y2yx5B4})CL;S#vplxj$-x{3|VzQW}Ly*zJZr{}K9L9_RRe&)yQ zeQlo^KI6TV%;GiCnE2_o3O$(l444sWKXNgN+#9=CkQ>icX&q(o{jiJ*~DJ7uv32W&So?k8fyf!SqP_vQ7 z2z(vQmE{>*=$sgTe)i!N$e8rdp4>QS99NP?32o;X=~uI;#S68yS-r1Ck+=y?o;LSj zjf6_eqoxy|1usr?-L5kwyT%X`#TjBHB~G>X2DCLYq_#cb5*ShKZ_LyQj zH1*!jAJ35pX+KwoiLkN7AS+_(DTBq%b7|6bJn&%MpZN60QwZ806AQN@2`47!ufg;_ z|1}s)M)sF_tnE@wt(?0-5nPY!72`kdPH^0&7YB3S3Z1XNlNx*Cn6cKtPb@%?h3{(% zPJ<;!Gh}?pdifM}$bs6U9#euePq}&6h74sp^yFSK&&e^r1f`khLl@3;hQwD*Re9q0OaBi4hNoX`*f1|{6hWQWO)GP#obK1%p^59XH;BR7(j&Ir;vM$hTu96k>LpvSS@4|p zZ7aUAcT)ON@sxBfOGDGeTI4>r650gs7a65PoHkapSXrz!Cf6uiI(~J$A);KhJ{&U3 zsf!$Olub)6HQ&>soEEi=X5z_K(#)2KRz*4n-F6R96}-}e-DgzE!d)o3DL!U!sg{NI zffAMmDN>C|itW)Xy`olI?40!yh`aF5!~x`YTgA;Bq<<$@@y4Lr{ zd9(2ftN3CFOs!#L??tkFP#aH|a2wtk&`#9dvH4bf?>N15{(C8XAFlp;s`Tdlfl{4w zfUaX;UO_zQTK6d}jTQXST&?k`NU9rYQkEg*yDNtFCYUHptm5ga$^d8O#1ekN=)8lf z_9&oLu-c2d2AYC7Y$oWR>X;YSbR`*RzQ;=+1KC4!|9){#SN#7In=*DgD4M*7OC#~1i*(;{sW8nWu`WdbSJ+g8%n*dWKasurob6H6_djy$z>v*t zUYQVu10c28?Snxy)Q0uVzazDY^1irx2R+QvlguJ}lzL(viHvI2WOCH_(A5Fp{b?~_<+3sao$NB>z=t1ti3^j1w=Vq?-|C&M02;Z z{kTOm1B);7mr~or`AD4piv`F{(nrhu$PVrmguk8Di0EwnVyN#ja+Cs^g@(GJ!ho&* zHTkbV_DJT9A+O2p4yLgUv6UbJ7-iHaX5Vs#W~j#Lh9>RT)fod$7xRLz z%vc+iSMTT2B`uj&tB&9Qq#W{9l`O;cq*>KuG7Xo+I-)`sg)eOef;B<@UIFW0oc)VD z#a1423~2i!--%aFadq|9*76vOa!y8tRwY;=K?C=>D!Zp^T)%!0dtAX6j~7Q7%>szV z`Hx~VzzOlSk>DB|0n7?t`7|E#EvTKnz_EP%5Z9Z-V%i$#bFU~I^Pff^&4mNMZq0p~ zbQ!a}`4v=&2p40hWQQs0==b3B$FiPp>m~Qa3+Rx9uO*vL$PE}l1mHI<0Mknq>;MEC#kYVq;^cOlh9rP`$q7J(Zg*+#Hd4DI;h$>=UQy%)0mPl?B|u}< zwq_xhXGGiZ<9S|U8#*uA)t(}EiQS0%Zf98V^M~Gp5Zw@X72HIZ1Fj2@w?6)3ojm2* zX1k%!9k$s+^mutI0g_`yw8P-7ZLd6q-QHl$ukMbFDQ{h>)pBXUr2+GU!xycax~6Z3 z@?L%DgZeaoy&C>_SC8SZ9@BK2R-PHz(vGI3Tz4MO_*%lv@`L?(#jh{~A!7i-m|7)J z`^e{}nx?AJK$nfl2~QGI<*#E6H4?82!?Hb;E&@V%$SN5Joo2f;wv*FTsQ$>)>h@q3 zgJ@uWu$hD=04={wmxHWSj$tV@8);B9tKVY3<_QkxlCh{>SxFt5fgF*%5p2L6KYiR7synk_8!?TPs{n%@35R(nqRbTpD7PeT#ge@$VSUrLL zh+h#wYe)C2XFm|2SD|Y*rv~w@XwjH(FYvxjl(%5JBBbe7D==dl%Zs`{3^FIbUZqKA zDwkN|6MJSz=B=-7>INkV^jRg>bHaqa@ybzkp|X6NGzT6_5p zBpKw1k2%-w?Z#8ItMPJNQm`^WU548_aZRe9RVmK2+26cZ_k?j?sYh>s{V0!gboIum zUVUEm0~&YG^?i5{lwTdQiBGrb(u5VQgN2CH$(}DS$m2uzW1Wrc2d-W2M(xYM#qdTa zOTjL_|H=gEN^!{z7WBx3XMw~1&DmvGVMY88h7I;-46G)o%aS@S*?U%xKYm~5xvUPj zWO!QkN%6qZt_n4t)4;XH!{eDeN-0xpTU9-Ltw{V%73sK(Xx-b=_tq3sp-t;Yolti% z=?DOZd`~WW^6Q7{Py6~?dMU~ZD-8h2hmhk&RYbf`_URj!@5ck?(Cgi{IS1O-nx63Y zrdUa&WklfEyU&@5-PYm!j-Xc-CmBCNqx%na|p25vR?$)NOD6&m<`ib!E z(>b7?0z?mTDn%^Mj6le(>`J#Xe z+oCAB`L(F`xS}PhyVbNZ$@iA}A$!xfFo{!W$-T6|oLnHO+@>Naj@M#odg?d~Lpx@) z-`@1J)DFIq1_b?ZC7|}uAXlU=UJ0ljbrF7#X|)|2crT>^$Uro@rDjDxJ>eBH$ZN@I zkkwX5>HPfEg+!F`t*ngMGI$Ib-p@TWd%*w5Xq5kc?47fKL68P?ba>6skb?fo+g|^J z5WUZp)x`Xi=w^zMH{ufSjrA1xNWER{@*Q5cKiS1~6cf(wDj1dwMf*D}Iasm5a;wzW z1ClcMS^{oW^`F_Pt`FfUO2K+0IT>W->nJe#Dmb!p-?XPJ)a?sG89$B-wS3#OG9A=Xs>YXT`J|9w-v5HuqgDI`Fkg|1o!% zD9Md1beVC`y(vm}nZpy(=RI@*qfnlQX%Cg57dq=FfcISG9F5t z$&J>L4J4Y^EC949$j3Qz;f81DF7T;~k-%ZEDohgBySaoZIVlzvHxhB?ZnvTVFNx_T z{K>A%zT9f*dJ!a`R7Y)pGQX*=_d-^3;ZuoT(ar$Lbn#(;%P2mA^pHU(w{AF=nm~Y+Bcp@;MnPuSM~}_h zxFyRHyp2)YCfR3K6g|5JmbcNxCd|0navQx(Z)p`cl;t`ZM`a<_34^~lDtwp|(sW)A zq}>V>jxaonnt{C@Z3So)%S!nAc_GxJE9IyIp|flsucvtwQ~2z9XSdRHOSICUu8FpSNA$kxzw0Vxu)XTm`WFZ+6P8mONEDsIm_ulxeL#wLpV#Bv+q0uy6$e|77Tey ze*9>fPP{5xe=2Wvsq@?O3T?p$fytAC6Sn<&f%R%+m`mVFmiXE^r{NnZCx$9j+Q@x!8 zL}G7SSA^w3+i8Q^6D#Fb!j2k^M-tfaLIP|rw`3O=U%qjFs_xD5J??cAyS*CTNpVGA z^j)j6x@0V`y#m&wX}nAxdmIC?7!K)8qiX@1$FGr@7F_Xb!sQ|2oid?Wn2!eosAd6U>pkmQbIDmMc_jC>k7== zYu_Ni8Bv+EPWPRn5AZF!4sh9h-B#R^WQ;a~zID`bZI9=r@X@ zh3Mj=28&^?yjVFX2f8lm0 znC5NdD181Ohm61iv~$?L04?#y_}N~*dfw4e4$_}+iull){4eA5*eGQHA$o=aIHw=B zMBahf7&CT>ZhMMJ3d}sJhj`$4yZrI&}T={?k(-&cS62i`{p}cmUTKiBOth?>DBR%ByP;RIA|NGlQ6F!asE{YdIZwc6C)K6BCh`Llj zDk3_ls?DoenwN05V%rbv=m<744YAKZ@W+51Y*Ar##}BQLrFOLWPlQCHDhEP2ADW2v zT(Uu&E4b{&MMML;0M7?3Bf&76iagvI&*wXY){3_12JQF-QCzLZYB0;}WLaBU(Xb3S zDd(OzcbwV&i=q_|0LpGxANiiC7e%`Lm)33tO9BiAxI*d&8>;TcN)&^mRC~6yN|Al{Rby~Jv}SiGBe4R1^jC>Wq@495M7pCr9B7+|7p z`{T|$1wd<8+*`n(qkvQ%a|QUWZqLPNhvWS%ShOlJB>-ACFf6tN+gV`PdzAqS+cRt9 z!XW^>_I7)G3A(xK4FtTd7fJ3R1NhcyKsI9Nr7+zC7*^`~DHRu@^1CmsmPDCHN&~dC z&0>0m?NDNGnkLSh7}Vb45=UXQ3eEcqm=L+7pvoG;2i1wt$RO!qiBMPCT<^`z58XL{$0| z=+s#OhCqS4HQ~;pzjVOidfAD{fXdn)mI#z%bA!mb7WhO4ClW=&E=E3uRYqZV4^X1X zqCkQhEP6W&*!tWoff=Sn)rxCSySwzjkLy5ZGcN_t@#s*nH=pC8;B*q4h-vN3Gub1=-E}ZOmh@*XHaudetvE#!Mn5qyh~?8eZC*>PrHmWBF#Sb zW|3D^g(e6RQ9__LfutI_CUMgE0fq~&bds*n(`9?+j6;olbrK58fzKwP zJ*y0Sh;iw=i~(<4vSN>#F+z>jypLMm;(;{oO*gIRk}&|RA-?(nTJ1rQdP`}V4!9%G zDEif3qsBpy17+B?70`#G)j$7DLGk)AUmA~*!PQOVQe{yKv$_WswR~t!R)M^5eV5IX zDmHTkHBp;!+U_={rif&#ro;SqGg%Bz($Yx{T5t*{zCQBc@MUt-gL((k!n7iu>%V+h z6P!^UEPZk?U02j~QUiVFj9Xl*q%NA6`P6PQ*-J!}Pw#?1{nUu^%k#^({`2ei^G9~~ z3_N<=i>H6I@!Pd{nKHpnL5&~n|7yZ|#^8k5jhuuft|uJfkmSFvFgMBnsfBhaQ?vd~ zX=U@Iog_UZ3O|+nA*$>uvGqN+bGZ4E3J2-mw9+E`LkrglH)i~A((W+q?lI^w_+^Q$ zPGTP3wVAnE;nP__=su6~Pc1OhvJ25WrOk-_X{oQjw{y@5`%SC=rJLhr6N&F? zFGX$R{H|UrX@%1z>r;UY&zGL`GmXG2Cv}7RW)rlc879V|zdX;oTh{fVM(Hjh3qby4jaMo@t~NO;bD=TIZVg#iJw9ZLRsv zlb5h*EpXd~o@U1hs2iCE*$vCnX~Yt-L-A8g~-3m2zBDBnY1+OL+11vrYDpaDkXW zGsu`TwN9rPR4u4%-V_HJZR>h@b7w2z+@W*5NYbami<(=Rg>R++W;)fgu6nsmeE7m} z6v%|L6A#rso`An&%+z)mq!7mDAV7LwFP+Th64cJKx#kT>P!y|iqXK7V&!%8Z&s~wo zwTIyCDfE-GwKzz_%M86f{du`<@yLSM6(BtHlcEuAg2;-MWHgYTAX>{oH>kQ4QyZfV z)GA&SgK`N6!$Pi0K}mm=`A`C))yeh#!}o0reqsTbKziV`G)L%dukpFF{Yr$LeS*}! z_69sO8s`L35*G`R?-O|?TtW+j3!$_|?Z!cnYAC_bMJfO#5B~S2h&`QRV=qM|G`!Eh z=WdZqKCplhw~;N>6=wb&NSO?k5xhbU4VJcN{Nr*P!ePNT6b!HQ7((pvY-;TruO&_} zJa08G@TO*of4d50b29K<_(v7p8%XJU3~F1anWXdOmSV)~r9DI4&7R1C{|rP7Cl*(| z=c{7wN%EYLb87B0>U(Y!Zqp*ZoCNXV;Gl`JiUxt|9p3xFl!fU?>$&-5RPHK0i+W~OqH|! z8>QftdEi*HJym8CwV+y11II)Hc0Q(ym9Qd6dqwcZS{^tXF$F111>SsT4A+t%9qT?l z$1!*vmmGsS;&VtT-pBZlO;nA#2^++Vv_&QX$Ix}br$u}?PS_N@BvVKPCpbgKdJej~ zM={9O3)zRYA#VxfA_7|ilRVraEu_i>R*Ye<`3vxwOoz$uzBQWg< zmYwK7Xj=Cin_n)uDY(4K=&R*Z39hS3->k7m9pv7+Td3a~SVfgmY*P z`|zTxRecfL#)6zk2z`|;LKA)S7@j$<@`+IaCPO#vfOojEQB{t%6^6S#Ktc|lGuVj` zu!z9TP~(H{viXz!~|;bix%a`kx5KZiJo>N!sLEz%E=5D@8bM;ZG~@Q z{@!_7n_o!adFE{9iAmxXc#7o0G6ci9TdWa6t?_FGwO_O>p=!_bhms3wlT6;;e15Qt zHEyl2EQywnP%=5N#Uh7i^?K?B+FT`(mFVa-k7!<1kUiMydsbI(`Pc8(h|e~}apMZ2 z^GUs0)1a2}YksR}eyWtlDS7p4csQXt^>q(aWqa*w6_X2KH_quJ9F|y&Qhr=G%)?pNxk$Gw~fl!lLYV3oD%tq+_&w>_?DKPiXS#D!L zFU)-il#l%U)TZTg>3d@c)GMAdPqguqg{vP(5OC;ZYX7e;kIB^ zOz4fw3|@c{5+7eLScarW|JAY9;FLn8;*Tp+^2Y{$TAL@GgY@SGXT#$Ba>muoX{B4V z<8P4i55Petd|$$%IIneUoHDICOpE637Z{=Wa|)5;GbNOi4ozwGkg1JWfea>z0JWgE zI%?+ckQLX8uM4z}P~OlnY6*T$u=|^_yuRi+V+m;9U=zu4Kb8Q0y?{z+6x%#xLCKC7 z{vWexE`o5&6MIept)x~D3$r?EsM0v2l2b@qLXFc%LHX6s)BwTqMiTYD#=S5vI`iZ* zdjZ|>LKpXpiN)e;-T@eyr9@|YdVmvawRdCvJVJt{o{FJ(z$4u)U z49E>sm+2js+DwA!Pmb-D1I38o`xIYB#HDW)Ax>?E^WYZl>hzA4!zeUBo|_K63qiPd z4tyW8U+cXDhVu@}u9;5=b)n(c5=uH-_c*%1_eqKykUQb+UD}|r;uk97L4j&ziazQl z!DS=g;NF|?NGJR#o2aDyRsm-LkH|D03d*-2ArSMVs6B8)j!`G}qdGC=h_RXXR`F%a zg>$#`8JMpFB{F^}@s2+*i>pmE#it+Wy`*;fyQy){I~)fn+?-u4!U^pD7b z0WEG7olb2|zv-=c3i^Oq`)H-=PioIx*8)uODFK(}7$cv9um zw%)jtu-bNqcZjm%tUA4yNT6=)WA}{$e3RtZm2M!$?~`zsraqw_^uG|pK}6p((5_fA zdG(adp6KT5NeRaS{A#;-S1xl zRkE$1<>@=lv?7`xzg;2S1O$-rOXGhkLXPk;1;)E_a9eM~v#+7|<_OatD=VBZ+FzYn z4inz1|C{SYW-@&i_a4P-EiB>BCVAwffXDaJne(vxRK3)aJb2E06S_lQwOFGSJjy+f z#IW_;%mQbBYp45YuT^rYUWP@B#bhyQU4%`VdKwSbVp42j3e|Fx2g5(ckJBTrY{UpI z3zm{uub)rmdX|3@Yhi752(K@7sy#?RNhGA0)yd3)<>`3jxPm8LPwc&oj>EExx0NE4 zjj}#}(bOVK@<_(F#8>7IzuFWaR@qX*>VjL88qp8!5W=JStb{E=b+JzYy_pS1~^wMp&DBcIC|QKn?`D>bNkJ69 zYh7gQt+bB(Tx|t9j&>)4%cF;+e}nJolUi(f5h^KXgn|E>Xwan}_jsz=RtiV|^*`GO z|HU=;Bg^33?_Gqh*V37%;~GY#9rE@0DJh?2JpSYVPe&qbX0X0g8uNbXU8bMmtR)hI zhh<$dazc^&`BG0`S8e^SN~NFRK$;|i>8#QWc;0sSZK}mw>Z7biAz~GJtI5HP4~mwg zZEgH3ZJ#{i%gj$+2dco!+xDCT3sUlQ;Wdtd+{d^o#g5XdUdv)TD^MkrxqPvJc*&dEkiS^KP`1L z-#3HfziIWqbaNOy7F_O`_7Ped0X4R?v!=dWf!uEeDYKK`5sS!)+ICH=mOJ_Rn8r*V zbu)zAU{|-6B)UYWx7gC=#F}zookx1$8T%~kMe3p+79)h6dTs$#KF011y7!WmH#)pH zE*s@@q8Ce|HPI6}iM>C4%L;g=2V~YYmy7fJd*H!)d{^qT5Q}1rd#r2_{Tm1C?oGLJ zc%xG+2C(3{W`C}$2j||@YnyD>!B0L(@U?dezFVLjEm}Y5bN`YEZ+||cTxE_f*?Zkq z{%os!63Hv4A}4KD!;DY%M3(gkDD6R;TFo#Kt9O@bgWuRl~P*KAEfESe0BirfItSxk`?8TWyPSXLVZ z4~I<0BNcDJJEW^%uW1h+yt7s|CvD4YZ}4|QTVO+=9RTBXWKb}_kEi*ZEk3NeP?!b@9Cwq8&(!7 zFDv@!p30@cPG`5>X3{FYT_Wr4aFr6NkC0sN%ifFPVm;Su3`E z23w1{3(sgc#hlGmQ`@2yOKp}@Kw=y|u1d;@(s+bv$#`I=pHCuY;zDxT&*p|+6s9Ff zD5zNARD^X)etEJl%bnD!g8p@TO}W_di;;Y_mwUD7p7gdOcEi&?2n6*aYESf>uh5*t z;A8!1Of@ZYC=tn;?esb=x#(#ZJ;aU`kBh1)rob^D%fP%f@ zgi#KO52NjNh+D4II;q0Cy-Q9w_J8Oe-8&uN3m$yKuhYJ>UOnnM{N0XA=Bs>Ol&OH% zYOcV*ci<&o+h#w5&)p=f!aCh`@WrC5L%l>dm%!c6ZIap@|EJU(uYMlBz_NegrBd0d+ zi?6gTJ56RPUsm~`-)(cxcSGIZ&7tEsjOTN-zzdAuknCSgjJqE%XbWu<+G6*)^&0Co z5h)1S(twCV7iD@&;7>lzliF z7kesd(uU}fFF7bI3Xjq6w(@^ptg?@FL!fg^D(<$AMHboZ&wZ>Q)(>Z$fb5>fBBs&zbA zfy=RKa6U5TZQXzP-mXMUxk(2S7nFHR^E!wvwBj0=w<|;%p?(p3K3jnbvmzC1EqYW* z7A_(Ym$s{@xS?PJd<9|)jM8wf8%V0rA7h&vifTQ*qb)Pn)z#=7{jE4ki!kr7P*Q;T zX7~>I`kAtUS5M7mf%JfJ>UjlErKfp^vHFzTmHJ+LwArwfTrcJIgpi1#R?EglRe~kh zT&gcC^r(zaI`=3>trggX7-$M*eG1P0werl56{e9V~|h8z4eI8vhr+ z&rE9dkaTSLR?ay+<(K@lAUr#GN9}A%QHz<9gZ#(W5(qZM4QXa zGnnR+)|o_Doa~FmAMmwDPVx5k@M_8o%R%!njE%&dsJ^LQ)SqN`)s!B%ml>PcpI^ju zdXlQ@j`gWttT6leV@kX3VBJl1d@S)fGsB-h*0|`7Re~RD_)A^}x%}w9MCS;7iq$Y|{sEfcQjrFIgLPaKVEGw6Z=XJ&|U+_x4yz|QIT^n;R z^!XYifoJ~$5X+{tsTM~l{YkO6NeiinjzuZN?in*e^fO(0@Cd4T*Plkq29;U!RRlhYT$*6=U>-$A;9GIkeM9b zF(dN&&nu&y!gjP;ua(xFEE7}5e^ab!-Fd0_ed0vF3FyoFLICaOodPu)WcqH$bF7DX zwImr=i&?;8HxMF(JOr54%Ck84%muhgcU<&AFmZCNrMKXOx~b>`T>={sfxw4UWNeZGk~%P>gToR3^WGs;;x+#-|{h8WXApxu1e0SmqvG&RAqWAB|UeNxAar6b4Tn z!#SG>d*pTdsac0dFNvM#SE?KFN5{KZgo9L+UYc|iU#)){9Bd_llLd~=#FXLJGFAS>j08IPF6-d<5m?)U*fhstSlct39dA4KHLIS@9vb$CBC3& z9YL`kx>bErl4yK)M7ZJY7ha>jR|%ymH+D@jY7)`1=6?>{kl6yaGwxozEBE<)j?!NW zWL4Ro_%Z`CX8Ce8!E0P0k&Ub^TS+3LVoMp(dG!veQ`>tk_Hpq5km~J1>-2R2UYDxp zm+|nR7Cq69A@KRS0C2!|eJ9l6Y-CTj>)Wta+YMe?mpg_+tIhg{szkiM5Qe8Z7R>q+ z3qUBeDXB17f{fVS)JMNNq5kC#9U3Xo(~~=N=#R#k@v&_m%sTSZl&I*A!7L@Och&8* z5SyU%2}S;^n62{!90Uu@&`_YVjcWBmasZwjQ(6=c*#tr?r<=Y^0wCta^wtRC>hlE9 z_K%HbxH0YlSp_PDiHLOw2L&nHvXo(zz`hV<*{(e}0_?fKm2}|BHY8xF3oI+;pi-En zBI0tu!UT}?Ek0#X$&+zdA4FEkOUYTkC51*O>122Hv5agNW0p@Bhtk`rW`owMwZl%G zo+GZAA)nQ!J6q!Ex&Wk2ay&G#ko=vv*4Fuw z+V8WqVzyc5$CBALpoE`mW}9`+|5!BJEIs~X)j&w|AJ+M}*1q_grBn6eATXEBOoQ3o z9`>=po-Cg?4FE2_~2MB!sV;;xK4IjkpoX5KB z(F|71JM06G|A_4|;D*5BPEmk!o4T}w*#o@10l4w!O$acfsyLjL$@UZgl3nH`0YG(} z8VT*K|M@$hl_JRupyIWc;;u#34xk@x@1rh{2H+STfr6fFn@pgfr!sFX#~gS!2DtF? z@4lY^E}Y#|D+qVN?-PJ+M{FJeFn4&&(9sp!Guu_?Lr4So!?wZI%{}%4FUJ7*F0#T1 z5pO?!j>$#!faTFY9GbY|Fe3OWrBM@{wW@1a!B!Qi9sSi8Ep$ z$E}3|Y`I9qOQcGbdfc{2nO{yD3EnL z5&%AzD=iS|0ks8LVn!pBOcvu>y_leMG?_19+Pz_2)=iYtH~ zvHE(CL#Bi}t6i4s$hy)9)*K%e(gi?`ls52f1lt00Ma@QJ>hBe|>nCyIZ6i~q5FNRt z4|^q}q*^zjJ`xNXSKwSR<&fNZ{gnBTEyyB-qz>_?i_bY$20pFyTdEvldx4O|grWt%)z>VeMJF;fz1K z)aMwS;Mn9t4&7d2D%}uH3f&GrnWryx7d48=(hNf~6BSR?F0=2$b{sa~@|dtv`_B33 z(lq{pPt8|xG~qb4|7bQ)Y%}~8Njh_O646-GB{Y3xR9C;!mq$t_P8yQ)?|%EpKb~V_ zua)ikn`@sk<~e{QV||Z_%vW`wenT<;e+w@>0C8ma`YfjFi)WR({SM&;GT@N&TOiE!kD;@vW2fnU3o z4ONKw-;3k^8@v5CcKdJa_TSj;zp>kYW4HgtZvTzl{u{gfH+K7P?DpT-?Ja!w-`MTH zvD?3#SwHv~{>E-^b3*<99J_5VLsYt4Z?_Jdq=zW);8?zoGtXEP?JFq#$a2b0e{Hy+ zQG!LM7Y;D=Zq`JSx7r+r7bgL~!V{|FW->1x5d&6^fn_oSVlvrRF8yOXKXL}>$?n(# z7jqR^+sPpaU2jAwIyoiSTOBlyB23_epJmfOEmke&D4)X9+ z7m7)Xut?}jBOsgD#pPpJa`}%V@O^b)#NzV)} zjh_3!r6z6`o-R-CyW$W$_Ux?KEc|pg3s|oKN;x9?B}%fCP8}f#;csSlg?L$d2Kpsd z^&DK>*z9XGeJ4&;O*h}Vuibjbb#6CKP~`#{TiA6={{)qAw!Q8+ckDQ` zJ-HuS9N7@6?Id!VexQGISygGq(WAukj9;vy*c;4F-M-TLe4F)@e{1&gYkoOO*FmWm zwqhX8UX5(DQfKqCA{84`Je!p~9OHe>>gMqIkLdZf-)wDtPX>J~-r)fh?pp=L6>j7a zKVUuIJ=DRIV5XD4zAVN*Cx%k?R`~izlDwJQ&y4D<_5PlL=7vo|k5I%;s^C&%$-Is( zxnDDPsn3eopcb}jL@sP3)unrI`>cYVL^l&09`u)xE1Ssr3PrD#<`s~f#LnZxyyCs} z&?00yQUgpcmU871IpG)A8hJ z_V}K;g-CY@dEjxRlV-@of=lT!vQvAHE7$d%>j<1G;wk6u@t94@=P?wff9;7z?BQV-t_L84-2}&Q>Qre61 z`(;e-HlY1v4I6g$pNOudMN=YVrYx6nCRSxNYX!C-X+qAXcERK|h0EM#OT53eCd~Y= zm1o9CFJ{#05c?Cq-B`I1)*iMENUdw}oBgMr_|Qt`W}zAAK9ZOnrThgBe-UFd)3~X! zz&%AbIL6|Rj@om`>*oUBU4VPUJ{$9YTKf*DCX?vj6|t?Nt_>-IE^QS7sZs;#3L;Hq z73nHMgwR8alq|Z6N)wQh2xOI}B1EKwKqwZPgk%LI^bQe2Xn{Z=ByU1lVRzsEy>s5v zb37jSzL`6>&7Jvv_g<44kW9A>E>AAjKU21KEp*&=`xDcLYZp|iHSfr-T^4onCeYsa3$W+}AEy!!_{lblK`=+*<$D+Vxpsz<}vX zIpfgU`}*{Ec(=#i{H3f5v64-lvpUCJyUe`ymI6_ zU>^6d>#acd+5CAd6&AFoLB)?^w|9^})fwEoYQde0qOHRffeE+odz{j#yphv%^x_&% z{d0)5W6GJ^9owXkgvFj$2% zTVFV&T=%i!J5JlQCTYF?-|Je82@ak=rRZAuYx(!*(C5Z*@9I@d^5o&BNeKl!FDZ-> z=7Nk83O_!AD6&_MRiVhNKeFn_Cx-MpG<~`#9V1q9^(;JqI;Zx{oD*DzKF0?j@acmwul8(Pckkx$ib{Qt3PLqzm{RG8Ex~7Ag7`wsBV$b!H@6%2u$v)NvzXUvToOXZmv|5 zNO<&ky(Y(JeRN#7UD(hQQul|>2ia`4w}j?S*H={~0#1LOJ$aT;iORN(Jsu=-ikl0N zz8m6BW?m}_50Nmv{SJcYPaa1sO?SjDiG>F>H+y|z0K?f|*DQ)ta8puy1O?g98 zU;Fh--eeYg2PAuC?W~+45dA(69idbhwHw7oYkc4uiV%l#re`|0D?>^p@7=@9wY(}1 zLi8VBW$=XxDSV7Y38Z#YYHDB25$w16#G1R9gYW*qRNf53hUaj5$p!hR6~DwoV2{lE zcdtN}n+jYydc{qTcOR8qv<|o?S*vbgnfR)%Hb6 zE`gV$FB~)b1Q5;I6aD^w!<>B}>vzG6i1Ri@*l6*6V94k#x{7>t%4SQvH-TYt1*8kF z*qZaofSX^I_jCft-2Txu%d!YWDbViP^w#Ca7_I^ThHOa4JPN?SC#y#2{{SAtQS0ra z3WoE>NC!8RLqg728+1`%I0ir7u8mMrGHj0nXhc&`XWY15p|VkB6977As+Xm#2NZ|M$E^>;0_a!9 zn$odtlp3>b0Hn3Z(fRJ{`>Oo-La6?YRX+9BFvpDAv4-vR*Wk znmPfgk|`uqwD|oFe()sD9aH$25j*HWn(!4N(ErdiLi#hIi8uZ0QX<%TvvXnXf7_Su z!fZDshvmAc^8shvoqv_KKXgb+*TGPMlxk^}%vEHI#xXd!+1=R&j`s@|0eEOtl zH=5j1aUbBxEwW*^>j2vGaBxxfxr7w8q!dqKrlnRQdbi|vpl-s|>rAP>JLC=z5VwZp zjP)$e_Q>fXUD!Ppoa_p_5G%{YHVn6FiqR9o4I83jxEH!Y# zH;#Q=b`K}4^mT?b`J~!4O7NmSB>RZANaAl6Ip@A3gf?Nfy47#M$+YYacikx(OZk|Q>Aq_u7H5n{xN1Hl64Yk zgb7a^@VRI5Zu4jcqUb_X920I(2jh*?;)9H(y!8&Ft01WyaPfg2q;1&6x%|{z$Q=#N0m=jK*{Jt_Y zPr$wFVH%53a-MSayC`n$7?0hx4oFOWJJfd8HlRPNBXJ4UT)(T%Ruu5MbS482eK}&d zfM2+sdTSj(8DPX8sU_Wd@Ol~Ji=4QpB?o9-11ocuA^syr;PXD?&!B2M9xsftTgPT2!NsEE69mbs8 zq*mMqirpknPsTP2dIXVWQo4eU_YRz;TcNdI%=S`TK0sqH3CyB%n@l?M|2TMlbGgLwUKXF2=ipoXx9 z%sSk)wi_rFxtR8~r=?SIi53@_H9d#oNt?0HuP&V<7BS~HF3P78avN3kzk`V3f<6tC_w%Q2W3|Pc>*f&+)6%;F452uC; zW!l>F2zcM}L=Hx?$gRUDYEayj?jE!r=PN391@%XiYn7;mX>X3&mBufqjKG*P_^gk$ zpKCSN;+0=g5eoo(D!tQXJ~@Mjam6as#c5-F{1_!e4*c{SnhBS1#l(2Nb8<2xe*YrW zdI6k`DOQadb@@+L!MiNNF`NA7YazhY*uEwGw(o3>&AU8s=vS@9#KW?u#G`cfz*Vap z6`-ZtSAjUd9#F5D4z9 zV!c2bq3B)CM?20<$OnrbmUP>YDoMVy3QHbdviG(4-c%#$6mM`~bUYWGP-sAu>I<)O z^?z3tfW_p#Ia*X2ABeh5W4%o-#Zn(8tbzFEmuoJEp*~+Q{EU)9fpU)DV8rWtZk~%? zx>3-Ql7O;{tKjIGXZ~2@^>Zdc1$}|edeJ_=Wj?@52IVEu<%}1KC^Y~%9!J~9BRGySb3_9)mlvQ{I|}x0>e{# z_}U+iF5!sD8Z$G{TNOgAEkx+z=2-5IZNLYh4GwVp(CFx`4~Z4*Xs#oxuT|J~ukH|8 zRcR-6@k0;y!xV#30scLM0rk^z7Uh{xjMxY}eepH?DG!bejjIUp1(?~_p8>WzZp=U; zMVTj$tz^Yi-vR~FmQ4;V#P~6VYD@Vp9mHrg0&wFiSL`0)E`#lJb^e{Y5N?VK1laY}Z~F3YSXpzD7*9oZW|{*tPEKXgW-H zY+s<$G$i8O8avJ(!hs@*NbJubNrHPxWxL_DVTDDkOk}&xu)E96j+WaQ8Bz?*o5m#H z!DFxR%mCXAS-Cb?e-<0BU)^V8w2K`Er~(@ut%n;50Tspik%By{pj$Pv47JGJJPdbP z!u#eTbQ& z3JZn7+csA~G{z5&`3qISj*ko^epNdSaNeaS2u7(lpH3HDs*wW_>;*+*Dw4OTSdxCb zAocDYMa0e~($U7nvt0B-m0Hqo_L^N!i{5Dq6eHuta9Co+Vw8ZxG3vXdws!d2L-M#-I0!q*K`MUF*$Z;-Fr4?Iqo&_Nb&xwT&H#ncD=sl zKnznX+lX=meok{pAJjE+q2f4$kEgg@;#_xDpTlnIB9=>=E!CYiM8j@E{F~val4WGK zYE0aOdbSh5KhrEyNXgBcvy|hIiXVGEX3pjKRS(**1tj4{9PWre7tS(-25RC)$hwb* z2|$j|Qv6Rn`j9kzi`{FKYHvKpmmo3NuN+wln!nzp`2xj=yc z?NQO2h}UsjI6UHcq>o-qly!j21pR^yhq`*$l0Nze?&V>!$IBAj*gjX%WjH=gZ&e+) zqx*3n!4jS);NV_|90}z%jdP%y9Zh%>WJj-{+mu{t2xWM*+{h~<3f^tPdlGrHT)Remq!Nb3 zg-BM4$i4Cp7UJGM?tC}vzZTx3RvZ-EzF820;w{h~>8aXKt6YS0KR;?jttonEpKBAg zee1rRr5$DQx$LQXxZuQ!hdO+rUURkYwS_Rz3PG=53e~H#l_*)rI#m|-cQ+umS7-%8yA zWVJTvR*ANa8G?KL&O|*;>&CshWY1KOkqDE?=+-4gZJzFHBdH%1Po)}ED{UFBMl=O~ zyb=fElk2HP?-btOBv~~FZB7u*Fu5)g)U(lZg2)TAwDw$$D%$eE=OaV&^=HCV^tJ1v zb{fRE$tGVrDZ~FVvs1di%}pD@{=^Y<@vDko918Kz=iSqZ3ET@%U^n;_YDgt zr9FQHU!eAe`naddgrtUP%QOi+?HA93%MVv}0*S*@sYnxuDnrQ>M7lvqGOEE=6--Cq z*&^Aqs_Hy1GHA?kmY?@L4)47RUI`e_%8OtWnLd55R@^jl^J+(Ll*ymsSX}gb5rM(@ z%IxQt8LtNRCtU!iv!kYOvuMgW;i3oQV12>}DY$%;Ny%(`69Mx!Fczrltkh#t$O?j_6b$<9euf*906m zBvV=Tab^vKh^E_uC&Y&hO)$*|l+1?B(=-xtq^UOmA<1>R4MyUCCeeDZlJP~A1h4KE zp1BK}9_-OPz4XB=ApHdS-~#hvKw2naPr&5@7du}9-`+`hWtp5d%rAbQrE2~FOddzufv=Nwi4c0UzS3s*|XJIeVPzKGF6$T2r zHxa`Smzrb>?-Aoz&9|Z)v+H=uE&-h~V>E_2pf&=g4Oa*1Mmi?reA~eVK3ptS@HOw0 zSS%3=#26;<8gFHVMYYf{=d2mm-3_y{6>X`6_K^?TagevneejzLn@)zVaW%Lic^)NX zc##<~5)BdUKyM`b6I z%%=zHwk>&rQca$+r#aV0Act_p)N6`{EAvzQrN)m}r|SZ> zo~GJ<(0YJ|Bqy@o#5=Nu8}fh)T=EKL=)`5JCUUW#f$Y<@1p|4En$`JX3z=7)7BFh) z)>E5_+XID(xqIz&x7pHW$m%()bZ}>;!T53T%Q>E3osKEYN|NZw7p!db_VEY zoV#t{Be>ui9fM1Q?M!=6qYnO*>iMY01-hg?)>CHwr%WK)9p>S+>eEmXF_J^X(4J@R zvNj(Ep+6~pE#H9qa)m`EiNH zjaZq$2IGyzN%20kcJt)YRvkl-MzsJ8(RkSqW2tK7zI_#6NJ%_5fg8k(-9ZNh6yE108odkAmD!M*j2=1Kei$w5Q%rN&el~zYcw0I=bK+ygjy}s8zdOt-)}PmiXnZSrisYixf#59ZmwcQCWiAV^t`KZBt~H#X zGJYOn;kicZl)_Y)AP<~nIX{H}H#lQ~d`Ya@rOZ67J?h>OQ6~~8d$6)%lhC2MBvlH6 zHiK!I8Y(QXy7uS;TSLGVzEut=06ea&_^2 z5thn=*5=)oIZ!P!a>?yGDp7^GDuUDuGg@#>XY8x(AZO(FkvzPjLbFu3>OsFb;dI zbMGOPkRTAT=B z{wDP2j^2#UhiMQHV({md^iiXZ33p{259q4;dhlm`dI z;!ZTx4>f$?Y{8;vkEJK0bU{g-5315#CCq(Pd1efDHyj{|KJhndmcDcH;v4q}TCr)o%a#UyI%u;rDh-8=oc(qEr@P-`;*a z>iTF(o&gFsf|g4>ERvmJs)~z7yZbR0F~LUPOZkI7L&yE&K`pUr9JaOV)_@4cN4ogH zHlqIFloLx=eGP|xgWDh9us!Fn^@cy{lT(ZPAjfly32 zq;VQ2kV^kpO1Zs!d^u+@c!t6qT%G|!!ork?K%D9oCh9`P#k>h}4Pu|m!AT-_IYX8BLRx1Bqjq5&Aub>t;| z5bytMe*BP4X&t-&WCaM$<#i^;IdlF5ii@`cIG$)sB%4i+zy~331x){_XJ(d`zd5RH zDEZgj6w8$Uk4JHoc| zN7-|_g)(W3D8HgiLUlqZ{m*O0r1-0O4MyfoGPYsPuGu<;h0fiBm=+@~O8iv%uA1(P zv)x(Mpxx2@Pv@XfZWGLDceg48$s?`o__T(%I15}U6}x(r(6&E)-m_D6in!uQ&r!H> zqwFh%K|-!QZY5$@{+e^s5kI7E^vE8ZP%nj(3YE81>rS=iSxrsFPHHH?O=0$TI?oY< z&f@*Hb*AWPx-5S^N^uh-SAqbw^xgJqpPdZ57tV*GlfN9@lAAKgt>P|l<#Y?o8Km>| zREsYJaSa94@uS1Z{k$tn6HJTx>x;Cjxw0eZxl+afwW==i28MXt@*YHtwMTs!Q=B~^ z5xw9eB^gMI*Y_cuM^t&|?yCTY_z5(1hRmaodbuHJ$^07Tk`pz=A7X|VpDcdTq1k}F z2+!Y$U&3?v(On%8n_F&0bqUy=$b=`&-f^4A{*jPXE7v!aQd=54Ozi*xum4@ah!L^Alv^U~SA65Qyp00d`lmEP|FyhT zkK3`?U-C^L(HSInqqhcJ1eJ@yu~#jS2S*e7MDmMr>+X>I>q53NDth-Xu8$T{e{g~* zEeBY&_bQ}u(V}Ul$3nw?Dt5wYh670HT|LdHB^F%p>*#&d@gg%UJvYELXd;*O!bm4{c&4RLZxcy7fY~@ zi}5#(EXnl#TTnvdauih3ymg-rGgEOXgB@H$D3ct)se!y_;yLI;H)eD=MGUwAm7Bkm zx=mad3eZ=&XX4efw~}Z83OR#)TNFP*8DvJl+b*B$&F9Z;%URj*Orv?=D5WP|Y5_02 zwIxvRGr#7Yj6BLK7u_4hze?2ag7M2+&-4=uqKc28O} zP;C{wMpziUpEG^r-y{@N=;zNu90F^^BcbC#u6M;}I(oZ1(o{LCEV|X@pF`0fpUYtp zM|*f#=46}F0;bQu$!fPxYYW8WfhJ(p`Th{z7a;+DD_qb2^Ed(~*T!#%M)w2;7E~iw zl_O^%cSdsLP=zW6wYbz23_n$cn!&zB(sP-s~QBg(y2@H zY{=@6s)2I!cfz1P4<+IYRULGvf`}nRLMOqOH!IT5kN-WiI!u@O;6whC`7!uREwTV? zoj9)B37n{JbTsJEm4#oGzg~l#QQ(_uPzgxYVMfE0*VN0PTmM?nx16km{H^K#R&P>! zv`+uT@r?2X8=Wa}xlCT5v2laD$G7Rc|Bu89nDpMN3LN?%XV4{K4eA!bbp~ww_V1ZH z9*QnYU|x#^C6-{--{8rhFPC^UA+mC=+1gAF`qQ~AgJsKi7t#JrBQ?hOx_NS;c;LrA z%k#mr_}hcJR>UYb&++K@w|>F$n#7F7fM!^Jq=i-MY2@_VX+0Ox9g&zkR4N6E_LLv; z?R-CHD2}NDHGG!2yb8_iG?)156Vli%VYbxS$}G}ZB&Z&Is)&Zrbs%peFe=pG6*%LD zG1W0F@2gU9i%m5GbQ}RqvmUK9%~}uFyHTJlnSv>ptwk;Un%5w!WAn+~=d7dr+~c7b z3aI`L_Tz={K>7nGP+91s|0pPvWW3T>ThQrO|(Y3K16IZ&+#v5KepJuq^C#`}7RQBCx+b@R2tP@*hB* z8jn&3%>tLYa523|o*lhN*SnU{iRB#S&ngnQ^NmNZO=T^<&Ra!={pH}{9nFh3#V-Wj z$Nre;Qn1oUtHSo5!#`#~4IO4DY=i`<@mKNmavK3lyD?2{L^vbq#tY?6wScTGVikMs zg8TjLGtIcUj86eAt*dhGWopAbctxU2xSyw)rZYRtRL{?3=tLfR7gF;NTwT>x>MnRM z3Pjy6<8YUAp)27ItaO`NMYEI}I_(P*Jp{2|xD{nupWFu3-~TY0_J`R4KHa$;5WU9^gJ-F=2=Dj&p$FdYDhhdy zZ}vtvVKC=2giU8HMq|RQ0-N0KsRvT}ZJ;e*XA=493V-WN-E)!?Sz-ILS#Kxb$(>b~ z!sb0ZxV2F4aCn0yV`%T_G1Ls*_pS86Yx`s6?E_yD!;bsTD$dn&bz2M^c8=5xnlR|y z{Xs8Z<8OBavm9G+lsa@oKBtomE0vfK4fQKm;triEKkpQr+C;>u(=5WVMJ(2k3ynCV zLM7tn$pYP5o$O>_N~DF{12{Qs5y{3Z@I0HM%fEF8ADu9WvN}S7I)%eiESpjtP~>^0 zre&O03-$n2Oc~;mVjuC&5M@MEhdK496`e%%bhaC4Bl<2nDi2#KyH7~KJxp3~>L%?2 z#;HGqB0@p;Ax#RRTJWL4qq7HE57LNNBwCz=vL<7E;`z6#grf49 zL^SiYJ8SaYkPydtidb#iRevz3z2c;LbU)RaeykWLO|woOf5TLdlhM0o_h(9B_5d3! zA1RH!^BVP#VS^Q-Zl>5=&vmKRhI#u7^;pNv$dP<=g|aHqvc$^`EAwcZ%YLM@+NM~| zpVVo}7_S!MN7=bfyE9{BenVJJuHszHL3Z}DirE=x)Tx$15&3~Y*xT|deAD-7wd;kT z!NbZVG)kRZIOi2A#CToT?HI&c`P^g|;@-X_-H~J4cHiPdWL|mD!N?zC;8VO>ppXGT zrNsmyUiIMJ$ama%_1_SKN~s#&mT?}7D}x^%rYwqaM|k7*<5S zlXOUszul2d!)7Jt`S{U#sW12UqoB?$gUTAqG|J8qJ_(2P9b_Nl$Ci`)b|_&CmZ*me zIJJsFr}(!Lw+~v@tCPK}XIpLtSJQ3kkyt%6PJQ9&GIh?AvtzZ{8I^293&Y>__SPyF zT6LyoqsY*e7qU@=Pq!o9DS*>fP~ec_EiW;AL_UNe1T_hV>j>d$P}&>#7<}~3A&rJ* z&K9VX-_B9Csc?zVaV6fOlsUeoj86<1Td56vCf9~!3?W9=$z=NKC>Bghgj@ABhl!Ky zXJ45IJff8meEh?k+M~Q-@f2p&!Q^S7G<$r^K)Y4N+blVE zN|b+$<*7esvS&^*=%JRmY-W`B0Fz& z%;>I|(vz#Rb(9SvO)C$&?%?=~5u#fs7w`i<&6jiR9iTPFrOX#)#p7<^(Y$gym(Df{4E5&!z}jXqH+MG(>;`N$ixywmM=7v@FH8dGa= z=oEE#D^yTf$4zzNmlTJroM>eheCud_I4ZRW9sGop*VIyjVr%fXbly{(8$#|?XH=s# zoN}CoXTH1!1ggi`Lj|uWNt|eEx}waOcWL?QR&a71Hh;S;>Zha;=WG-rSe3T508C72 zyBAN~N}MkELL`)47CD(=bT9F_PFUK1Sz7QYmuNumm+9fbA zwS$jGAI`qb-(v65`0E~={b|FJ?gqV@)eDRu4T>Y46f;>%uaNC?v>-q8$V3j7=LVNo z8k<=+Ff3?M(MvRm&=VZGmf*ueWwt7YZEpjSQo zW9%zM{%e0j+{%;N+D8w+iTPbIAkB#!B>(*W^4rV9P!I4{yY2g+hxM*WY;c&+Z-C6o zX!;qfOvQURREW2jq_uDJtL-_l*`s+BMLr994zJR6SPyKCz!RKUqH^`eu9DYwbiZh$ za(=BDTeFD6CnP2~9I8iRy<_HY0_)z`9pJm6LV($EZSC52x1Os!NVu49zo;xillea7 z@0A1pHD_;y0GKoy>C(S{?W7am_(DWncSx^!|A){>evaYvb==dtrr$e7 z8RxuDkAyIj5N0oqta-8W;im2$?!Vb6xPc4qK2so*P>mw}wR}YUZ~4eFGx%-KD#HLn zdtd+8nwIzoT|8b>zII6`6t3-1+q`$p+rL-p^HujoqII|<55T7L{o&-xJm2xp#e+q# z>E8Hc-%mJ&wNLLp{FpDXBIM*|kLf%Erk(NHr3h?dKf9&;pMn+%Av)BrnRItC(3SsI zwetC`9~0L;+Ir!?2$bitOS$IL`itEYabnhM$=CalP{F [!IMPORTANT] > This tutorial uses the Gum NuGet package to help with layout and responding to user interactions. This tutorial does not require the use of the Gum editor, we will be doing everything in code. > -> Keep in mind, that while it is possible to build a full UI system without any external dependencies, creating a layout engine is complicated and beyond the scope of this tutorial. Instead, we will be taking advantage of the Gum NuGet package. +> Keep in mind that while it is possible to build a full UI system without any external dependencies, creating a layout engine is complicated and beyond the scope of this tutorial. Instead, we will be taking advantage of the Gum NuGet package. > > Gum is a powerful system enabling the creation of virtually any game UI, and we will be covering some of the basics of its use in this tutorial. The full Gum documentation can be found here: [https://docs.flatredball.com/gum/code/monogame](https://docs.flatredball.com/gum/code/monogame) @@ -321,7 +321,7 @@ To add the Gum NuGet package in Visual Studio Code: 2. Choose `Add NuGet Package` from the context menu. 3. Enter `Gum.MonoGame` in the `Add NuGet Package` search prompt and press Enter. 4. When the search finishes, select the `Gum.MonoGame` package in the results -5. When prompted for a version choose version `2025.5.1.1`. +5. When prompted for a version choose version `2025.7.30.1`. #### [Visual Studio 2022](#tab/vs2022) @@ -332,7 +332,7 @@ To Add the Gum NuGet package in Visual Studio 2022: 3. In the NuGet Package Manager window, select the `Browse` tab if it is not already selected. 4. In the search box, enter `Gum.MonoGame`. 5. Select the "Gum.MonoGame" package from the search results. -6. On the right, in the version dropdown, select version `2025.5.1.1` and click the "Install" button. +6. On the right, in the version dropdown, select version `2025.7.30.1` and click the "Install" button. #### [dotnet CLI](#tab/dotnetcli) @@ -342,7 +342,7 @@ To add the Gum NuGet package using the dotnet CLI: 2. Enter the following command: ```sh - dotnet add DungeonSlime.csproj package Gum.MonoGame --version 2025.5.1.1 + dotnet add DungeonSlime.csproj package Gum.MonoGame --version 2025.7.30.1 ``` --- @@ -351,11 +351,11 @@ To add the Gum NuGet package using the dotnet CLI: > You can verify the package was successfully added by examining your `DungeonSlime.csproj` file, which should now contain a reference like: > > ```xml -> +> > ``` > [!IMPORTANT] -> This tutorial uses version `2025.5.1.1` of Gum, which is the latest version of Gum as of this writing. That exact version is specified to use in the section above when installing the NuGet package to ensure compatibility throughout this tutorial. If there are newer versions of Gum available, please consult the [Gum documentation](https://docs.flatredball.com/gum/gum-tool/breaking-changes) before updating in case there are any breaking changes from the code that is presented in this tutorial. +> This tutorial uses version `2025.7.30.1` of Gum, which is the latest version of Gum as of this writing. That exact version is specified to use in the section above when installing the NuGet package to ensure compatibility throughout this tutorial. If there are newer versions of Gum available, please consult the [Gum documentation](https://docs.flatredball.com/gum/gum-tool/breaking-changes) before updating in case there are any breaking changes from the code that is presented in this tutorial. ### Adding UI Sound Effect @@ -385,7 +385,7 @@ With the Gum NuGet package added to our project, we need to initialize Gum in ou First, open the `Game1.cs` file and add the following new using statements to the top: -[!code-csharp[](./snippets/game1/usings.cs?highlight=4-5)] +[!code-csharp[](./snippets/game1/usings.cs?highlight=2-5)] Next, add the following method to the `Game1` class to encapsulate the initializations of the Gum UI service: @@ -397,10 +397,10 @@ Finally, update the [**Initialize**](xref:Microsoft.Xna.Framework.Game.Initializ The following is a breakdown of this initialization process: -1. **Basic Initialization**: `GumService.Default.Initialize(this)` sets up the Gum system with our game instance. This is required for any gum project. +1. **Basic Initialization**: `GumService.Default.Initialize(this, DefaultVisualsVersion.V2)` sets up the Gum system with our game instance. This is required for any gum project. The second parameter specifies the default visual styling. V2 is the latest version which makes it easy to style the default controls. > [!NOTE] - > We only need to pass our [**Game**](xref:Microsoft.Xna.Framework.Game) instance since we are using Gum as a code-first approach. Gum also offers a visual editor that creates Gum project files. When using the editor, you will need to also pass the Gum Project file here. + > We only need to pass our [**Game**](xref:Microsoft.Xna.Framework.Game) instance and the visuals version since we are using Gum as a code-first approach. Gum also offers a visual editor that creates Gum project files. When using the editor, you will need to also pass the Gum Project file to `Initialize`. 2. **Content Loading**: Gum needs to be made aware of which content manager to use to load assets through the content pipeline. By setting `GumService.Default.ContentLoader.XnaContentManager = Core.Content`, we tell Gum to use our game's content manager when loading assets. By using the game's existing content manager, Gum also gets the benefit of the caching that the content manager performs when loading assets. 3. **Input Configuration**: diff --git a/articles/tutorials/building_2d_games/20_implementing_ui_with_gum/snippets/game1/initializegum.cs b/articles/tutorials/building_2d_games/20_implementing_ui_with_gum/snippets/game1/initializegum.cs index 53a7cca5..1090962a 100644 --- a/articles/tutorials/building_2d_games/20_implementing_ui_with_gum/snippets/game1/initializegum.cs +++ b/articles/tutorials/building_2d_games/20_implementing_ui_with_gum/snippets/game1/initializegum.cs @@ -1,7 +1,9 @@ private void InitializeGum() { - // Initialize the Gum service - GumService.Default.Initialize(this); + // Initialize the Gum service. The second parameter specifies + // the version of the default visuals to use. V2 is the latest + // version. + GumService.Default.Initialize(this, DefaultVisualsVersion.V2); // Tell the Gum service which content manager to use. We will tell it to // use the global content manager from our Core. diff --git a/articles/tutorials/building_2d_games/20_implementing_ui_with_gum/snippets/game1/usings.cs b/articles/tutorials/building_2d_games/20_implementing_ui_with_gum/snippets/game1/usings.cs index 6b518e38..a4dc924c 100644 --- a/articles/tutorials/building_2d_games/20_implementing_ui_with_gum/snippets/game1/usings.cs +++ b/articles/tutorials/building_2d_games/20_implementing_ui_with_gum/snippets/game1/usings.cs @@ -1,5 +1,6 @@ using DungeonSlime.Scenes; -using Microsoft.Xna.Framework.Media; +using Gum.Forms; +using Gum.Forms.Controls; using MonoGameLibrary; using MonoGameGum; -using MonoGameGum.Forms.Controls; \ No newline at end of file +using Microsoft.Xna.Framework.Media; \ No newline at end of file diff --git a/articles/tutorials/building_2d_games/20_implementing_ui_with_gum/snippets/gamescene/usings.cs b/articles/tutorials/building_2d_games/20_implementing_ui_with_gum/snippets/gamescene/usings.cs index 1ed2b803..78dbca4b 100644 --- a/articles/tutorials/building_2d_games/20_implementing_ui_with_gum/snippets/gamescene/usings.cs +++ b/articles/tutorials/building_2d_games/20_implementing_ui_with_gum/snippets/gamescene/usings.cs @@ -6,7 +6,7 @@ using Microsoft.Xna.Framework.Graphics; using Microsoft.Xna.Framework.Input; using MonoGameGum; -using MonoGameGum.Forms.Controls; +using Gum.Forms.Controls; using MonoGameGum.GueDeriving; using MonoGameLibrary; using MonoGameLibrary.Graphics; diff --git a/articles/tutorials/building_2d_games/20_implementing_ui_with_gum/snippets/titlescene/usings.cs b/articles/tutorials/building_2d_games/20_implementing_ui_with_gum/snippets/titlescene/usings.cs index 228e8dc1..1559f9f5 100644 --- a/articles/tutorials/building_2d_games/20_implementing_ui_with_gum/snippets/titlescene/usings.cs +++ b/articles/tutorials/building_2d_games/20_implementing_ui_with_gum/snippets/titlescene/usings.cs @@ -4,7 +4,7 @@ using Microsoft.Xna.Framework.Graphics; using Microsoft.Xna.Framework.Input; using MonoGameGum; -using MonoGameGum.Forms.Controls; +using Gum.Forms.Controls; using MonoGameGum.GueDeriving; using MonoGameLibrary; using MonoGameLibrary.Scenes; \ No newline at end of file diff --git a/articles/tutorials/building_2d_games/21_customizing_gum_ui/index.md b/articles/tutorials/building_2d_games/21_customizing_gum_ui/index.md index 346405f6..d9db5058 100644 --- a/articles/tutorials/building_2d_games/21_customizing_gum_ui/index.md +++ b/articles/tutorials/building_2d_games/21_customizing_gum_ui/index.md @@ -182,7 +182,11 @@ Now that we have all our resources prepared, we can create custom versions of th ### The AnimatedButton Class -Our first custom component will be an `AnimatedButton` that inherits from Gum's base `Button` class. This button will use the game's existing texture atlas for its visual appearance and provide animation when focused. +Our first custom component is an `AnimatedButton` that inherits from Gum's base `Button` class. This button uses the game's existing texture atlas for its visual appearance and animates when focused. + +By default all Gum components provide a Visual property which can be casted to a type specific to the particular control. By convention the visual type is named the same as the component with the word `Visual` appened. For example, we will be casting the AnimatedButton's Visual property to `ButtonVisual` to access button-specific properties. + +This new `AnimatedButton` class casts the Visual property to `ButtonVisual` and modifies the button-specific properties such as background and text. First, in the *DungeonSlime* project (your main game project), create a new folder named `UI` to store our custom UI components. Next, in that `UI` folder, create a new file called `AnimatedButton.cs` and add the following code to it: @@ -190,21 +194,29 @@ First, in the *DungeonSlime* project (your main game project), create a new fold Next, we will examine the key aspects of this new `AnimatedButton` implementation: -#### Top-level Container +#### ButtonVisual -Every customized control needs a top-level container to hold all visual elements. For our button, we create a `ContainerRuntime` that manages the button's size and contains all other visual elements: +As mentioned earlier, we first access the Visual object and cast it to a ButtonVisual. Doing so gives us access to button-specific proerpties including individual elements (such as the text and background visuals) as well as the states that are applied when the button is hovered or pressed. -[!code-csharp[](./snippets/animatedbutton.cs?start=26&end=32)] +We can modify the Visual to give it the appropriate size. -The `WidthUnits` property set to `RelativeToChildren` means the container will automatically size itself based on its child elements, with 21 pixels of additional space. This allows the button to adapt its size depending on the text content. +[!code-csharp[](./snippets/animatedbutton.cs?start=30&end=35)] + +The `WidthUnits` property set to `RelativeToChildren` means the container automatically sizes itself based on its child elements, with 21 pixels of additional space. This allows the button to adapt its size depending on the text content. #### Nine-slice Background -We use a `NineSliceRuntime` for the button's background. A nine-slice is a special graphic that can be stretch while preserving its corners and edges: +`ButtonVisual` provides a `Background` which we can modify. This is of type `NineSliceRuntime` which is a special graphic that can be stretch while preserving its corners and edges: + +[!code-csharp[](./snippets/animatedbutton.cs?start=39&end=42)] -[!code-csharp[](./snippets/animatedbutton.cs?start=34&end=41)] +The `TextureAddress` property is set to `Custom` so we can specify exactly which portion of the atlas texture to use, while `Dock(Dock.Fill)` ensure the background fills the entire button area. The portion of the atlas is assigned using AnimationChains, which are discussed later in this tutorial. -The `TextureAddress` property is set to `Custom` so we can specify exactly which portion of the atlas texture to use, while `Dock(Dock.Fill)` ensure the background fills the entire button area. +#### Text + +`ButtonVisual` also provides a customizable `Text` property. In this case we assign the font, color, and size. + +[!code-csharp[](./snippets/animatedbutton.cs?start=45&end=55)] #### Animated Chains @@ -215,27 +227,25 @@ The most distinctive feature of our animated button is its ability to change app Each animation frame specifies the coordinates within our texture atlas to display: -[!code-csharp[](./snippets/animatedbutton.cs?start=62&end=102)] +[!code-csharp[](./snippets/animatedbutton.cs?start=58&end=93)] #### States and Categories -In Gum, each control type has a specific category name that identifies its state collection. For buttons we use `Button.ButtonCategoryName`: +In Gum, each control type has a specific category name that identifies its state collection. `ButtonVisual` provides access to ready-made states and catgories which we can modify. Before we speicfy how a state should modify the button's appearance, we clear out all existing functionality so that we can fully control the states: -[!code-csharp[](./snippets/animatedbutton.cs?start=104&end=107)] +[!code-csharp[](./snippets/animatedbutton.cs?start=104&end=104)] -Within this category, we define how the button appears in different states by creating `StateSave` objects with specific state names: +Each of the button's states can be accessed through `ButtonVisual`. Since the states were cleared previously, the code assigns only the necessary property assignments in the `Apply` delegate. In our case, we switch between animation chains to create the desired visual effect. -[!code-csharp[](./snippets/animatedbutton.cs?start=109&end=140)] - -Each state's `Apply` action defines what visual changes occur when the state becomes active. In our case, we switch between animation chains to create the desired visual effect. +[!code-csharp[](./snippets/animatedbutton.cs?start=107&end=130)] #### Custom Input Handling We add custom keyboard navigation to our button by handling the `KeyDown` event: -[!code-csharp[](./snippets/animatedbutton.cs?start=142&end=143)] +[!code-csharp[](./snippets/animatedbutton.cs?start=133&end=133)] -[!code-csharp[](./snippets/animatedbutton.cs?start=152&end=167)] +[!code-csharp[](./snippets/animatedbutton.cs?start=142&end=154)] This allows players to navigate between buttons using the left and right arrow keys, providing additional control options beyond the default tab navigation. @@ -243,9 +253,9 @@ This allows players to navigate between buttons using the left and right arrow k We also add a `RollOn` event handler to ensure the button gets focus when the mouse hovers over it: -[!code-csharp[](./snippets/animatedbutton.cs?start=145&end=146)] +[!code-csharp[](./snippets/animatedbutton.cs?start=136&end=136)] -[!code-csharp[](./snippets/animatedbutton.cs?start=169&end=175)] +[!code-csharp[](./snippets/animatedbutton.cs?start=159&end=162)] This creates a more responsive interface by immediately focusing elements that the player interacts with using the mouse. @@ -253,6 +263,8 @@ This creates a more responsive interface by immediately focusing elements that t Now we will create a custom `OptionsSlider` class to style the volume sliders. This class inherits from Gum's base `Slider` class and provides a styled appearance consistent with the game's visual theme. +Unlike `AnimatedButton`, the `OptionsSlider` creates a Visual completely from scratch. This class provides an example for how to completely customize a Forms control by recreating its Visual object entirely. We do this because the desired appearance and behavior of our `OptionsSlider` is differs enough from the existing Slider that it is easier to replace its `Visual` entirely. + In the `UI` folder of the *DungeonSlime* project (your main game project), create a new file called `OptionsSlider.cs` and add the following code to it: [!code-csharp[](./snippets/optionsslider.cs)] diff --git a/articles/tutorials/building_2d_games/21_customizing_gum_ui/snippets/animatedbutton.cs b/articles/tutorials/building_2d_games/21_customizing_gum_ui/snippets/animatedbutton.cs index 0e579ab4..3d304f92 100644 --- a/articles/tutorials/building_2d_games/21_customizing_gum_ui/snippets/animatedbutton.cs +++ b/articles/tutorials/building_2d_games/21_customizing_gum_ui/snippets/animatedbutton.cs @@ -1,10 +1,11 @@ using System; using Gum.DataTypes; using Gum.DataTypes.Variables; +using Gum.Forms.Controls; +using Gum.Forms.DefaultVisuals; using Gum.Graphics.Animation; using Gum.Managers; using Microsoft.Xna.Framework.Input; -using MonoGameGum.Forms.Controls; using MonoGameGum.GueDeriving; using MonoGameLibrary.Graphics; @@ -22,27 +23,26 @@ internal class AnimatedButton : Button /// The texture atlas containing button graphics and animations public AnimatedButton(TextureAtlas atlas) { - // Create the top-level container that will hold all visual elements + // Each Forms conrol has a general Visual property that + // has properties shared by all control types. This Visual + // type matches the Forms type. It can be casted to access + // controls-specific properties. + ButtonVisual buttonVisual = (ButtonVisual)Visual; // Width is relative to children with extra padding, height is fixed - ContainerRuntime topLevelContainer = new ContainerRuntime(); - topLevelContainer.Height = 14f; - topLevelContainer.HeightUnits = DimensionUnitType.Absolute; - topLevelContainer.Width = 21f; - topLevelContainer.WidthUnits = DimensionUnitType.RelativeToChildren; + buttonVisual.Height = 14f; + buttonVisual.HeightUnits = DimensionUnitType.Absolute; + buttonVisual.Width = 21f; + buttonVisual.WidthUnits = DimensionUnitType.RelativeToChildren; - // Create the nine-slice background that will display the button graphics + // Get a reference to the nine-slice background to display the button graphics // A nine-slice allows the button to stretch while preserving corner appearance - NineSliceRuntime nineSliceInstance = new NineSliceRuntime(); - nineSliceInstance.Height = 0f; - nineSliceInstance.Texture = atlas.Texture; - nineSliceInstance.TextureAddress = TextureAddress.Custom; - nineSliceInstance.Dock(Gum.Wireframe.Dock.Fill); - topLevelContainer.Children.Add(nineSliceInstance); - - // Create the text element that will display the button's label - TextRuntime textInstance = new TextRuntime(); - // Name is required so it hooks in to the base Button.Text property - textInstance.Name = "TextInstance"; + NineSliceRuntime background = buttonVisual.Background; + background.Texture = atlas.Texture; + background.TextureAddress = TextureAddress.Custom; + background.Color = Microsoft.Xna.Framework.Color.White; + // texture coordinates for the background are set down below + + TextRuntime textInstance = buttonVisual.TextInstance; textInstance.Text = "START"; textInstance.Blue = 130; textInstance.Green = 86; @@ -53,7 +53,6 @@ public AnimatedButton(TextureAtlas atlas) textInstance.Anchor(Gum.Wireframe.Anchor.Center); textInstance.Width = 0; textInstance.WidthUnits = DimensionUnitType.RelativeToChildren; - topLevelContainer.Children.Add(textInstance); // Get the texture region for the unfocused button state from the atlas TextureRegion unfocusedTextureRegion = atlas.GetRegion("unfocused-button"); @@ -94,58 +93,47 @@ public AnimatedButton(TextureAtlas atlas) } // Assign both animation chains to the nine-slice background - nineSliceInstance.AnimationChains = new AnimationChainList + background.AnimationChains = new AnimationChainList { unfocusedAnimation, focusedAnimation }; - // Create a state category for button states - StateSaveCategory category = new StateSaveCategory(); - category.Name = Button.ButtonCategoryName; - topLevelContainer.AddCategory(category); - // Create the enabled (default/unfocused) state - StateSave enabledState = new StateSave(); - enabledState.Name = FrameworkElement.EnabledStateName; + // Reset all state to default so we don't have unexpected variable assignments: + buttonVisual.ButtonCategory.ResetAllStates(); + + // Get the enabled (default/unfocused) state + StateSave enabledState = buttonVisual.States.Enabled; enabledState.Apply = () => { // When enabled but not focused, use the unfocused animation - nineSliceInstance.CurrentChainName = unfocusedAnimation.Name; + background.CurrentChainName = unfocusedAnimation.Name; }; - category.States.Add(enabledState); // Create the focused state - StateSave focusedState = new StateSave(); - focusedState.Name = FrameworkElement.FocusedStateName; + StateSave focusedState = buttonVisual.States.Focused; focusedState.Apply = () => { // When focused, use the focused animation and enable animation playback - nineSliceInstance.CurrentChainName = focusedAnimation.Name; - nineSliceInstance.Animate = true; + background.CurrentChainName = focusedAnimation.Name; + background.Animate = true; }; - category.States.Add(focusedState); // Create the highlighted+focused state (for mouse hover while focused) - // by cloning the focused state since they appear the same - StateSave highlightedFocused = focusedState.Clone(); - highlightedFocused.Name = FrameworkElement.HighlightedFocusedStateName; - category.States.Add(highlightedFocused); + StateSave highlightedFocused = buttonVisual.States.HighlightedFocused; + highlightedFocused.Apply = focusedState.Apply; // Create the highlighted state (for mouse hover) // by cloning the enabled state since they appear the same - StateSave highlighted = enabledState.Clone(); - highlighted.Name = FrameworkElement.HighlightedStateName; - category.States.Add(highlighted); + StateSave highlighted = buttonVisual.States.Highlighted; + highlighted.Apply = enabledState.Apply; // Add event handlers for keyboard input. KeyDown += HandleKeyDown; // Add event handler for mouse hover focus. - topLevelContainer.RollOn += HandleRollOn; - - // Assign the configured container as this button's visual - Visual = topLevelContainer; + buttonVisual.RollOn += HandleRollOn; } ///

@@ -172,4 +160,4 @@ private void HandleRollOn(object sender, EventArgs e) { IsFocused = true; } -} +} \ No newline at end of file From 1a6ee02e668f9de25f1389d345a59231ccfe52ea Mon Sep 17 00:00:00 2001 From: Victor Chelaru Date: Sun, 3 Aug 2025 11:14:55 -0600 Subject: [PATCH 2/6] Fixed usings --- .../21_customizing_gum_ui/snippets/gamescene/usings.cs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/articles/tutorials/building_2d_games/21_customizing_gum_ui/snippets/gamescene/usings.cs b/articles/tutorials/building_2d_games/21_customizing_gum_ui/snippets/gamescene/usings.cs index 0f66d95e..c19423d4 100644 --- a/articles/tutorials/building_2d_games/21_customizing_gum_ui/snippets/gamescene/usings.cs +++ b/articles/tutorials/building_2d_games/21_customizing_gum_ui/snippets/gamescene/usings.cs @@ -8,7 +8,7 @@ using Microsoft.Xna.Framework.Graphics; using Microsoft.Xna.Framework.Input; using MonoGameGum; -using MonoGameGum.Forms.Controls; +using Gum.Forms.Controls; using MonoGameGum.GueDeriving; using MonoGameLibrary; using MonoGameLibrary.Graphics; From bcd29ea24b4faae1de4b3f80b6600656df41448b Mon Sep 17 00:00:00 2001 From: Victor Chelaru Date: Sun, 3 Aug 2025 11:28:55 -0600 Subject: [PATCH 3/6] Upped NuGet versions for MonoGame Docs --- .../20_implementing_ui_with_gum/index.md | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/articles/tutorials/building_2d_games/20_implementing_ui_with_gum/index.md b/articles/tutorials/building_2d_games/20_implementing_ui_with_gum/index.md index ce5606d6..7670547c 100644 --- a/articles/tutorials/building_2d_games/20_implementing_ui_with_gum/index.md +++ b/articles/tutorials/building_2d_games/20_implementing_ui_with_gum/index.md @@ -321,7 +321,7 @@ To add the Gum NuGet package in Visual Studio Code: 2. Choose `Add NuGet Package` from the context menu. 3. Enter `Gum.MonoGame` in the `Add NuGet Package` search prompt and press Enter. 4. When the search finishes, select the `Gum.MonoGame` package in the results -5. When prompted for a version choose version `2025.7.30.1`. +5. When prompted for a version choose version `2025.8.3.1`. #### [Visual Studio 2022](#tab/vs2022) @@ -332,7 +332,7 @@ To Add the Gum NuGet package in Visual Studio 2022: 3. In the NuGet Package Manager window, select the `Browse` tab if it is not already selected. 4. In the search box, enter `Gum.MonoGame`. 5. Select the "Gum.MonoGame" package from the search results. -6. On the right, in the version dropdown, select version `2025.7.30.1` and click the "Install" button. +6. On the right, in the version dropdown, select version `2025.8.3.1` and click the "Install" button. #### [dotnet CLI](#tab/dotnetcli) @@ -342,7 +342,7 @@ To add the Gum NuGet package using the dotnet CLI: 2. Enter the following command: ```sh - dotnet add DungeonSlime.csproj package Gum.MonoGame --version 2025.7.30.1 + dotnet add DungeonSlime.csproj package Gum.MonoGame --version 2025.8.3.1 ``` --- @@ -351,11 +351,11 @@ To add the Gum NuGet package using the dotnet CLI: > You can verify the package was successfully added by examining your `DungeonSlime.csproj` file, which should now contain a reference like: > > ```xml -> +> > ``` > [!IMPORTANT] -> This tutorial uses version `2025.7.30.1` of Gum, which is the latest version of Gum as of this writing. That exact version is specified to use in the section above when installing the NuGet package to ensure compatibility throughout this tutorial. If there are newer versions of Gum available, please consult the [Gum documentation](https://docs.flatredball.com/gum/gum-tool/breaking-changes) before updating in case there are any breaking changes from the code that is presented in this tutorial. +> This tutorial uses version `2025.8.3.1` of Gum, which is the latest version of Gum as of this writing. That exact version is specified to use in the section above when installing the NuGet package to ensure compatibility throughout this tutorial. If there are newer versions of Gum available, please consult the [Gum documentation](https://docs.flatredball.com/gum/gum-tool/upgrading) before updating in case there are any breaking changes from the code that is presented in this tutorial. ### Adding UI Sound Effect From a2bc0d06f7a62177a7aaf3ab42ff7b8ffa38cd74 Mon Sep 17 00:00:00 2001 From: Victor Chelaru Date: Sun, 3 Aug 2025 11:34:50 -0600 Subject: [PATCH 4/6] Oops forgot this using statement. --- .../21_customizing_gum_ui/snippets/optionsslider.cs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/articles/tutorials/building_2d_games/21_customizing_gum_ui/snippets/optionsslider.cs b/articles/tutorials/building_2d_games/21_customizing_gum_ui/snippets/optionsslider.cs index 63f4fbb0..2280b8a9 100644 --- a/articles/tutorials/building_2d_games/21_customizing_gum_ui/snippets/optionsslider.cs +++ b/articles/tutorials/building_2d_games/21_customizing_gum_ui/snippets/optionsslider.cs @@ -3,7 +3,7 @@ using Gum.DataTypes.Variables; using Gum.Managers; using Microsoft.Xna.Framework; -using MonoGameGum.Forms.Controls; +using Gum.Forms.Controls; using MonoGameGum.GueDeriving; using MonoGameLibrary.Graphics; From a077bf22f95d9306340d1c571d89e6ee835d071e Mon Sep 17 00:00:00 2001 From: Victor Chelaru Date: Sun, 3 Aug 2025 22:25:34 -0600 Subject: [PATCH 5/6] Upped version number --- .../20_implementing_ui_with_gum/index.md | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/articles/tutorials/building_2d_games/20_implementing_ui_with_gum/index.md b/articles/tutorials/building_2d_games/20_implementing_ui_with_gum/index.md index 7670547c..df47b6a5 100644 --- a/articles/tutorials/building_2d_games/20_implementing_ui_with_gum/index.md +++ b/articles/tutorials/building_2d_games/20_implementing_ui_with_gum/index.md @@ -321,7 +321,7 @@ To add the Gum NuGet package in Visual Studio Code: 2. Choose `Add NuGet Package` from the context menu. 3. Enter `Gum.MonoGame` in the `Add NuGet Package` search prompt and press Enter. 4. When the search finishes, select the `Gum.MonoGame` package in the results -5. When prompted for a version choose version `2025.8.3.1`. +5. When prompted for a version choose version `2025.8.3.3`. #### [Visual Studio 2022](#tab/vs2022) @@ -332,7 +332,7 @@ To Add the Gum NuGet package in Visual Studio 2022: 3. In the NuGet Package Manager window, select the `Browse` tab if it is not already selected. 4. In the search box, enter `Gum.MonoGame`. 5. Select the "Gum.MonoGame" package from the search results. -6. On the right, in the version dropdown, select version `2025.8.3.1` and click the "Install" button. +6. On the right, in the version dropdown, select version `2025.8.3.3` and click the "Install" button. #### [dotnet CLI](#tab/dotnetcli) @@ -342,7 +342,7 @@ To add the Gum NuGet package using the dotnet CLI: 2. Enter the following command: ```sh - dotnet add DungeonSlime.csproj package Gum.MonoGame --version 2025.8.3.1 + dotnet add DungeonSlime.csproj package Gum.MonoGame --version 2025.8.3.3 ``` --- @@ -351,11 +351,11 @@ To add the Gum NuGet package using the dotnet CLI: > You can verify the package was successfully added by examining your `DungeonSlime.csproj` file, which should now contain a reference like: > > ```xml -> +> > ``` > [!IMPORTANT] -> This tutorial uses version `2025.8.3.1` of Gum, which is the latest version of Gum as of this writing. That exact version is specified to use in the section above when installing the NuGet package to ensure compatibility throughout this tutorial. If there are newer versions of Gum available, please consult the [Gum documentation](https://docs.flatredball.com/gum/gum-tool/upgrading) before updating in case there are any breaking changes from the code that is presented in this tutorial. +> This tutorial uses version `2025.8.3.3` of Gum, which is the latest version of Gum as of this writing. That exact version is specified to use in the section above when installing the NuGet package to ensure compatibility throughout this tutorial. If there are newer versions of Gum available, please consult the [Gum documentation](https://docs.flatredball.com/gum/gum-tool/upgrading) before updating in case there are any breaking changes from the code that is presented in this tutorial. ### Adding UI Sound Effect From 299cebc9abd5e9caf520bb07bfd0cd3511978bca Mon Sep 17 00:00:00 2001 From: Victor Chelaru Date: Sun, 10 Aug 2025 08:14:13 -0600 Subject: [PATCH 6/6] Addressed feedback from AristurtleDev --- .../building_2d_games/20_implementing_ui_with_gum/index.md | 2 +- .../building_2d_games/21_customizing_gum_ui/index.md | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/articles/tutorials/building_2d_games/20_implementing_ui_with_gum/index.md b/articles/tutorials/building_2d_games/20_implementing_ui_with_gum/index.md index df47b6a5..5ba3c318 100644 --- a/articles/tutorials/building_2d_games/20_implementing_ui_with_gum/index.md +++ b/articles/tutorials/building_2d_games/20_implementing_ui_with_gum/index.md @@ -400,7 +400,7 @@ The following is a breakdown of this initialization process: 1. **Basic Initialization**: `GumService.Default.Initialize(this, DefaultVisualsVersion.V2)` sets up the Gum system with our game instance. This is required for any gum project. The second parameter specifies the default visual styling. V2 is the latest version which makes it easy to style the default controls. > [!NOTE] - > We only need to pass our [**Game**](xref:Microsoft.Xna.Framework.Game) instance and the visuals version since we are using Gum as a code-first approach. Gum also offers a visual editor that creates Gum project files. When using the editor, you will need to also pass the Gum Project file to `Initialize`. + > We only need to pass our [**Game**](xref:Microsoft.Xna.Framework.Game) instance and the visuals version since we are using Gum as a code-first approach. Gum also offers a visual editor that creates Gum project files. When using the editor, you will need to also pass the Gum Project file to `Initialize`. For more information on how to use the Gum visual editor, see the [Gum Project Forms Tutorial](https://docs.flatredball.com/gum/code/monogame/tutorials/gum-project-forms-tutorial). 2. **Content Loading**: Gum needs to be made aware of which content manager to use to load assets through the content pipeline. By setting `GumService.Default.ContentLoader.XnaContentManager = Core.Content`, we tell Gum to use our game's content manager when loading assets. By using the game's existing content manager, Gum also gets the benefit of the caching that the content manager performs when loading assets. 3. **Input Configuration**: diff --git a/articles/tutorials/building_2d_games/21_customizing_gum_ui/index.md b/articles/tutorials/building_2d_games/21_customizing_gum_ui/index.md index d9db5058..02129cee 100644 --- a/articles/tutorials/building_2d_games/21_customizing_gum_ui/index.md +++ b/articles/tutorials/building_2d_games/21_customizing_gum_ui/index.md @@ -184,7 +184,7 @@ Now that we have all our resources prepared, we can create custom versions of th Our first custom component is an `AnimatedButton` that inherits from Gum's base `Button` class. This button uses the game's existing texture atlas for its visual appearance and animates when focused. -By default all Gum components provide a Visual property which can be casted to a type specific to the particular control. By convention the visual type is named the same as the component with the word `Visual` appened. For example, we will be casting the AnimatedButton's Visual property to `ButtonVisual` to access button-specific properties. +By default all Gum components provide a Visual property which can be cast to a type specific to the particular control. By convention the visual type is named the same as the component with the word `Visual` appened. For example, we will be casting the AnimatedButton's Visual property to `ButtonVisual` to access button-specific properties. This new `AnimatedButton` class casts the Visual property to `ButtonVisual` and modifies the button-specific properties such as background and text. @@ -196,7 +196,7 @@ Next, we will examine the key aspects of this new `AnimatedButton` implementatio #### ButtonVisual -As mentioned earlier, we first access the Visual object and cast it to a ButtonVisual. Doing so gives us access to button-specific proerpties including individual elements (such as the text and background visuals) as well as the states that are applied when the button is hovered or pressed. +As mentioned earlier, we first access the `Visual` object and cast it to a `ButtonVisual`. Doing so gives us access to button-specific properties including individual elements (such as the text and background visuals) as well as the states that are applied when the button is hovered or pressed. We can modify the Visual to give it the appropriate size.