From af0bf99f65ebe54d488ee80fcd6f48586365ef89 Mon Sep 17 00:00:00 2001 From: Cyberarm Date: Mon, 22 Nov 2021 22:23:59 -0600 Subject: [PATCH] Render lock icon onto passworded servers game icon --- lib/pages/server_browser.rb | 22 ++++++++++++++++++---- media/ui_icons/locked.png | Bin 0 -> 15262 bytes 2 files changed, 18 insertions(+), 4 deletions(-) create mode 100644 media/ui_icons/locked.png diff --git a/lib/pages/server_browser.rb b/lib/pages/server_browser.rb index 3699aaf..84145d4 100644 --- a/lib/pages/server_browser.rb +++ b/lib/pages/server_browser.rb @@ -2,8 +2,11 @@ class W3DHub class Pages class ServerBrowser < Page def setup + @server_locked_icons = {} + @selected_server ||= nil @selected_color = 0xff_666655 + @filters = Store.settings[:server_list_filters] || {} @filter_region = Store.settings[:server_list_region] || "Any" # "Any", "North America", "Europe" @@ -127,7 +130,7 @@ class W3DHub server_container = flow(width: 1.0, height: 48, hover: { background: 0xff_555566 }, active: { background: 0xff_555588 }) do background 0xff_333333 if i.odd? - image game_icon(server.game), width: 0.08, padding: 4 + image game_icon(server), width: 0.08, padding: 4 stack(width: 0.45, height: 1.0) do inscription "#{server&.status&.name}" @@ -191,7 +194,7 @@ class W3DHub stack(width: 1.0, height: 1.0, padding: 8) do stack(width: 1.0, height: 0.3) do flow(width: 1.0, height: 0.2) do - image game_icon(server.game), width: 0.05 + image game_icon(server), width: 0.05 tagline server.status.name, width: 0.949, text_wrap: :none end @@ -317,8 +320,19 @@ class W3DHub end end - def game_icon(game) - "#{GAME_ROOT_PATH}/media/icons/#{game.nil? ? 'ren' : game}.png" + def game_icon(server) + if server.status.password + @server_locked_icons[server.game] ||= Gosu.render(96, 96) do + i = get_image("#{GAME_ROOT_PATH}/media/icons/#{server.game.nil? ? 'ren' : server.game}.png") + lock = get_image("#{GAME_ROOT_PATH}/media/ui_icons/locked.png") + scale = [96.0 / i.width, 96.0 / i.height].min + + i.draw(0, 0, 0, scale, scale) + lock.draw(96 - lock.width * 0.5, 96 - lock.height * 0.5, 0, 0.5, 0.5, 0xff_ff8800) + end + else + "#{GAME_ROOT_PATH}/media/icons/#{server.game.nil? ? 'ren' : server.game}.png" + end end def game_name(game) diff --git a/media/ui_icons/locked.png b/media/ui_icons/locked.png new file mode 100644 index 0000000000000000000000000000000000000000..22189be3da2b1cacf7dd12a31cb1daff1a123a4a GIT binary patch literal 15262 zcmeI3Z)_7~9LJwAVsHdRFaeE`T2Rofy}P!ztw&eb+QEi&l&ywM9dNsQwq0m@_3lc$ zDP|&Z8WZJDAVNTWp)b@#CMv`rF@Y#k3=&N=Vln1pS{_Vz`84VJ z+w**X-{*Ng&+mD9Z~AhuZP~P{`>Fr{(^^~n?dVfB-&5{De`BY2gwV&Gv6e0!fT^?0 zcLmtJXAS`Fol2uvNE%!(xn=8OZx#s314Z==J4BI5iZO<>vrL(!K;Y(Skx0o* z-DrpTm6aS&4-Ld1(++htu1OHd=arg*ZZvN|OUfX+1*7H-Flv;vlBJwaEUtx9pk;}H zVHiOvI-2EQK7oMH8r2OkD#2F27p>i{ zD6&w;*F&f1s<%nKbq*WLyCj>t$6ar8@Vv|AaIzxH*QFL&m_EVUuS#*VhBDSNvUWA| zO}<*UtJdLL%5lxE`lfnkqmOqvQ7h->YqPdk>O@F4>I?pyXBHAHJv$K`jwi3 zZgeq>u`+k?|6nd*flUIrpLS`)50kp#vTgZEr8CTd(t;9udTZr7A-((OFr}KYEc5O+OB+!VQ}w`kmnbC@xu`KfoDh;CpJ(NLjEzdi74^!M+ zoDo!#Fx=@^&|RvVCj>1mlT_SOGPA2}Cf1Y5Ocw+80F|nhbSrv1Lr;cG?$NNYjB*F_ zHV647-DYFljt+v;AjT9I5fLt+xNsW8nBpQL!UYr;PJar$LM9?9MMQ)PC@!1^F{ZePh;RYLh0`F$6c-T@E}*z@8pN35A|k>C6cn_B&iq2#IazZ_q6Bsk~AF=qNRwulseEi?@}iS7 zYo4F^R^>RT4pvW@x_{lV`Z4Xq*g)N@&NV#`+}P~geDbf2b9a2dqZ{~_3{9CbqoTrU zSuz=mL(8{MIxxn4)v;~-()FXe4)$@+KDFTbiv6D7nTscqTaR{cduTD fHG;P4#*Ioa`-0nXX|MVo`WLh|xA{M4TDR#xF#M&Q literal 0 HcmV?d00001