From 7d2203dc0443f232b45365ac5223e717c7a488c1 Mon Sep 17 00:00:00 2001 From: Map Date: Fri, 4 Oct 2024 20:55:43 -0500 Subject: [PATCH] make the mod menu work (not testing mods) and slightly better the mod processing code --- game/gui/button/menubuttons/check.png | Bin 0 -> 541 bytes game/gui/button/menubuttons/checkbox.png | Bin 0 -> 3123 bytes game/gui/button/menubuttons/cross.png | Bin 0 -> 913 bytes game/gui/button/menubuttons/down.png | Bin 0 -> 645 bytes game/gui/button/menubuttons/up.png | Bin 0 -> 637 bytes game/src/mod_menu.rpy | 159 +++++++++++++---------- game/src/rounded_corners.rpy | 91 +++++++++++++ 7 files changed, 180 insertions(+), 70 deletions(-) create mode 100644 game/gui/button/menubuttons/check.png create mode 100644 game/gui/button/menubuttons/checkbox.png create mode 100644 game/gui/button/menubuttons/cross.png create mode 100644 game/gui/button/menubuttons/down.png create mode 100644 game/gui/button/menubuttons/up.png create mode 100644 game/src/rounded_corners.rpy diff --git a/game/gui/button/menubuttons/check.png b/game/gui/button/menubuttons/check.png new file mode 100644 index 0000000000000000000000000000000000000000..fad09ab8485d8efec234257e60ea7c87415f0e18 GIT binary patch literal 541 zcmV+&0^{xAh}sN- z@W#k=X-sK7^46vh2f;KjtRYXDBBg@k<`BXmk-!iKmm6{rA#w;zmy<(9;qZD-?%)q1 z)PL!NH{65&4r51NO zod=CTmgQTg(`lxX!cEUmHXIH|0la!V9vhXkR4N_nPdE6?=kps>(nut-g(Bm&z#x~) z9Z*Sw!QecIUdXx@i^UL?6scCLy!MkvmSyRhrPp^3p{B+m|qV{R%jf_42xDrYj8?Wv_mC=_BeeZLwvmn7+gN@|cwrH;UNhXG6b f*yr=j(D=Rq+-LLMep&Os00000NkvXXu0mjfH&^lr literal 0 HcmV?d00001 diff --git a/game/gui/button/menubuttons/checkbox.png b/game/gui/button/menubuttons/checkbox.png new file mode 100644 index 0000000000000000000000000000000000000000..962a8c42d6c36d60e498675881758cde1261c70d GIT binary patch literal 3123 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 N002ovPDHLkV1g4b#;yPW literal 0 HcmV?d00001 diff --git a/game/gui/button/menubuttons/cross.png b/game/gui/button/menubuttons/cross.png new file mode 100644 index 0000000000000000000000000000000000000000..49b72b27848a840358e3aa08faba8e0d1df3a402 GIT binary patch literal 913 zcmV;C18)3@P)P0015c1^@s6+3dC300001b5ch_0olnc ze*gdg32;bRa{vGf6951U69E94oEQKA12#!SK~#90tyW)1Q(+WerAa+R|Ext|AVISn z3{2e9paL}((TYLsVX+4#7j0rbtj)pxC<|eXjEcYq>7jgS!H_u}C5-JsC3+Ej7zCnY z4jm2|4g_~QXWiM^y<2zJ`Gbqso!>dX?>qN==X??gKq{4Mqgv>2|vtD>^ux&Q>6$h){ZbeEfPPKG>QuO~pk4vXhgO zw*|Mpwzl???q+jya|$b`9Cu@5;|opG&d!ckPynG)sp>PC%oG(WS8ec{9;*mBEN@<; z(VVMF1mW}fZs6AGw=|hd*NS$0hu;#!o{hy~T~!MdF*i47=2lyKd;1Zz!TV=w$Y!%1 z(EfBDB)-w$tYAc|)t)^R5ya~1>Id#Fpf~9bO~B=HsUc>rOu9lH z9UUiY78o2Hya2(LcprmBI2;!2ZGwO}A31TqGHh>Skr^8sQyf?TR(YQ(oiW&5PjRaa zdmEl9(E?ttR|@{iL?8zTu`q;iBw%1FgiTen2n2aca|HkUs2y57PSPwXh7=y$ss&b7 zRy5$WO9K2d7!1521np&jTWxrz1O;q1+eJ<_<)){n`Li0(+1Ys<>=CL0P4&5;NSSJS z^FO}XZ03!G(b3V$X@gZfU^ufH&xz2&U^-f85#YdUYHH$7(vgvo%baT3i$o%7!L3UQ zm%0YHo&2Ce!^6YRc*L!(t@kuXa8Y|#jX)6-6B7!iwDlx=dU~4o3GsMb%SqExUtiyO zF(QaiDCDFIg$C*`7@#FwWlCo?69@$Ei4{Po)oQ%%&eK>63kw4h$lXmiM0U6!zhY5S n`_}1nt#-TJit+F-WTf{GVpkk_jMc@W00000NkvXXu0mjfA!#fHUQ~$bi(U_xR0T$t1Ar1_z$%FKfS=4 zH*X3Vl$Dj4UcGv?n{KxL|9>GmI+~9G1SU?L=t(bI&z?P-!ph1DwwHmQpP%vP&!2nf zVDE*Pm>4bwWKdmQ?FE$hNyE7Qd-?L^cqS$$6nhz@q@)<0JbAK{R<;7csqpY{P83TS z85zNJOG}F*t!zDg`g9}%E&z;ch7TV;Y@~s`$9#NzIB;4F0wpCSAYXr@qNTr&9z7a{ z5x3}okB^Vx!Gi}IsA%z_pr9ZYyq3b^y12O50;u6HHEca`;)EZ5ucE~@FoiFp#6oDc z++$~F$40cpAW%?H0P^)`3he&5ZQC|KSSS(=K#Af0{rjsZ@bPXhFE7$8g@NScWV8Qd zmSzVJ9&`hlL9&lQfR~q-;rjLKi%9e-h}vvoVnQJQ5CBsC9E9(9>}Bxw_SOK} z@eWH|e_6I{nK^B21p;PfW(HuvFah0GphFhv>FLqTUN8Vwaf%>cBiZ|H!GZ-;N>Ky= zuo=^Z6u0vg6&2}XFN2$#n-b8@H=wwkI(4ckeQbq-{rmU#1LJmywzf81?Pc)y_ZJ1m ftpbQmPALTdshKXST^Wcw00000NkvXXu0mjf^a>>b literal 0 HcmV?d00001 diff --git a/game/gui/button/menubuttons/up.png b/game/gui/button/menubuttons/up.png new file mode 100644 index 0000000000000000000000000000000000000000..cd474329ddd23047d7f4123e7f04166e765e7caa GIT binary patch literal 637 zcmV-@0)qXCP)NSm+%sJ_2kV!*-K$$9@eFF7Y$k{1Or99=&`FOk+4W;boKRrHRHOoYdX$6fADa8 z^L^isk8j=#AsR86On-li#p10(p|CZ(#~p{mK?Z}t0oF0QUK{Cj+CeG(jx|iBQsP>q zHk*wMhr^dt2G{S|9(OXC%x(Dk^qevFcDPENPA8d6CI?gn_D*n*-xHS0<+kDZp%w!P z_a1VQx?CIdrh}cc_Wod zr91TBxn0B=Vjs`uu8h~~C8N=3?rhZ{_A|@TO+KH$OD~?=g>K{obV)rP51Z{9oYSSP za_kr6Ue_#C=2NLu?xDyp4c$&b?vvSCOXKtT*jp;Mij*-PkH4aZS#!tba#=+FU{x`5 zqefU$$D$|-NIcXsTQzcS4Yh78Ew0z=_mL#&=ypo2R(raXG!zP%5dXmlsZ1jf2rTY8 z8jU_c@NWafv|6q134$Izu!MHQYzE(`~4f2gvyf_kH>cqbjCqU8;!>PmEBsc zR?_KoPIyRVTESp&^O86gi|yj3q~{1NqTOykyD)1uTS<~Wax 0.0) ? radius.xy : radius.zw; + float r = (uv_minus_center.y > 0.0) ? xy.x : xy.y; + return r; + } + """, fragment_200=""" + vec2 center = u_model_size.xy / 2.0; + vec2 uv = (v_tex_coord.xy * u_model_size.xy); + + vec2 uv_minus_center = uv - center; + float radius = get_radius(uv_minus_center, u_radius); + + vec4 color = texture2D(tex0, v_tex_coord); + + if (u_relative != 0.0) { + float side_size; + if (u_relative == 1.0) { + side_size = u_model_size.x; + } else if (u_relative == 2.0) { + side_size = u_model_size.y; + } else if (u_relative == 3.0) { + side_size = min(u_model_size.x, u_model_size.y); + } else { + side_size = max(u_model_size.x, u_model_size.y); + } + + radius *= side_size; + } + + if (u_outline_width > 0.0) { + vec2 center_outline = center - u_outline_width; + + float crop1 = rounded_rectangle(uv - center, center, radius); + float crop2 = rounded_rectangle(uv - center, center_outline, radius - u_outline_width); + + float coeff1 = smoothstep(1.0, -1.0, crop1); + float coeff2 = smoothstep(1.0, -1.0, crop2); + + float outline_coeff = (coeff1 - coeff2); + + gl_FragColor = mix(vec4(0.0), mix(color, u_outline_color, outline_coeff), coeff1); + } + else { + float crop = rounded_rectangle(uv_minus_center, center, radius); + gl_FragColor = mix(color, vec4(0.0), smoothstep(0.0, 1.0, crop)); + } + """) \ No newline at end of file