summaryrefslogtreecommitdiff
path: root/doc/menu_lua_api.txt
diff options
context:
space:
mode:
authorsapier <Sapier at GMX dot net>2014-04-18 15:39:15 +0200
committersapier <Sapier at GMX dot net>2014-05-16 22:57:14 +0200
commitc3984569c06dc3c2890516e95adc38dcab9ec89a (patch)
treec3b134eb11cadad6b70ff866e4c9e1167b509235 /doc/menu_lua_api.txt
parent34d872628d5099ae520dd92433e211f561aaf611 (diff)
downloadminetest-c3984569c06dc3c2890516e95adc38dcab9ec89a.tar.gz
minetest-c3984569c06dc3c2890516e95adc38dcab9ec89a.tar.bz2
minetest-c3984569c06dc3c2890516e95adc38dcab9ec89a.zip
Add formspec toolkit and refactor mainmenu to use it
Fix crash on using cursor keys in client menu without selected server Add support for non fixed size tabviews
Diffstat (limited to 'doc/menu_lua_api.txt')
-rw-r--r--doc/menu_lua_api.txt108
1 files changed, 54 insertions, 54 deletions
diff --git a/doc/menu_lua_api.txt b/doc/menu_lua_api.txt
index 109aededa..cd44fa815 100644
--- a/doc/menu_lua_api.txt
+++ b/doc/menu_lua_api.txt
@@ -1,4 +1,4 @@
-Minetest Lua Mainmenu API Reference 0.4.9
+Minetest Lua Mainmenu API Reference 0.4.10
========================================
Introduction
@@ -8,14 +8,14 @@ Description of formspec language to show your menu is in lua_api.txt
Callbacks
---------
-engine.buttonhandler(fields): called when a button is pressed.
+core.buttonhandler(fields): called when a button is pressed.
^ fields = {name1 = value1, name2 = value2, ...}
-engine.event_handler(event)
+core.event_handler(event)
^ event: "MenuQuit", "KeyEnter", "ExitButton" or "EditBoxEnter"
Gamedata
--------
-The "gamedata" table is read when calling engine.start(). It should contain:
+The "gamedata" table is read when calling core.start(). It should contain:
{
playername = <name>,
password = <password>,
@@ -27,15 +27,15 @@ The "gamedata" table is read when calling engine.start(). It should contain:
Functions
---------
-engine.start()
-engine.close()
+core.start()
+core.close()
Filesystem:
-engine.get_scriptdir()
+core.get_scriptdir()
^ returns directory of script
-engine.get_modpath() (possible in async calls)
+core.get_modpath() (possible in async calls)
^ returns path to global modpath
-engine.get_modstore_details(modid) (possible in async calls)
+core.get_modstore_details(modid) (possible in async calls)
^ modid numeric id of mod in modstore
^ returns {
id = <numeric id of mod in modstore>,
@@ -47,7 +47,7 @@ engine.get_modstore_details(modid) (possible in async calls)
license = <short description of license>,
rating = <float value of current rating>
}
-engine.get_modstore_list() (possible in async calls)
+core.get_modstore_list() (possible in async calls)
^ returns {
[1] = {
id = <numeric id of mod in modstore>,
@@ -55,60 +55,60 @@ engine.get_modstore_list() (possible in async calls)
basename = <basename for mod>
}
}
-engine.get_gamepath() (possible in async calls)
+core.get_gamepath() (possible in async calls)
^ returns path to global gamepath
-engine.get_texturepath() (possible in async calls)
+core.get_texturepath() (possible in async calls)
^ returns path to default textures
-engine.get_dirlist(path,onlydirs) (possible in async calls)
+core.get_dirlist(path,onlydirs) (possible in async calls)
^ path to get subdirs from
^ onlydirs should result contain only dirs?
^ returns list of folders within path
-engine.create_dir(absolute_path) (possible in async calls)
+core.create_dir(absolute_path) (possible in async calls)
^ absolute_path to directory to create (needs to be absolute)
^ returns true/false
-engine.delete_dir(absolute_path) (possible in async calls)
+core.delete_dir(absolute_path) (possible in async calls)
^ absolute_path to directory to delete (needs to be absolute)
^ returns true/false
-engine.copy_dir(source,destination,keep_soure) (possible in async calls)
+core.copy_dir(source,destination,keep_soure) (possible in async calls)
^ source folder
^ destination folder
^ keep_source DEFAULT true --> if set to false source is deleted after copying
^ returns true/false
-engine.extract_zip(zipfile,destination) [unzip within path required]
+core.extract_zip(zipfile,destination) [unzip within path required]
^ zipfile to extract
^ destination folder to extract to
^ returns true/false
-engine.download_file(url,target) (possible in async calls)
+core.download_file(url,target) (possible in async calls)
^ url to download
^ target to store to
^ returns true/false
-engine.get_version() (possible in async calls)
+core.get_version() (possible in async calls)
^ returns current core version
-engine.sound_play(spec, looped) -> handle
+core.sound_play(spec, looped) -> handle
^ spec = SimpleSoundSpec (see lua-api.txt)
^ looped = bool
-engine.sound_stop(handle)
+core.sound_stop(handle)
Formspec:
-engine.update_formspec(formspec)
-engine.get_table_index(tablename) -> index
+core.update_formspec(formspec)
+core.get_table_index(tablename) -> index
^ can also handle textlists
-engine.formspec_escape(string) -> string
+core.formspec_escape(string) -> string
^ escapes characters [ ] \ , ; that can not be used in formspecs
-engine.explode_table_event(string) -> table
+core.explode_table_event(string) -> table
^ returns e.g. {type="CHG", row=1, column=2}
^ type: "INV" (no row selected), "CHG" (selected) or "DCL" (double-click)
-engine.explode_textlist_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)
GUI:
-engine.set_background(type, texturepath)
+core.set_background(type, texturepath)
^ type: "background", "overlay", "header" or "footer"
-engine.set_clouds(<true/false>)
-engine.set_topleft_text(text)
-engine.show_keys_menu()
-engine.file_open_dialog(formname,caption)
+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
^ formname is base name of dialog response returned in fields
^ -if dialog was accepted "_accepted"
@@ -116,7 +116,7 @@ engine.file_open_dialog(formname,caption)
^ -if dialog was canceled "_cancelled"
^ will be added to fieldname value is set to formname itself
^ returns nil or selected file/folder
-engine.get_screen_info()
+core.get_screen_info()
^ returns {
density = <screen density 0.75,1.0,2.0,3.0 ... (dpi)>,
display_width = <width of display>,
@@ -126,7 +126,7 @@ engine.get_screen_info()
}
Games:
-engine.get_game(index)
+core.get_game(index)
^ returns {
id = <id>,
path = <full path to game>,
@@ -136,10 +136,10 @@ engine.get_game(index)
DEPRECATED:
addon_mods_paths = {[1] = <path>,},
}
-engine.get_games() -> table of all games in upper format (possible in async calls)
+core.get_games() -> table of all games in upper format (possible in async calls)
Favorites:
-engine.get_favorites(location) -> list of favorites (possible in async calls)
+core.get_favorites(location) -> list of favorites (possible in async calls)
^ location: "local" or "online"
^ returns {
[1] = {
@@ -156,24 +156,24 @@ engine.get_favorites(location) -> list of favorites (possible in async calls)
port = <port>
},
}
-engine.delete_favorite(id, location) -> success
+core.delete_favorite(id, location) -> success
Logging:
-engine.debug(line) (possible in async calls)
+core.debug(line) (possible in async calls)
^ Always printed to stderr and logfile (print() is redirected here)
-engine.log(line) (possible in async calls)
-engine.log(loglevel, line) (possible in async calls)
+core.log(line) (possible in async calls)
+core.log(loglevel, line) (possible in async calls)
^ loglevel one of "error", "action", "info", "verbose"
Settings:
-engine.setting_set(name, value)
-engine.setting_get(name) -> string or nil (possible in async calls)
-engine.setting_setbool(name, value)
-engine.setting_getbool(name) -> bool or nil (possible in async calls)
-engine.setting_save() -> nil, save all settings to config file
+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
Worlds:
-engine.get_worlds() -> list of worlds (possible in async calls)
+core.get_worlds() -> list of worlds (possible in async calls)
^ returns {
[1] = {
path = <full path to world>,
@@ -181,16 +181,16 @@ engine.get_worlds() -> list of worlds (possible in async calls)
gameid = <gameid of world>,
},
}
-engine.create_world(worldname, gameid)
-engine.delete_world(index)
+core.create_world(worldname, gameid)
+core.delete_world(index)
Helpers:
-engine.gettext(string) -> string
+core.gettext(string) -> string
^ look up the translation of a string in the gettext message catalog
fgettext(string, ...) -> string
-^ call engine.gettext(string), replace "$1"..."$9" with the given
-^ extra arguments, call engine.formspec_escape and return the result
-engine.parse_json(string[, nullvalue]) -> something (possible in async calls)
+^ call core.gettext(string), replace "$1"..."$9" with the given
+^ extra arguments, call core.formspec_escape and return the result
+core.parse_json(string[, nullvalue]) -> something (possible in async calls)
^ see core.parse_json (lua_api.txt)
dump(obj, dumped={})
^ Return object serialized as a string
@@ -202,7 +202,7 @@ core.is_yes(arg) (possible in async calls)
^ returns whether arg can be interpreted as yes
Async:
-engine.handle_async(async_job,parameters,finished)
+core.handle_async(async_job,parameters,finished)
^ execute a function asynchronously
^ async_job is a function receiving one parameter and returning one parameter
^ parameters parameter table passed to async_job
@@ -212,8 +212,8 @@ engine.handle_async(async_job,parameters,finished)
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 engine.start,engine.close,
- engine.file_open_dialog
+ e.g. No access to functions modifying menu like core.start,core.close,
+ core.file_open_dialog
Class reference