aboutsummaryrefslogtreecommitdiff
path: root/src/script/lua_api/l_base.cpp
Commit message (Collapse)AuthorAge
* Fix segfault in deprecation logging due to tail call, log by default (#10174)rubenwardy2020-10-31
|
* Deprecate get_player_velocity and add_player_velocity (#10173)rubenwardy2020-10-04
|
* Server class code cleanups (#9769)Loïc Blot2020-05-07
| | | | | | | | | | | | | | | | | | | * Server::overrideDayNightRatio doesn't require to return bool There is no sense to sending null player, the caller should send a valid object * Server::init: make private & cleanup This function is always called before start() and loads some variables which can be loaded in constructor directly. Make it private and call it directly in start * Split Server inventory responsibility to a dedicated object This splits permit to found various historical issues: * duplicate lookups on player connection * sending inventory to non related player when a player connects * non friendly lookups on detached inventories ownership This reduce the detached inventory complexity and also increased the lookup performance in a quite interesting way for servers with thousands of inventories.
* script: Put getGuiEngine() inside a client-only #ifdefsfan52020-04-27
|
* Work around LuaJIT issues on aarch64 (#9614)sfan52020-04-08
| | | | - Move the text segment below the 47-bit limit, needed for script_exception_wrapper which must be lightuserdata - Replace CUSTOM_RIDX_SCRIPTAPI with full userdata
* markAliasDeprecated: Fix MSVC buildSmallJoker2018-09-11
|
* Log deprecated Lua function calls (#7491)SmallJoker2018-07-01
|
* Modernize lua read (part 2 & 3): C++ templating assurance (#7410)Loïc Blot2018-06-30
| | | | | | | | | * Modernize lua read (part 2 & 3): C++ templating assurance Implement the boolean reader Implement the string reader Also remove unused & unimplemented script_error_handler Add a reader with default value
* Modernize lua read (part 1): C++ templating insurance (#7394)Loïc Blot2018-06-04
| | | | | | | * Modernize lua read (part 1): C++ templating assurance Implement the float reader
* Fix isNan on setYaw Lua call (#7380)Loïc Blot2018-05-31
| | | | * Fix isNan on setYaw Lua call
* Add online content repositoryrubenwardy2018-04-19
| | | | Replaces mods and texture pack tabs with a single content tab
* Use a settings object for the main settingsShadowNinja2017-05-06
| | | | | | | This unifies the settings APIs. This also unifies the sync and async registration APIs, since the async registration API did not support adding non-functions to the API table.
* Add `get_wielded_item`red-0012017-03-13
|
* [CSM] Add method that display chat to client-sided lua. (#5089) (#5091)red-0012017-03-13
| | | | * squashed: [Client-sided scripting] Don't register functions that don't work. (#5091)
* Use numeric indices and raw table access with LUA_REGISTRYINDEXKahrl2015-08-27
|
* Fix current mod name change missed during rebaseShadowNinja2015-05-16
|
* Schematics: Prepend mod path to relative schematic filepathskwolekr2015-04-08
|
* Omnicleanup: header cleanup, add ModApiUtil shared between game and mainmenuKahrl2013-08-14
|
* Move scriptapi to separate folder (by sapier)sapier2013-05-25
On the lua side, notably minetest.env:<function>(<args>) should now be replaced by minetest.<function>(<args>). The old way is and will stay supported for a long time. Also: Update and clean up lua_api.txt (by celeron55) Move EnvRef to lua and remove add_rat and add_firefly (by kahrl) Add separate src/util/CMakeLists.txt, other minor fixes (by kahrl)
ss="hl str">"Name/Password") .. "]" .. "field[0.55,3.2;3.5,0.5;te_playername;;" .. core.formspec_escape(core.setting_get("name")) .. "]" .. "pwdfield[0.55,4;3.5,0.5;te_passwd;]" local bind_addr = core.setting_get("bind_address") if bind_addr ~= nil and bind_addr ~= "" then retval = retval .. "field[0.55,5.2;2.25,0.5;te_serveraddr;" .. fgettext("Bind Address") .. ";" .. core.formspec_escape(core.setting_get("bind_address")) .. "]" .. "field[2.8,5.2;1.25,0.5;te_serverport;" .. fgettext("Port") .. ";" .. core.formspec_escape(core.setting_get("port")) .. "]" else retval = retval .. "field[0.55,5.2;3.5,0.5;te_serverport;" .. fgettext("Server Port") .. ";" .. core.formspec_escape(core.setting_get("port")) .. "]" end retval = retval .. "textlist[4,0.25;7.5,3.7;srv_worlds;" .. menu_render_worldlist() .. ";" .. index .. "]" return retval end -------------------------------------------------------------------------------- local function main_button_handler(this, fields, name, tabdata) local world_doubleclick = false if fields["srv_worlds"] ~= nil then local event = core.explode_textlist_event(fields["srv_worlds"]) local selected = core.get_textlist_index("srv_worlds") if selected ~= nil then local filename = menudata.worldlist:get_list()[selected].path local worldconfig = modmgr.get_worldconfig(filename) filename = filename .. DIR_DELIM .. "world.mt" if worldconfig.creative_mode ~= nil then core.setting_set("creative_mode", worldconfig.creative_mode) else local worldfile = Settings(filename) worldfile:set("creative_mode", core.setting_get("creative_mode")) if not worldfile:write() then core.log("error", "Failed to write world config file") end end if worldconfig.enable_damage ~= nil then core.setting_set("enable_damage", worldconfig.enable_damage) else local worldfile = Settings(filename) worldfile:set("enable_damage", core.setting_get("enable_damage")) if not worldfile:write() then core.log("error", "Failed to write world config file") end end end if event.type == "DCL" then world_doubleclick = true end if event.type == "CHG" then core.setting_set("mainmenu_last_selected_world", menudata.worldlist:get_raw_index(core.get_textlist_index("srv_worlds"))) return true end end if menu_handle_key_up_down(fields,"srv_worlds","mainmenu_last_selected_world") then return true end if fields["cb_creative_mode"] then core.setting_set("creative_mode", fields["cb_creative_mode"]) local selected = core.get_textlist_index("srv_worlds") local filename = menudata.worldlist:get_list()[selected].path .. DIR_DELIM .. "world.mt" local worldfile = Settings(filename) worldfile:set("creative_mode", fields["cb_creative_mode"]) if not worldfile:write() then core.log("error", "Failed to write world config file") end return true end if fields["cb_enable_damage"] then core.setting_set("enable_damage", fields["cb_enable_damage"]) local selected = core.get_textlist_index("srv_worlds") local filename = menudata.worldlist:get_list()[selected].path .. DIR_DELIM .. "world.mt" local worldfile = Settings(filename) worldfile:set("enable_damage", fields["cb_enable_damage"]) if not worldfile:write() then core.log("error", "Failed to write world config file") end return true end if fields["cb_server_announce"] then core.setting_set("server_announce", fields["cb_server_announce"]) return true end if fields["start_server"] ~= nil or world_doubleclick or fields["key_enter"] then local selected = core.get_textlist_index("srv_worlds") if selected ~= nil then gamedata.playername = fields["te_playername"] gamedata.password = fields["te_passwd"] gamedata.port = fields["te_serverport"] gamedata.address = "" gamedata.selected_world = menudata.worldlist:get_raw_index(selected) core.setting_set("port",gamedata.port) if fields["te_serveraddr"] ~= nil then core.setting_set("bind_address",fields["te_serveraddr"]) end --update last game local world = menudata.worldlist:get_raw_element(gamedata.selected_world) local game,index = gamemgr.find_by_gameid(world.gameid) core.setting_set("menu_last_game",game.id) core.start() return true end end if fields["world_create"] ~= nil then local create_world_dlg = create_create_world_dlg(true) create_world_dlg:set_parent(this) create_world_dlg:show() this:hide() return true end if fields["world_delete"] ~= nil then local selected = core.get_textlist_index("srv_worlds") if selected ~= nil and selected <= menudata.worldlist:size() then local world = menudata.worldlist:get_list()[selected] if world ~= nil and world.name ~= nil and world.name ~= "" then local index = menudata.worldlist:get_raw_index(selected) local delete_world_dlg = create_delete_world_dlg(world.name,index) delete_world_dlg:set_parent(this) delete_world_dlg:show() this:hide() end end return true end if fields["world_configure"] ~= nil then local selected = core.get_textlist_index("srv_worlds") if selected ~= nil then local configdialog = create_configure_world_dlg( menudata.worldlist:get_raw_index(selected)) if (configdialog ~= nil) then configdialog:set_parent(this) configdialog:show() this:hide() end end return true end return false end -------------------------------------------------------------------------------- tab_server = { name = "server", caption = fgettext("Server"), cbf_formspec = get_formspec, cbf_button_handler = main_button_handler, on_change = nil }