guiHyperText: Fix blinky cursor on link hover (#9392)
[oweals/minetest.git] / doc / menu_lua_api.txt
index 49c6fbef0a8d6012fab5c7d78f5c51c05212fd55..4861ed0d9c36faaf1b80aab138ed1aceedeaac64 100644 (file)
@@ -1,5 +1,5 @@
-Minetest Lua Mainmenu API Reference 0.5.0
-========================================
+Minetest Lua Mainmenu API Reference 5.2.0
+=========================================
 
 Introduction
 -------------
@@ -33,14 +33,6 @@ core.close()
 Filesystem:
 core.get_builtin_path()
 ^ returns path to builtin root
-core.get_modpath() (possible in async calls)
-^ returns path to global modpath
-core.get_clientmodpath() (possible in async calls)
-^ returns path to global client-side modpath
-core.get_gamepath() (possible in async calls)
-^ returns path to global gamepath
-core.get_texturepath() (possible in async calls)
-^ returns path to default textures
 core.create_dir(absolute_path) (possible in async calls)
 ^ absolute_path to directory to create (needs to be absolute)
 ^ returns true/false
@@ -71,6 +63,9 @@ core.get_video_drivers()
 ^ returns list of available video drivers' settings name and 'friendly' display name
 ^ e.g. { {name="opengl", friendly_name="OpenGL"}, {name="software", friendly_name="Software Renderer"} }
 ^ first element of returned list is guaranteed to be the NULL driver
+core.get_mapgen_names([include_hidden=false]) -> table of map generator algorithms
+    registered in the core (possible in async calls)
+core.get_cache_path() -> path of cache
 
 Formspec:
 core.update_formspec(formspec)
@@ -84,6 +79,8 @@ core.explode_table_event(string) -> table
 core.explode_textlist_event(string) -> table
 ^ returns e.g. {type="CHG", index=1}
 ^ type: "INV" (no row selected), "CHG" (selected) or "DCL" (double-click)
+core.set_formspec_prepend(formspec)
+^ string to be added to every mainmenu formspec, to be used for theming.
 
 GUI:
 core.set_background(type, texturepath,[tile],[minsize])
@@ -94,13 +91,14 @@ core.set_background(type, texturepath,[tile],[minsize])
 core.set_clouds(<true/false>)
 core.set_topleft_text(text)
 core.show_keys_menu()
-core.file_open_dialog(formname,caption)
-^ shows a file open dialog
+core.show_path_select_dialog(formname, caption, is_file_select)
+^ shows a path select dialog
 ^ formname is base name of dialog response returned in fields
 ^     -if dialog was accepted "_accepted"
-^^       will be added to fieldname containing the path
+^        will be added to fieldname containing the path
 ^     -if dialog was canceled "_cancelled"
 ^        will be added to fieldname value is set to formname itself
+^ if `is_file_select` is `true`, a file and not a folder will be selected
 ^ returns nil or selected file/folder
 core.get_screen_info()
 ^ returns {
@@ -111,29 +109,47 @@ core.get_screen_info()
        window_height   = <current window height>
        }
 
-Packages:
-core.get_game(index)
-^ returns {
-       id               = <id>,
-       path             = <full path to game>,
-       gamemods_path    = <path>,
-       name             = <name of game>,
-       menuicon_path    = <full path to menuicon>,
-       DEPRECATED:
-       addon_mods_paths = {[1] = <path>,},
-}
-core.get_games() -> table of all games in upper format (possible in async calls)
-core.get_mapgen_names([include_hidden=false]) -> table of map generator algorithms
-    registered in the core (possible in async calls)
-core.get_mod_info(path)
-^ returns  {
-       name             = "name of mod",
-       type             = "mod" or "modpack",
-       description      = "description",
-       path             = "path/to/mod",
-       depends          = {"mod", "names"},
-       optional_depends = {"mod", "names"},
-}
+### Content and Packages
+
+Content - an installed mod, modpack, game, or texture pack (txt)
+Package - content which is downloadable from the content db, may or may not be installed.
+
+* core.get_modpath() (possible in async calls)
+       * returns path to global modpath
+* core.get_clientmodpath() (possible in async calls)
+       * returns path to global client-side modpath
+* core.get_gamepath() (possible in async calls)
+       * returns path to global gamepath
+* core.get_texturepath() (possible in async calls)
+       * returns path to default textures
+* core.get_game(index)
+       * returns:
+
+               {
+                       id               = <id>,
+                       path             = <full path to game>,
+                       gamemods_path    = <path>,
+                       name             = <name of game>,
+                       menuicon_path    = <full path to menuicon>,
+                       author           = "author",
+                       DEPRECATED:
+                       addon_mods_paths = {[1] = <path>,},
+               }
+
+* core.get_games() -> table of all games in upper format (possible in async calls)
+* core.get_content_info(path)
+       * returns
+
+               {
+                       name             = "name of content",
+                       type             = "mod" or "modpack" or "game" or "txp",
+                       description      = "description",
+                       author           = "author",
+                       path             = "path/to/content",
+                       depends          = {"mod", "names"}, -- mods only
+                       optional_depends = {"mod", "names"}, -- mods only
+               }
+
 
 Favorites:
 core.get_favorites(location) -> list of favorites (possible in async calls)
@@ -163,11 +179,14 @@ core.log(loglevel, line) (possible in async calls)
 ^ loglevel one of "error", "action", "info", "verbose"
 
 Settings:
-core.setting_set(name, value)
-core.setting_get(name) -> string or nil (possible in async calls)
-core.setting_setbool(name, value)
-core.setting_getbool(name) -> bool or nil (possible in async calls)
-core.setting_save() -> nil, save all settings to config file
+core.settings:set(name, value)
+core.settings:get(name) -> string or nil (possible in async calls)
+core.settings:set_bool(name, value)
+core.settings:get_bool(name) -> bool or nil (possible in async calls)
+core.settings:save() -> nil, save all settings to config file
+
+For a complete list of methods of the Settings object see
+[lua_api.txt](https://github.com/minetest/minetest/blob/master/doc/lua_api.txt)
 
 Worlds:
 core.get_worlds() -> list of worlds (possible in async calls)
@@ -224,9 +243,12 @@ Limitations of Async operations
  -No access to global lua variables, don't even try
  -Limited set of available functions
        e.g. No access to functions modifying menu like core.start,core.close,
-       core.file_open_dialog
-
+       core.show_path_select_dialog
 
-Class reference
+Background music
 ----------------
-Settings: see lua_api.txt
+The main menu supports background music.
+It looks for a `main_menu` sound in `$USER_PATH/sounds`. The same naming
+conventions as for normal sounds apply.
+This means the player can add a custom sound.
+It will be played in the main menu (gain = 1.0), looped.