diff options
author | Kahrl <kahrl@gmx.net> | 2013-08-23 12:24:11 +0200 |
---|---|---|
committer | ShadowNinja <shadowninja@minetest.net> | 2014-01-13 18:11:08 -0500 |
commit | 8966c16ad298f94be1f4542afa6b081a1d286eda (patch) | |
tree | 00e50224528a7f0bbb46cb05d81177f5e8086c41 /builtin | |
parent | 2b1eff772524fca8249fd64028e5cbfeabc127a0 (diff) | |
download | minetest-8966c16ad298f94be1f4542afa6b081a1d286eda.tar.gz minetest-8966c16ad298f94be1f4542afa6b081a1d286eda.tar.bz2 minetest-8966c16ad298f94be1f4542afa6b081a1d286eda.zip |
Add formspec table
Diffstat (limited to 'builtin')
-rw-r--r-- | builtin/gamemgr.lua | 2 | ||||
-rw-r--r-- | builtin/mainmenu.lua | 22 | ||||
-rw-r--r-- | builtin/misc_helpers.lua | 51 | ||||
-rw-r--r-- | builtin/modmgr.lua | 6 |
4 files changed, 46 insertions, 35 deletions
diff --git a/builtin/gamemgr.lua b/builtin/gamemgr.lua index 7a5e9790f..c99c2de21 100644 --- a/builtin/gamemgr.lua +++ b/builtin/gamemgr.lua @@ -31,7 +31,7 @@ end -------------------------------------------------------------------------------- function gamemgr.handle_games_buttons(fields) if fields["gamelist"] ~= nil then - local event = explode_textlist_event(fields["gamelist"]) + local event = engine.explode_textlist_event(fields["gamelist"]) gamemgr.selected_game = event.index end diff --git a/builtin/mainmenu.lua b/builtin/mainmenu.lua index d8c2b63ec..8ef306354 100644 --- a/builtin/mainmenu.lua +++ b/builtin/mainmenu.lua @@ -459,8 +459,8 @@ function tabbuilder.handle_multiplayer_buttons(fields) end if fields["favourites"] ~= nil then - local event = explode_textlist_event(fields["favourites"]) - if event.typ == "DCL" then + local event = engine.explode_textlist_event(fields["favourites"]) + if event.type == "DCL" then if event.index <= #menu.favorites then gamedata.address = menu.favorites[event.index].address gamedata.port = menu.favorites[event.index].port @@ -484,7 +484,7 @@ function tabbuilder.handle_multiplayer_buttons(fields) end end - if event.typ == "CHG" then + if event.type == "CHG" then if event.index <= #menu.favorites then local address = menu.favorites[event.index].address local port = menu.favorites[event.index].port @@ -586,12 +586,12 @@ function tabbuilder.handle_server_buttons(fields) local world_doubleclick = false if fields["srv_worlds"] ~= nil then - local event = explode_textlist_event(fields["srv_worlds"]) + local event = engine.explode_textlist_event(fields["srv_worlds"]) - if event.typ == "DCL" then + if event.type == "DCL" then world_doubleclick = true end - if event.typ == "CHG" then + if event.type == "CHG" then engine.setting_set("mainmenu_last_selected_world", filterlist.get_raw_index(worldlist,engine.get_textlist_index("srv_worlds"))) end @@ -737,13 +737,13 @@ function tabbuilder.handle_singleplayer_buttons(fields) local world_doubleclick = false if fields["sp_worlds"] ~= nil then - local event = explode_textlist_event(fields["sp_worlds"]) + local event = engine.explode_textlist_event(fields["sp_worlds"]) - if event.typ == "DCL" then + if event.type == "DCL" then world_doubleclick = true end - if event.typ == "CHG" then + if event.type == "CHG" then engine.setting_set("mainmenu_last_selected_world", filterlist.get_raw_index(worldlist,engine.get_textlist_index("sp_worlds"))) end @@ -813,8 +813,8 @@ end -------------------------------------------------------------------------------- function tabbuilder.handle_texture_pack_buttons(fields) if fields["TPs"] ~= nil then - local event = explode_textlist_event(fields["TPs"]) - if event.typ == "CHG" or event.typ=="DCL" then + local event = engine.explode_textlist_event(fields["TPs"]) + if event.type == "CHG" or event.type == "DCL" then local index = engine.get_textlist_index("TPs") engine.setting_set("mainmenu_last_selected_TP", index) diff --git a/builtin/misc_helpers.lua b/builtin/misc_helpers.lua index 097c65865..a7a8f6b1c 100644 --- a/builtin/misc_helpers.lua +++ b/builtin/misc_helpers.lua @@ -116,26 +116,6 @@ function math.hypot(x, y) end -------------------------------------------------------------------------------- -function explode_textlist_event(text) - - local retval = {} - retval.typ = "INV" - - local parts = text:split(":") - - if #parts == 2 then - retval.typ = parts[1]:trim() - retval.index= tonumber(parts[2]:trim()) - - if type(retval.index) ~= "number" then - retval.typ = "INV" - end - end - - return retval -end - --------------------------------------------------------------------------------- function get_last_folder(text,count) local parts = text:split(DIR_DELIM) @@ -369,6 +349,37 @@ if minetest then end -------------------------------------------------------------------------------- +function tbl.explode_table_event(evt) + if evt ~= nil then + local parts = evt:split(":") + if #parts == 3 then + local t = parts[1]:trim() + local r = tonumber(parts[2]:trim()) + local c = tonumber(parts[3]:trim()) + if type(r) == "number" and type(c) == "number" and t ~= "INV" then + return {type=t, row=r, column=c} + end + end + end + return {type="INV", row=0, column=0} +end + +-------------------------------------------------------------------------------- +function tbl.explode_textlist_event(evt) + if evt ~= nil then + local parts = evt:split(":") + if #parts == 2 then + local t = parts[1]:trim() + local r = tonumber(parts[2]:trim()) + if type(r) == "number" and t ~= "INV" then + return {type=t, index=r} + end + end + end + return {type="INV", index=0} +end + +-------------------------------------------------------------------------------- -- mainmenu only functions -------------------------------------------------------------------------------- if engine ~= nil then diff --git a/builtin/modmgr.lua b/builtin/modmgr.lua index 13f81c6e0..f530ccc4a 100644 --- a/builtin/modmgr.lua +++ b/builtin/modmgr.lua @@ -572,7 +572,7 @@ function modmgr.handle_modmgr_buttons(fields) } if fields["modlist"] ~= nil then - local event = explode_textlist_event(fields["modlist"]) + local event = engine.explode_textlist_event(fields["modlist"]) modmgr.selected_mod = event.index end @@ -693,10 +693,10 @@ end -------------------------------------------------------------------------------- function modmgr.handle_configure_world_buttons(fields) if fields["world_config_modlist"] ~= nil then - local event = explode_textlist_event(fields["world_config_modlist"]) + local event = engine.explode_textlist_event(fields["world_config_modlist"]) modmgr.world_config_selected_mod = event.index - if event.typ == "DCL" then + if event.type == "DCL" then modmgr.world_config_enable_mod(nil) end end |