X-Git-Url: https://git.librecmc.org/?a=blobdiff_plain;f=builtin%2Fmainmenu%2Finit.lua;h=176796befcce07eebd0345638fecf0a0eaa42524;hb=d69ef6acd386ccfd5ff456002591b97b92a26956;hp=ab2b8d80cc073ca840cfd45b3bb9dea946c92926;hpb=c3984569c06dc3c2890516e95adc38dcab9ec89a;p=oweals%2Fminetest.git diff --git a/builtin/mainmenu/init.lua b/builtin/mainmenu/init.lua index ab2b8d80c..176796bef 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,54 +65,100 @@ 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") - - mm_texture.init() - - --create main tabview - local tv_main = tabview_create("maintab",{x=12,y=5.2},{x=-0.3,y=-0.99}) - 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 + 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 i,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 i,world in pairs(world_list) do + if world.name == "singleplayerworld" then + gamedata.worldindex = i + break + end + end + end + end + + -- Create main tabview + local tv_main = tabview_create("maintab",{x=12,y=5.2},{x=0,y=0}) + 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")) + + tv_main:set_fixed_size(false) + + if not (PLATFORM == "Android") then + 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() - + core.sound_play("main_menu", true) end init_globals() +