aboutsummaryrefslogtreecommitdiff
path: root/builtin/mainmenu
diff options
context:
space:
mode:
authorRui914 <rui914t@gmail.com>2016-03-31 17:26:39 +0900
committerkwolekr <kwolekr@minetest.net>2016-04-08 02:25:04 -0400
commit92d4a738435c4b8d5944375c596befcc15b3f47c (patch)
treedd536cc1559cecc52da61c1b87f1519eceb0a664 /builtin/mainmenu
parent27ee8d8943080a5dd735c9faa47c726604bafdff (diff)
downloadminetest-92d4a738435c4b8d5944375c596befcc15b3f47c.tar.gz
minetest-92d4a738435c4b8d5944375c596befcc15b3f47c.tar.bz2
minetest-92d4a738435c4b8d5944375c596befcc15b3f47c.zip
Mainmenu: Refactor tab UI code
- Use local variables for tabs in place of globals - Merge together if statements where possible - Replace manual table searching code with indexof where possible
Diffstat (limited to 'builtin/mainmenu')
-rw-r--r--builtin/mainmenu/init.lua100
-rw-r--r--builtin/mainmenu/init_simple.lua2
-rw-r--r--builtin/mainmenu/tab_credits.lua2
-rw-r--r--builtin/mainmenu/tab_mods.lua2
-rw-r--r--builtin/mainmenu/tab_multiplayer.lua4
-rw-r--r--builtin/mainmenu/tab_server.lua4
-rw-r--r--builtin/mainmenu/tab_settings.lua2
-rw-r--r--builtin/mainmenu/tab_simple_main.lua4
-rw-r--r--builtin/mainmenu/tab_singleplayer.lua4
-rw-r--r--builtin/mainmenu/tab_texturepacks.lua4
10 files changed, 59 insertions, 69 deletions
diff --git a/builtin/mainmenu/init.lua b/builtin/mainmenu/init.lua
index 69536630d..6dd345ff4 100644
--- a/builtin/mainmenu/init.lua
+++ b/builtin/mainmenu/init.lua
@@ -37,23 +37,29 @@ 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 .. "textures.lua")
+
dofile(menupath .. DIR_DELIM .. "dlg_config_world.lua")
-dofile(menupath .. DIR_DELIM .. "tab_credits.lua")
-dofile(menupath .. DIR_DELIM .. "tab_mods.lua")
-dofile(menupath .. DIR_DELIM .. "tab_settings.lua")
dofile(menupath .. DIR_DELIM .. "dlg_settings_advanced.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")
+end
+
+local tabs = {}
+
+tabs.settings = dofile(menupath .. DIR_DELIM .. "tab_settings.lua")
+tabs.mods = dofile(menupath .. DIR_DELIM .. "tab_mods.lua")
+tabs.credits = dofile(menupath .. DIR_DELIM .. "tab_credits.lua")
+if PLATFORM == "Android" then
+ tabs.simple_main = dofile(menupath .. DIR_DELIM .. "tab_simple_main.lua")
else
- dofile(menupath .. DIR_DELIM .. "tab_simple_main.lua")
+ tabs.singleplayer = dofile(menupath .. DIR_DELIM .. "tab_singleplayer.lua")
+ tabs.multiplayer = dofile(menupath .. DIR_DELIM .. "tab_multiplayer.lua")
+ tabs.server = dofile(menupath .. DIR_DELIM .. "tab_server.lua")
+ tabs.texturepacks = dofile(menupath .. DIR_DELIM .. "tab_texturepacks.lua")
end
--------------------------------------------------------------------------------
@@ -69,8 +75,19 @@ local function init_globals()
-- Init gamedata
gamedata.worldindex = 0
+ if PLATFORM == "Android" then
+ local world_list = core.get_worlds()
+ local world_index = table.indexof(world_list, "singleplayerworld")
- if PLATFORM ~= "Android" then
+ if world_index == -1 then
+ core.create_world("singleplayerworld", 1)
+
+ world_list = core.get_worlds()
+ world_index = table.indexof(world_list, "singleplayerworld")
+ end
+
+ gamedata.worldindex = world_index
+ else
menudata.worldlist = filterlist.create(
core.get_worlds,
compare_worlds,
@@ -89,61 +106,34 @@ local function init_globals()
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 )
+ 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)
+ local tv_main = tabview_create("maintab", {x = 12, y = 5.2}, {x = 0, y = 0})
+
+ if PLATFORM == "Android" then
+ tv_main:add(tabs.simple_main)
+ tv_main:add(tabs.settings)
else
- tv_main:add(tab_simple_main)
- end
- tv_main:add(tab_settings)
- if PLATFORM ~= "Android" then
- tv_main:add(tab_texturepacks)
+ tv_main:set_autosave_tab(true)
+ tv_main:add(tabs.singleplayer)
+ tv_main:add(tabs.multiplayer)
+ tv_main:add(tabs.server)
+ tv_main:add(tabs.settings)
+ tv_main:add(tabs.texturepacks)
end
- tv_main:add(tab_mods)
- tv_main:add(tab_credits)
- tv_main:set_global_event_handler(main_event_handler)
+ tv_main:add(tabs.mods)
+ tv_main:add(tabs.credits)
+ tv_main:set_global_event_handler(main_event_handler)
tv_main:set_fixed_size(false)
- if not (PLATFORM == "Android") then
+ if PLATFORM ~= "Android" then
tv_main:set_tab(core.setting_get("maintab_LAST"))
end
ui.set_default("maintab")
@@ -151,9 +141,9 @@ local function init_globals()
-- Create modstore ui
if PLATFORM == "Android" then
- modstore.init({x=12, y=6}, 3, 2)
+ modstore.init({x = 12, y = 6}, 3, 2)
else
- modstore.init({x=12, y=8}, 4, 3)
+ modstore.init({x = 12, y = 8}, 4, 3)
end
ui.update()
diff --git a/builtin/mainmenu/init_simple.lua b/builtin/mainmenu/init_simple.lua
index c3891d21c..298bd834e 100644
--- a/builtin/mainmenu/init_simple.lua
+++ b/builtin/mainmenu/init_simple.lua
@@ -1,4 +1,4 @@
-- helper file to be able to debug the simple menu on PC
-- without messing around with actual menu code!
-PLATFORM="Android"
+PLATFORM = "Android"
dofile("builtin/mainmenu/init.lua")
diff --git a/builtin/mainmenu/tab_credits.lua b/builtin/mainmenu/tab_credits.lua
index 5cb730b38..822f64844 100644
--- a/builtin/mainmenu/tab_credits.lua
+++ b/builtin/mainmenu/tab_credits.lua
@@ -69,7 +69,7 @@ local previous_contributors = {
"Zefram <zefram@fysh.org>",
}
-tab_credits = {
+return {
name = "credits",
caption = fgettext("Credits"),
cbf_formspec = function(tabview, name, tabdata)
diff --git a/builtin/mainmenu/tab_mods.lua b/builtin/mainmenu/tab_mods.lua
index af758f8df..69027c015 100644
--- a/builtin/mainmenu/tab_mods.lua
+++ b/builtin/mainmenu/tab_mods.lua
@@ -163,7 +163,7 @@ local function handle_buttons(tabview, fields, tabname, tabdata)
end
--------------------------------------------------------------------------------
-tab_mods = {
+return {
name = "mods",
caption = fgettext("Mods"),
cbf_formspec = get_formspec,
diff --git a/builtin/mainmenu/tab_multiplayer.lua b/builtin/mainmenu/tab_multiplayer.lua
index 2072f8c38..06d8791f0 100644
--- a/builtin/mainmenu/tab_multiplayer.lua
+++ b/builtin/mainmenu/tab_multiplayer.lua
@@ -256,10 +256,10 @@ local function on_change(type,old_tab,new_tab)
end
--------------------------------------------------------------------------------
-tab_multiplayer = {
+return {
name = "multiplayer",
caption = fgettext("Client"),
cbf_formspec = get_formspec,
cbf_button_handler = main_button_handler,
on_change = on_change
- }
+}
diff --git a/builtin/mainmenu/tab_server.lua b/builtin/mainmenu/tab_server.lua
index d08eecc21..6b96825a0 100644
--- a/builtin/mainmenu/tab_server.lua
+++ b/builtin/mainmenu/tab_server.lua
@@ -186,10 +186,10 @@ local function main_button_handler(this, fields, name, tabdata)
end
--------------------------------------------------------------------------------
-tab_server = {
+return {
name = "server",
caption = fgettext("Server"),
cbf_formspec = get_formspec,
cbf_button_handler = main_button_handler,
on_change = nil
- }
+}
diff --git a/builtin/mainmenu/tab_settings.lua b/builtin/mainmenu/tab_settings.lua
index 6285968eb..2649a8a57 100644
--- a/builtin/mainmenu/tab_settings.lua
+++ b/builtin/mainmenu/tab_settings.lua
@@ -384,7 +384,7 @@ local function handle_settings_buttons(this, fields, tabname, tabdata)
return ddhandled
end
-tab_settings = {
+return {
name = "settings",
caption = fgettext("Settings"),
cbf_formspec = formspec,
diff --git a/builtin/mainmenu/tab_simple_main.lua b/builtin/mainmenu/tab_simple_main.lua
index 434113b5f..b32418938 100644
--- a/builtin/mainmenu/tab_simple_main.lua
+++ b/builtin/mainmenu/tab_simple_main.lua
@@ -196,10 +196,10 @@ local function on_activate(type,old_tab,new_tab)
end
--------------------------------------------------------------------------------
-tab_simple_main = {
+return {
name = "main",
caption = fgettext("Main"),
cbf_formspec = get_formspec,
cbf_button_handler = main_button_handler,
on_change = on_activate
- }
+}
diff --git a/builtin/mainmenu/tab_singleplayer.lua b/builtin/mainmenu/tab_singleplayer.lua
index a40918af9..05060cbc6 100644
--- a/builtin/mainmenu/tab_singleplayer.lua
+++ b/builtin/mainmenu/tab_singleplayer.lua
@@ -241,10 +241,10 @@ local function on_change(type, old_tab, new_tab)
end
--------------------------------------------------------------------------------
-tab_singleplayer = {
+return {
name = "singleplayer",
caption = fgettext("Singleplayer"),
cbf_formspec = get_formspec,
cbf_button_handler = main_button_handler,
on_change = on_change
- }
+}
diff --git a/builtin/mainmenu/tab_texturepacks.lua b/builtin/mainmenu/tab_texturepacks.lua
index 2b0c77afc..a102fd61d 100644
--- a/builtin/mainmenu/tab_texturepacks.lua
+++ b/builtin/mainmenu/tab_texturepacks.lua
@@ -123,10 +123,10 @@ local function main_button_handler(tabview, fields, name, tabdata)
end
--------------------------------------------------------------------------------
-tab_texturepacks = {
+return {
name = "texturepacks",
caption = fgettext("Texturepacks"),
cbf_formspec = get_formspec,
cbf_button_handler = main_button_handler,
on_change = nil
- }
+}