Skip to content

Commit 03b34cb

Browse files
kilbithZeno-
authored andcommittedFeb 3, 2017
Serverlist: Add ping indicators (#5164)
1 parent 3b9ae40 commit 03b34cb

File tree

8 files changed

+29
-1
lines changed

8 files changed

+29
-1
lines changed
 

‎builtin/mainmenu/common.lua

+20-1
Original file line numberDiff line numberDiff line change
@@ -54,7 +54,11 @@ end
5454
function image_column(tooltip, flagname)
5555
return "image,tooltip=" .. core.formspec_escape(tooltip) .. "," ..
5656
"0=" .. core.formspec_escape(defaulttexturedir .. "blank.png") .. "," ..
57-
"1=" .. core.formspec_escape(defaulttexturedir .. "server_flags_" .. flagname .. ".png")
57+
"1=" .. core.formspec_escape(defaulttexturedir .. "server_flags_" .. flagname .. ".png") .. "," ..
58+
"2=" .. core.formspec_escape(defaulttexturedir .. "server_ping_4.png") .. "," ..
59+
"3=" .. core.formspec_escape(defaulttexturedir .. "server_ping_3.png") .. "," ..
60+
"4=" .. core.formspec_escape(defaulttexturedir .. "server_ping_2.png") .. "," ..
61+
"5=" .. core.formspec_escape(defaulttexturedir .. "server_ping_1.png")
5862
end
5963

6064
--------------------------------------------------------------------------------
@@ -97,6 +101,21 @@ function render_serverlist_row(spec, is_favorite)
97101
details = "0,"
98102
end
99103

104+
if spec.ping then
105+
local ping = spec.ping * 1000
106+
if ping <= 50 then
107+
details = details .. "2,"
108+
elseif ping <= 100 then
109+
details = details .. "3,"
110+
elseif ping <= 250 then
111+
details = details .. "4,"
112+
else
113+
details = details .. "5,"
114+
end
115+
else
116+
details = details .. "0,"
117+
end
118+
100119
if spec.clients and spec.clients_max then
101120
local clients_color = ''
102121
local clients_percent = 100 * spec.clients / spec.clients_max

‎builtin/mainmenu/tab_multiplayer.lua

+1
Original file line numberDiff line numberDiff line change
@@ -69,6 +69,7 @@ local function get_formspec(tabview, name, tabdata)
6969
--favourites
7070
retval = retval .. "tablecolumns[" ..
7171
image_column(fgettext("Favorite"), "favorite") .. ";" ..
72+
image_column(fgettext("Ping"), "") .. ",padding=0.25;" ..
7273
"color,span=3;" ..
7374
"text,align=right;" .. -- clients
7475
"text,align=center,padding=0.25;" .. -- "/"

‎builtin/mainmenu/tab_simple_main.lua

+1
Original file line numberDiff line numberDiff line change
@@ -43,6 +43,7 @@ local function get_formspec(tabview, name, tabdata)
4343

4444
retval = retval .. "tablecolumns[" ..
4545
image_column(fgettext("Favorite"), "favorite") .. ";" ..
46+
image_column(fgettext("Ping"), "") .. ",padding=0.25;" ..
4647
"color,span=3;" ..
4748
"text,align=right;" .. -- clients
4849
"text,align=center,padding=0.25;" .. -- "/"

‎src/script/lua_api/l_mainmenu.cpp

+7
Original file line numberDiff line numberDiff line change
@@ -577,6 +577,13 @@ int ModApiMainMenu::l_get_favorites(lua_State *L)
577577
lua_settable(L, top_lvl2);
578578
}
579579

580+
if (servers[i].isMember("ping")) {
581+
float ping = servers[i]["ping"].asFloat();
582+
lua_pushstring(L, "ping");
583+
lua_pushnumber(L, ping);
584+
lua_settable(L, top_lvl2);
585+
}
586+
580587
lua_settable(L, top);
581588
index++;
582589
}

‎textures/base/pack/server_ping_1.png

251 Bytes
Loading

‎textures/base/pack/server_ping_2.png

244 Bytes
Loading

‎textures/base/pack/server_ping_3.png

245 Bytes
Loading

‎textures/base/pack/server_ping_4.png

213 Bytes
Loading

0 commit comments

Comments
 (0)
Please sign in to comment.