aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorROllerozxa <temporaryemail4meh+github@gmail.com>2022-07-17 15:45:30 +0200
committerGitHub <noreply@github.com>2022-07-17 14:45:30 +0100
commitf090471022513401257e132334d03ee6c10aafa7 (patch)
treecebf87b33ba00ff0f585ba20dc758ab874af694e
parent4648d8f4997963ac050f356b664a07caadd66587 (diff)
downloadminetest-f090471022513401257e132334d03ee6c10aafa7.tar.gz
minetest-f090471022513401257e132334d03ee6c10aafa7.tar.bz2
minetest-f090471022513401257e132334d03ee6c10aafa7.zip
Enable the gamebar on Android (#12354)
-rw-r--r--builtin/mainmenu/common.lua10
-rw-r--r--builtin/mainmenu/dlg_create_world.lua49
-rw-r--r--builtin/mainmenu/tab_local.lua167
3 files changed, 92 insertions, 134 deletions
diff --git a/builtin/mainmenu/common.lua b/builtin/mainmenu/common.lua
index dcccb2b2a..81e28f2bb 100644
--- a/builtin/mainmenu/common.lua
+++ b/builtin/mainmenu/common.lua
@@ -125,18 +125,12 @@ os.tmpname = function()
end
--------------------------------------------------------------------------------
-function menu_render_worldlist(show_gameid)
+function menu_render_worldlist()
local retval = {}
local current_worldlist = menudata.worldlist:get_list()
- local row
for i, v in ipairs(current_worldlist) do
- row = v.name
- if show_gameid == nil or show_gameid == true then
- row = row .. " [" .. v.gameid .. "]"
- end
- retval[#retval+1] = core.formspec_escape(row)
-
+ retval[#retval+1] = core.formspec_escape(v.name)
end
return table.concat(retval, ",")
diff --git a/builtin/mainmenu/dlg_create_world.lua b/builtin/mainmenu/dlg_create_world.lua
index 8628ed312..806e019a9 100644
--- a/builtin/mainmenu/dlg_create_world.lua
+++ b/builtin/mainmenu/dlg_create_world.lua
@@ -15,9 +15,6 @@
--with this program; if not, write to the Free Software Foundation, Inc.,
--51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
--- cf. tab_local, the gamebar already provides game selection so we hide the list from here
-local hide_gamelist = PLATFORM ~= "Android"
-
local function table_to_flags(ftable)
-- Convert e.g. { jungles = true, caves = false } to "jungles,nocaves"
local str = {}
@@ -111,14 +108,11 @@ local function create_world_formspec(dialogdata)
local flags = dialogdata.flags
- local game, gameidx = pkgmgr.find_by_gameid(gameid)
- if game == nil and hide_gamelist then
+ local game = pkgmgr.find_by_gameid(gameid)
+ if game == nil then
-- should never happen but just pick the first game
game = pkgmgr.get_game(1)
- gameidx = 1
core.settings:set("menu_last_game", game.id)
- elseif game == nil then
- gameidx = 0
end
local disallowed_mapgen_settings = {}
@@ -296,17 +290,6 @@ local function create_world_formspec(dialogdata)
label_spflags = "label[0,"..y_start..";" .. fgettext("Mapgen-specific flags") .. "]"
end
- -- Warning if only devtest is installed
- local devtest_only = ""
- local gamelist_height = 2.3
- if #pkgmgr.games == 1 and pkgmgr.games[1].id == "devtest" then
- devtest_only = "box[0,0;5.8,1.7;#ff8800]" ..
- "textarea[0.4,0.1;6,1.8;;;"..
- fgettext("Development Test is meant for developers.") .. "]" ..
- "button[1,1;4,0.5;world_create_open_cdb;" .. fgettext("Install another game") .. "]"
- gamelist_height = 0.5
- end
-
local retval =
"size[12.25,7,true]" ..
@@ -329,13 +312,14 @@ local function create_world_formspec(dialogdata)
"label[0,2;" .. fgettext("Mapgen") .. "]"..
"dropdown[0,2.5;6.3;dd_mapgen;" .. mglist .. ";" .. selindex .. "]"
- if not hide_gamelist or devtest_only ~= "" then
+ -- Warning if only devtest is installed
+ if #pkgmgr.games == 1 and pkgmgr.games[1].id == "devtest" then
retval = retval ..
- "label[0,3.35;" .. fgettext("Game") .. "]"..
- "textlist[0,3.85;5.8,"..gamelist_height..";games;" ..
- pkgmgr.gamelist() .. ";" .. gameidx .. ";false]" ..
- "container[0,4.5]" ..
- devtest_only ..
+ "container[0,3.5]" ..
+ "box[0,0;5.8,1.7;#ff8800]" ..
+ "textarea[0.4,0.1;6,1.8;;;"..
+ fgettext("Development Test is meant for developers.") .. "]" ..
+ "button[1,1;4,0.5;world_create_open_cdb;" .. fgettext("Install another game") .. "]" ..
"container_end[]"
end
@@ -371,13 +355,7 @@ local function create_world_buttonhandler(this, fields)
fields["key_enter"] then
local worldname = fields["te_world_name"]
- local game, gameindex
- if hide_gamelist then
- game, gameindex = pkgmgr.find_by_gameid(core.settings:get("menu_last_game"))
- else
- gameindex = core.get_textlist_index("games")
- game = pkgmgr.get_game(gameindex)
- end
+ local game, gameindex = pkgmgr.find_by_gameid(core.settings:get("menu_last_game"))
local message
if game == nil then
@@ -426,9 +404,7 @@ local function create_world_buttonhandler(this, fields)
if message == nil then
core.settings:set("menu_last_game", game.id)
- if this.data.update_worldlist_filter then
- menudata.worldlist:set_filtercriteria(game.id)
- end
+ menudata.worldlist:set_filtercriteria(game.id)
menudata.worldlist:refresh()
core.settings:set("mainmenu_last_selected_world",
menudata.worldlist:raw_index_by_uid(worldname))
@@ -486,13 +462,12 @@ local function create_world_buttonhandler(this, fields)
end
-function create_create_world_dlg(update_worldlistfilter)
+function create_create_world_dlg()
local retval = dialog_create("sp_create_world",
create_world_formspec,
create_world_buttonhandler,
nil)
retval.data = {
- update_worldlist_filter = update_worldlistfilter,
worldname = "",
-- settings the world is created with:
seed = core.settings:get("fixed_map_seed") or "",
diff --git a/builtin/mainmenu/tab_local.lua b/builtin/mainmenu/tab_local.lua
index 049d16507..f8de10db6 100644
--- a/builtin/mainmenu/tab_local.lua
+++ b/builtin/mainmenu/tab_local.lua
@@ -16,7 +16,6 @@
--51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
-local enable_gamebar = PLATFORM ~= "Android"
local current_game, singleplayer_refresh_gamebar
local valid_disabled_settings = {
["enable_damage"]=true,
@@ -24,95 +23,88 @@ local valid_disabled_settings = {
["enable_server"]=true,
}
-if enable_gamebar then
- -- Currently chosen game in gamebar for theming and filtering
- function current_game()
- local last_game_id = core.settings:get("menu_last_game")
- local game = pkgmgr.find_by_gameid(last_game_id)
+-- Currently chosen game in gamebar for theming and filtering
+function current_game()
+ local last_game_id = core.settings:get("menu_last_game")
+ local game = pkgmgr.find_by_gameid(last_game_id)
- return game
- end
+ return game
+end
- -- Apply menu changes from given game
- function apply_game(game)
- core.set_topleft_text(game.name)
- core.settings:set("menu_last_game", game.id)
- menudata.worldlist:set_filtercriteria(game.id)
+-- Apply menu changes from given game
+function apply_game(game)
+ core.set_topleft_text(game.name)
+ core.settings:set("menu_last_game", game.id)
+ menudata.worldlist:set_filtercriteria(game.id)
- mm_game_theme.update("singleplayer", game) -- this refreshes the formspec
+ mm_game_theme.update("singleplayer", game) -- this refreshes the formspec
- local index = filterlist.get_current_index(menudata.worldlist,
- tonumber(core.settings:get("mainmenu_last_selected_world")))
- if not index or index < 1 then
- local selected = core.get_textlist_index("sp_worlds")
- if selected ~= nil and selected < #menudata.worldlist:get_list() then
- index = selected
- else
- index = #menudata.worldlist:get_list()
- end
+ local index = filterlist.get_current_index(menudata.worldlist,
+ tonumber(core.settings:get("mainmenu_last_selected_world")))
+ if not index or index < 1 then
+ local selected = core.get_textlist_index("sp_worlds")
+ if selected ~= nil and selected < #menudata.worldlist:get_list() then
+ index = selected
+ else
+ index = #menudata.worldlist:get_list()
end
- menu_worldmt_legacy(index)
end
+ menu_worldmt_legacy(index)
+end
- function singleplayer_refresh_gamebar()
+function singleplayer_refresh_gamebar()
- local old_bar = ui.find_by_name("game_button_bar")
- if old_bar ~= nil then
- old_bar:delete()
+ local old_bar = ui.find_by_name("game_button_bar")
+ if old_bar ~= nil then
+ old_bar:delete()
+ end
+
+ local function game_buttonbar_button_handler(fields)
+ if fields.game_open_cdb then
+ local maintab = ui.find_by_name("maintab")
+ local dlg = create_store_dlg("game")
+ dlg:set_parent(maintab)
+ maintab:hide()
+ dlg:show()
+ return true
end
- local function game_buttonbar_button_handler(fields)
- if fields.game_open_cdb then
- local maintab = ui.find_by_name("maintab")
- local dlg = create_store_dlg("game")
- dlg:set_parent(maintab)
- maintab:hide()
- dlg:show()
+ for _, game in ipairs(pkgmgr.games) do
+ if fields["game_btnbar_" .. game.id] then
+ apply_game(game)
return true
end
-
- for _, game in ipairs(pkgmgr.games) do
- if fields["game_btnbar_" .. game.id] then
- apply_game(game)
- return true
- end
- end
end
+ end
- local btnbar = buttonbar_create("game_button_bar",
- game_buttonbar_button_handler,
- {x=-0.3,y=5.9}, "horizontal", {x=12.4,y=1.15})
+ local btnbar = buttonbar_create("game_button_bar",
+ game_buttonbar_button_handler,
+ {x=-0.3,y=5.9}, "horizontal", {x=12.4,y=1.15})
- for _, game in ipairs(pkgmgr.games) do
- local btn_name = "game_btnbar_" .. game.id
+ for _, game in ipairs(pkgmgr.games) do
+ local btn_name = "game_btnbar_" .. game.id
- local image = nil
- local text = nil
- local tooltip = core.formspec_escape(game.title)
+ local image = nil
+ local text = nil
+ local tooltip = core.formspec_escape(game.title)
- if (game.menuicon_path or "") ~= "" then
- image = core.formspec_escape(game.menuicon_path)
- else
- local part1 = game.id:sub(1,5)
- local part2 = game.id:sub(6,10)
- local part3 = game.id:sub(11)
+ if (game.menuicon_path or "") ~= "" then
+ image = core.formspec_escape(game.menuicon_path)
+ else
+ local part1 = game.id:sub(1,5)
+ local part2 = game.id:sub(6,10)
+ local part3 = game.id:sub(11)
- text = part1 .. "\n" .. part2
- if part3 ~= "" then
- text = text .. "\n" .. part3
- end
+ text = part1 .. "\n" .. part2
+ if part3 ~= "" then
+ text = text .. "\n" .. part3
end
- btnbar:add_button(btn_name, text, image, tooltip)
end
-
- local plus_image = core.formspec_escape(defaulttexturedir .. "plus.png")
- btnbar:add_button("game_open_cdb", "", plus_image, fgettext("Install games from ContentDB"))
- end
-else
- -- Currently chosen game in gamebar: no gamebar -> no "current" game
- function current_game()
- return nil
+ btnbar:add_button(btn_name, text, image, tooltip)
end
+
+ local plus_image = core.formspec_escape(defaulttexturedir .. "plus.png")
+ btnbar:add_button("game_open_cdb", "", plus_image, fgettext("Install games from ContentDB"))
end
local function get_disabled_settings(game)
@@ -187,7 +179,7 @@ local function get_formspec(tabview, name, tabdata)
damage ..
host ..
"textlist[3.9,0.4;7.9,3.45;sp_worlds;" ..
- menu_render_worldlist(not enable_gamebar) ..
+ menu_render_worldlist() ..
";" .. index .. "]"
if core.settings:get_bool("enable_server") and disabled_settings["enable_server"] == nil then
@@ -324,7 +316,7 @@ local function main_button_handler(this, fields, name, tabdata)
end
if fields["world_create"] ~= nil then
- local create_world_dlg = create_create_world_dlg(enable_gamebar)
+ local create_world_dlg = create_create_world_dlg()
create_world_dlg:set_parent(this)
this:hide()
create_world_dlg:show()
@@ -371,26 +363,23 @@ local function main_button_handler(this, fields, name, tabdata)
end
end
-local on_change
-if enable_gamebar then
- function on_change(type, old_tab, new_tab)
- if (type == "ENTER") then
- local game = current_game()
- if game then
- apply_game(game)
- end
+local function on_change(type, old_tab, new_tab)
+ if (type == "ENTER") then
+ local game = current_game()
+ if game then
+ apply_game(game)
+ end
- singleplayer_refresh_gamebar()
- ui.find_by_name("game_button_bar"):show()
- else
- menudata.worldlist:set_filtercriteria(nil)
- local gamebar = ui.find_by_name("game_button_bar")
- if gamebar then
- gamebar:hide()
- end
- core.set_topleft_text("")
- mm_game_theme.update(new_tab,nil)
+ singleplayer_refresh_gamebar()
+ ui.find_by_name("game_button_bar"):show()
+ else
+ menudata.worldlist:set_filtercriteria(nil)
+ local gamebar = ui.find_by_name("game_button_bar")
+ if gamebar then
+ gamebar:hide()
end
+ core.set_topleft_text("")
+ mm_game_theme.update(new_tab,nil)
end
end