From c4e393deea4f1a6d242a3fdf392c463ed5a3b58d Mon Sep 17 00:00:00 2001 From: ShadowNinja Date: Thu, 20 Nov 2014 14:59:19 -0500 Subject: Simplify loading of Android version of menu --- builtin/mainmenu/init.lua | 135 +++++++++++++++++++++++++------------- builtin/mainmenu/init_android.lua | 102 ---------------------------- builtin/mainmenu/tab_settings.lua | 4 +- 3 files changed, 92 insertions(+), 149 deletions(-) delete mode 100644 builtin/mainmenu/init_android.lua (limited to 'builtin/mainmenu') diff --git a/builtin/mainmenu/init.lua b/builtin/mainmenu/init.lua index 4f89a0d79..6ad2aa88a 100644 --- a/builtin/mainmenu/init.lua +++ b/builtin/mainmenu/init.lua @@ -38,21 +38,25 @@ dofile(menupath .. DIR_DELIM .. "gamemgr.lua") dofile(menupath .. DIR_DELIM .. "modmgr.lua") dofile(menupath .. DIR_DELIM .. "store.lua") dofile(menupath .. DIR_DELIM .. "dlg_config_world.lua") -dofile(menupath .. DIR_DELIM .. "dlg_create_world.lua") -dofile(menupath .. DIR_DELIM .. "dlg_delete_mod.lua") -dofile(menupath .. DIR_DELIM .. "dlg_delete_world.lua") -dofile(menupath .. DIR_DELIM .. "dlg_rename_modpack.lua") dofile(menupath .. DIR_DELIM .. "tab_credits.lua") dofile(menupath .. DIR_DELIM .. "tab_mods.lua") -dofile(menupath .. DIR_DELIM .. "tab_multiplayer.lua") -dofile(menupath .. DIR_DELIM .. "tab_server.lua") dofile(menupath .. DIR_DELIM .. "tab_settings.lua") -dofile(menupath .. DIR_DELIM .. "tab_singleplayer.lua") -dofile(menupath .. DIR_DELIM .. "tab_texturepacks.lua") -dofile(menupath .. DIR_DELIM .. "textures.lua") +if PLATFORM ~= "Android" then + dofile(menupath .. DIR_DELIM .. "dlg_create_world.lua") + dofile(menupath .. DIR_DELIM .. "dlg_delete_mod.lua") + dofile(menupath .. DIR_DELIM .. "dlg_delete_world.lua") + dofile(menupath .. DIR_DELIM .. "dlg_rename_modpack.lua") + dofile(menupath .. DIR_DELIM .. "tab_multiplayer.lua") + dofile(menupath .. DIR_DELIM .. "tab_server.lua") + dofile(menupath .. DIR_DELIM .. "tab_singleplayer.lua") + dofile(menupath .. DIR_DELIM .. "tab_texturepacks.lua") + dofile(menupath .. DIR_DELIM .. "textures.lua") +else + dofile(menupath .. DIR_DELIM .. "tab_simple_main.lua") +end -------------------------------------------------------------------------------- -local function main_event_handler(tabview,event) +local function main_event_handler(tabview, event) if event == "MenuQuit" then core.close() end @@ -61,55 +65,95 @@ end -------------------------------------------------------------------------------- local function init_globals() - --init gamedata + -- Init gamedata gamedata.worldindex = 0 - menudata.worldlist = filterlist.create( - core.get_worlds, - compare_worlds, - function(element,uid) - if element.name == uid then - return true - end - return false - end, --unique id compare fct - function(element,gameid) - if element.gameid == gameid then - return true - end - return false - end --filter fct - ) - - menudata.worldlist:add_sort_mechanism("alphabetic",sort_worlds_alphabetic) - menudata.worldlist:set_sortmode("alphabetic") - - if not core.setting_get("menu_last_game") then - local default_game = core.setting_get("default_game") or "minetest" - core.setting_set("menu_last_game", default_game ) - end - mm_texture.init() + if PLATFORM ~= "Android" then + menudata.worldlist = filterlist.create( + core.get_worlds, + compare_worlds, + -- Unique id comparison function + function(element, uid) + return element.name == uid + end, + -- Filter function + function(element, gameid) + return element.gameid == gameid + end + ) + + menudata.worldlist:add_sort_mechanism("alphabetic", sort_worlds_alphabetic) + menudata.worldlist:set_sortmode("alphabetic") + + if not core.setting_get("menu_last_game") then + local default_game = core.setting_get("default_game") or "minetest" + core.setting_set("menu_last_game", default_game ) + end + + mm_texture.init() + else + local world_list = core.get_worlds() + + local found_singleplayerworld = false + + for world in pairs(world_list) do + if world.name == "singleplayerworld" then + found_singleplayerworld = true + gamedata.worldindex = i + break + end + end + + if not found_singleplayerworld then + core.create_world("singleplayerworld", 1) + + local world_list = core.get_worlds() + + for world in pairs(world_list) do + if world.name == "singleplayerworld" then + gamedata.worldindex = i + return + end + end + end + end - --create main tabview + -- Create main tabview local tv_main = tabview_create("maintab",{x=12,y=5.2},{x=0,y=0}) - tv_main:set_autosave_tab(true) - tv_main:add(tab_singleplayer) - tv_main:add(tab_multiplayer) - tv_main:add(tab_server) + if PLATFORM ~= "Android" then + tv_main:set_autosave_tab(true) + end + if PLATFORM ~= "Android" then + tv_main:add(tab_singleplayer) + tv_main:add(tab_multiplayer) + tv_main:add(tab_server) + else + tv_main:add(tab_simple_main) + end tv_main:add(tab_settings) - tv_main:add(tab_texturepacks) + if PLATFORM ~= "Android" then + tv_main:add(tab_texturepacks) + end tv_main:add(tab_mods) tv_main:add(tab_credits) tv_main:set_global_event_handler(main_event_handler) - tv_main:set_tab(core.setting_get("maintab_LAST")) + if PLATFORM == "Android" then + tv_main:set_fixed_size(false) + else + tv_main:set_tab(core.setting_get("maintab_LAST")) + end ui.set_default("maintab") tv_main:show() - --create modstore ui - modstore.init({x=12,y=8},4,3) + -- Create modstore ui + if PLATFORM == "Android" then + modstore.init({x=12, y=6}, 3, 2) + else + modstore.init({x=12, y=8}, 4, 3) + end ui.update() @@ -117,3 +161,4 @@ local function init_globals() end init_globals() + diff --git a/builtin/mainmenu/init_android.lua b/builtin/mainmenu/init_android.lua deleted file mode 100644 index 348923fa5..000000000 --- a/builtin/mainmenu/init_android.lua +++ /dev/null @@ -1,102 +0,0 @@ ---Minetest ---Copyright (C) 2014 sapier --- ---This program is free software; you can redistribute it and/or modify ---it under the terms of the GNU Lesser General Public License as published by ---the Free Software Foundation; either version 2.1 of the License, or ---(at your option) any later version. --- ---This program is distributed in the hope that it will be useful, ---but WITHOUT ANY WARRANTY; without even the implied warranty of ---MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the ---GNU Lesser General Public License for more details. --- ---You should have received a copy of the GNU Lesser General Public License along ---with this program; if not, write to the Free Software Foundation, Inc., ---51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. - -mt_color_grey = "#AAAAAA" -mt_color_blue = "#0000DD" -mt_color_green = "#00DD00" -mt_color_dark_green = "#003300" - ---marker for android specific code -ANDROID = true - -local menupath = core.get_mainmenu_path() -local basepath = core.get_builtin_path() -defaulttexturedir = core.get_texturepath_share() .. DIR_DELIM .. "base" .. - DIR_DELIM .. "pack" .. DIR_DELIM - -dofile(basepath .. DIR_DELIM .. "common" .. DIR_DELIM .. "async_event.lua") -dofile(basepath .. DIR_DELIM .. "common" .. DIR_DELIM .. "filterlist.lua") -dofile(basepath .. DIR_DELIM .. "fstk" .. DIR_DELIM .. "buttonbar.lua") -dofile(basepath .. DIR_DELIM .. "fstk" .. DIR_DELIM .. "dialog.lua") -dofile(basepath .. DIR_DELIM .. "fstk" .. DIR_DELIM .. "tabview.lua") -dofile(basepath .. DIR_DELIM .. "fstk" .. DIR_DELIM .. "ui.lua") -dofile(menupath .. DIR_DELIM .. "common.lua") -dofile(menupath .. DIR_DELIM .. "gamemgr.lua") -dofile(menupath .. DIR_DELIM .. "modmgr.lua") -dofile(menupath .. DIR_DELIM .. "store.lua") -dofile(menupath .. DIR_DELIM .. "dlg_config_world.lua") -dofile(menupath .. DIR_DELIM .. "tab_simple_main.lua") -dofile(menupath .. DIR_DELIM .. "tab_credits.lua") -dofile(menupath .. DIR_DELIM .. "tab_mods.lua") -dofile(menupath .. DIR_DELIM .. "tab_settings.lua") - --------------------------------------------------------------------------------- -local function main_event_handler(tabview,event) - if event == "MenuQuit" then - core.close() - end - return true -end - -local function init_globals() - --init gamedata - gamedata.worldindex = 0 - - local worldlist = core.get_worlds() - - local found_singleplayerworld = false - - for i=1,#worldlist,1 do - if worldlist[i].name == "singleplayerworld" then - found_singleplayerworld = true - gamedata.worldindex = i - end - end - - if not found_singleplayerworld then - core.create_world("singleplayerworld", 1) - - local worldlist = core.get_worlds() - - for i=1,#worldlist,1 do - if worldlist[i].name == "singleplayerworld" then - gamedata.worldindex = i - end - end - end - - --create main tabview - local tv_main = tabview_create("maintab",{x=12,y=5.2},{x=-0,y=-0}) - tv_main:add(tab_simple_main) - tv_main:add(tab_mods) - tv_main:add(tab_settings) - tv_main:add(tab_credits) - tv_main:set_global_event_handler(main_event_handler) - tv_main:set_fixed_size(false) - ui.set_default("maintab") - tv_main:show() - - --create modstore ui - modstore.init({x=12,y=6},3,2) - - ui.update() - - core.sound_play("main_menu", true) -end - -init_globals() - diff --git a/builtin/mainmenu/tab_settings.lua b/builtin/mainmenu/tab_settings.lua index 630267478..1f8743140 100644 --- a/builtin/mainmenu/tab_settings.lua +++ b/builtin/mainmenu/tab_settings.lua @@ -160,7 +160,7 @@ local function formspec(tabview, name, tabdata) "box[7.75,0;4,4;#999999]" .. "checkbox[8,0;cb_shaders;".. fgettext("Shaders") .. ";" .. dump(core.setting_getbool("enable_shaders")) .. "]" - if not ANDROID then + if PLATFORM ~= "Android" then tab_string = tab_string .. "button[8,4.75;3.75,0.5;btn_change_keys;".. fgettext("Change keys") .. "]" else @@ -176,7 +176,7 @@ local function formspec(tabview, name, tabdata) fgettext("Scaling factor applied to menu elements: ") .. dump(core.setting_get("gui_scaling")) .. "]" - if ANDROID then + if PLATFORM == "Android" then tab_string = tab_string .. "box[4.25,2.75;3.25,2.15;#999999]" .. "checkbox[4.5,2.75;cb_touchscreen_target;".. fgettext("Touch free target") .. ";" -- cgit v1.2.3