diff options
author | kilbith <kilbith@users.noreply.github.com> | 2017-02-03 14:53:43 +0100 |
---|---|---|
committer | Zeno- <kde.psych@gmail.com> | 2017-02-03 23:53:43 +1000 |
commit | 03b34cb3dd0647b3e378f00cdc7203e580c9dcc8 (patch) | |
tree | 20e3a025c31befce23ceea280fa81fe791974aab | |
parent | 3b9ae409c7d7e9445099b86c85392dba4771e08a (diff) | |
download | minetest-03b34cb3dd0647b3e378f00cdc7203e580c9dcc8.tar.gz minetest-03b34cb3dd0647b3e378f00cdc7203e580c9dcc8.tar.bz2 minetest-03b34cb3dd0647b3e378f00cdc7203e580c9dcc8.zip |
Serverlist: Add ping indicators (#5164)
-rw-r--r-- | builtin/mainmenu/common.lua | 21 | ||||
-rw-r--r-- | builtin/mainmenu/tab_multiplayer.lua | 1 | ||||
-rw-r--r-- | builtin/mainmenu/tab_simple_main.lua | 1 | ||||
-rw-r--r-- | src/script/lua_api/l_mainmenu.cpp | 7 | ||||
-rw-r--r-- | textures/base/pack/server_ping_1.png | bin | 0 -> 251 bytes | |||
-rw-r--r-- | textures/base/pack/server_ping_2.png | bin | 0 -> 244 bytes | |||
-rw-r--r-- | textures/base/pack/server_ping_3.png | bin | 0 -> 245 bytes | |||
-rw-r--r-- | textures/base/pack/server_ping_4.png | bin | 0 -> 213 bytes |
8 files changed, 29 insertions, 1 deletions
diff --git a/builtin/mainmenu/common.lua b/builtin/mainmenu/common.lua index 5e3df0864..17d910e8b 100644 --- a/builtin/mainmenu/common.lua +++ b/builtin/mainmenu/common.lua @@ -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 -------------------------------------------------------------------------------- @@ -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 diff --git a/builtin/mainmenu/tab_multiplayer.lua b/builtin/mainmenu/tab_multiplayer.lua index f8edeaddd..033ba38d8 100644 --- a/builtin/mainmenu/tab_multiplayer.lua +++ b/builtin/mainmenu/tab_multiplayer.lua @@ -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;" .. -- "/" diff --git a/builtin/mainmenu/tab_simple_main.lua b/builtin/mainmenu/tab_simple_main.lua index a773a4912..23820aab7 100644 --- a/builtin/mainmenu/tab_simple_main.lua +++ b/builtin/mainmenu/tab_simple_main.lua @@ -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;" .. -- "/" diff --git a/src/script/lua_api/l_mainmenu.cpp b/src/script/lua_api/l_mainmenu.cpp index 4a2484613..de8890b11 100644 --- a/src/script/lua_api/l_mainmenu.cpp +++ b/src/script/lua_api/l_mainmenu.cpp @@ -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++; } diff --git a/textures/base/pack/server_ping_1.png b/textures/base/pack/server_ping_1.png Binary files differnew file mode 100644 index 000000000..ba5bba1e3 --- /dev/null +++ b/textures/base/pack/server_ping_1.png diff --git a/textures/base/pack/server_ping_2.png b/textures/base/pack/server_ping_2.png Binary files differnew file mode 100644 index 000000000..8dca0be0d --- /dev/null +++ b/textures/base/pack/server_ping_2.png diff --git a/textures/base/pack/server_ping_3.png b/textures/base/pack/server_ping_3.png Binary files differnew file mode 100644 index 000000000..c2cab017e --- /dev/null +++ b/textures/base/pack/server_ping_3.png diff --git a/textures/base/pack/server_ping_4.png b/textures/base/pack/server_ping_4.png Binary files differnew file mode 100644 index 000000000..03b4b5b83 --- /dev/null +++ b/textures/base/pack/server_ping_4.png |