Skip to content

Commit

Permalink
Serverlist: Add ping indicators (#5164)
Browse files Browse the repository at this point in the history
  • Loading branch information
kilbith authored and Zeno- committed Feb 3, 2017
1 parent 3b9ae40 commit 03b34cb
Show file tree
Hide file tree
Showing 8 changed files with 29 additions and 1 deletion.
21 changes: 20 additions & 1 deletion builtin/mainmenu/common.lua
Original file line number Diff line number Diff line change
Expand Up @@ -54,7 +54,11 @@ end
function image_column(tooltip, flagname)
return "image,tooltip=" .. core.formspec_escape(tooltip) .. "," ..
"0=" .. core.formspec_escape(defaulttexturedir .. "blank.png") .. "," ..
"1=" .. core.formspec_escape(defaulttexturedir .. "server_flags_" .. flagname .. ".png")
"1=" .. core.formspec_escape(defaulttexturedir .. "server_flags_" .. flagname .. ".png") .. "," ..
"2=" .. core.formspec_escape(defaulttexturedir .. "server_ping_4.png") .. "," ..
"3=" .. core.formspec_escape(defaulttexturedir .. "server_ping_3.png") .. "," ..
"4=" .. core.formspec_escape(defaulttexturedir .. "server_ping_2.png") .. "," ..
"5=" .. core.formspec_escape(defaulttexturedir .. "server_ping_1.png")
end

--------------------------------------------------------------------------------
Expand Down Expand Up @@ -97,6 +101,21 @@ function render_serverlist_row(spec, is_favorite)
details = "0,"
end

if spec.ping then
local ping = spec.ping * 1000
if ping <= 50 then
details = details .. "2,"
elseif ping <= 100 then
details = details .. "3,"
elseif ping <= 250 then
details = details .. "4,"
else
details = details .. "5,"
end
else
details = details .. "0,"
end

if spec.clients and spec.clients_max then
local clients_color = ''
local clients_percent = 100 * spec.clients / spec.clients_max
Expand Down
1 change: 1 addition & 0 deletions builtin/mainmenu/tab_multiplayer.lua
Original file line number Diff line number Diff line change
Expand Up @@ -69,6 +69,7 @@ local function get_formspec(tabview, name, tabdata)
--favourites
retval = retval .. "tablecolumns[" ..
image_column(fgettext("Favorite"), "favorite") .. ";" ..
image_column(fgettext("Ping"), "") .. ",padding=0.25;" ..
"color,span=3;" ..
"text,align=right;" .. -- clients
"text,align=center,padding=0.25;" .. -- "/"
Expand Down
1 change: 1 addition & 0 deletions builtin/mainmenu/tab_simple_main.lua
Original file line number Diff line number Diff line change
Expand Up @@ -43,6 +43,7 @@ local function get_formspec(tabview, name, tabdata)

retval = retval .. "tablecolumns[" ..
image_column(fgettext("Favorite"), "favorite") .. ";" ..
image_column(fgettext("Ping"), "") .. ",padding=0.25;" ..
"color,span=3;" ..
"text,align=right;" .. -- clients
"text,align=center,padding=0.25;" .. -- "/"
Expand Down
7 changes: 7 additions & 0 deletions src/script/lua_api/l_mainmenu.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -577,6 +577,13 @@ int ModApiMainMenu::l_get_favorites(lua_State *L)
lua_settable(L, top_lvl2);
}

if (servers[i].isMember("ping")) {
float ping = servers[i]["ping"].asFloat();
lua_pushstring(L, "ping");
lua_pushnumber(L, ping);
lua_settable(L, top_lvl2);
}

lua_settable(L, top);
index++;
}
Expand Down
Binary file added textures/base/pack/server_ping_1.png
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added textures/base/pack/server_ping_2.png
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added textures/base/pack/server_ping_3.png
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added textures/base/pack/server_ping_4.png
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.

0 comments on commit 03b34cb

Please sign in to comment.