aboutsummaryrefslogtreecommitdiff
path: root/src/script
AgeCommit message (Collapse)Author
2015-12-02Add on_secondary_use when right clicking an item in the airAlex Ford
2015-11-08Add LuaSecureRandomest31
2015-11-07Add support for audio feedback if placing node failedBlockMen
2015-11-06Add server side ncurses terminalest31
This adds a chat console the server owner can use for administration or to talk with players. It runs in its own thread, which makes the user interface immune to the server's lag, behaving just like a client, except timeout. As it uses the same console code as the f10 console, things like nick completion or a scroll buffer basically come for free. The terminal itself is written in a general way so that adding a client version later on is just about implementing an interface. Fatal errors are printed after the console exists and the ncurses terminal buffer gets cleaned up with endwin(), so that the error still remains visible. The server owner can chose their username their entered text will have in chat and where players can send PMs to. Once the username is secured with a password to prevent anybody to take over the server, the owner can execute admin tasks over the console. This change includes a contribution by @kahrl who has improved ncurses library detection.
2015-11-05Schematics: Add core.place_schematic_on_vmanip APIkwolekr
Fix memory leak in minetest.place_schematic Slightly refactor Schematic code
2015-11-02Add callback parameter for core.emerge_area()kwolekr
2015-11-01Fix Lua scripting synchronizationkwolekr
For several years now, the lua script lock has been completely broken. This commit fixes the main issue (creation of a temporary rather than scoped object), and fixes a subsequent deadlock issue caused by nested script API calls by adding support for recursive mutexes.
2015-10-31Fix server crashing on Lua errorsShadowNinja
Previously, the server called FATAL_ERROR when a Lua error occured. This caused a (mostly useless) core dump. The server now simply throws an exception, which is caught and printed before exiting with a non-zero return value. This also fixes a number of instances where errors were logged multiple times.
2015-10-26SAPI: Fix seed parameter truncation for LuaPseudoRandom constructorkwolekr
Also fix a potential seed truncation issue on platforms where the range of ptrdiff_t (the underlying type of lua_Integer) is too small.
2015-10-26SAPI: Move core.get_us_time() to Util modulekwolekr
2015-10-26Remove some abort() callsest31
abort() doesn't benefit from the high level abstractions from FATAL_ERROR.
2015-10-25SAPI: Throw runtime error instead of if l_get_mapgen_object called in ↵kwolekr
incorrect thread
2015-10-25SAPI: Mark all Lua API functions requiring envlockkwolekr
2015-10-26Correct comment in l_util.cppest31
Remove outdated loglevel list from a l_util.cpp comment, and rather point to the updated code.
2015-10-25Add option to disable backface culling for modelsBlockMen
- Disabled by default (except players) - Fixes #2984
2015-10-18ABMs: Make catch-up behaviour optionalparamat
Default is true for backwards compatibility Update lua_api.txt
2015-10-18Remove wstrgettextest31
Everywhere where wstrgettext was used, its output was converted back to utf8. As wstrgettext internally converts the return value from utf8 to wstring, it has been a waste. Remove the function, and use strgettext instead.
2015-10-17Fix crash regression when invsize formspec gets usedest31
The invsize formspec element is outdated. Even though, it is still supported, only a deprecation warning is shown, introduced by commit [1]. The lua context passed to the log_deprecated method added by commit [1] is NULL for the invsize deprecation warning, as its run on the client and not the server. Commit [1] has removed checks for NULL inside the log_deprecated method, resulting in a crash when a formspec with an invsize element is parsed. This commit puts the check back. Fixes #3260. Referenced commits: [1]: b5acec0a3c5701c53854ff7afdf4008863e6e8df "Add proper lua api deprecated handling" [2]: 7b8d372947aae232ddf598155e972bb4dda157a "Use warningstream for deprecated field messages and refactor log_deprecated"
2015-10-15Use warningstream for deprecated field messages and refactor log_deprecatedShadowNinja
2015-10-14Rename macros with two leading underscoresShadowNinja
These names are reserved for the compiler/library implementations.
2015-10-14Refactor loggingShadowNinja
- Add warning log level - Change debug_log_level setting to enumeration string - Map Irrlicht log events to MT log events - Encapsulate log_* functions and global variables into a class, Logger - Unify dstream with standard logging mechanism - Unify core.debug() with standard core.log() script API
2015-10-04Add new ContentParamType2 "CPT2_DEGROTATE"est31
This might break some mods, but it is important for all uses of the param2 to be documented. This doesn't need a serialisation version or network protocol version change, as old clients will still work on new servers, and it is bearable to have new clients getting non rotated plants on old servers.
2015-10-04Allow setting chunksize in core.set_mapgen_paramskwolekr
2015-10-04Hide mapgens from main menu not intended for end userskwolekr
2015-10-04Add emerge completion callback mechanismkwolekr
Major refactor of emerge.cpp and Map::init/finishBlockMake
2015-10-04Define and use limit constants for Irrlicht fixed-width typeskwolekr
2015-10-02Add get_biome_id(biome_name) callbackDuane Robertson
It returns the index used in mg->biomemap for a given biome name. The biomemap is useless without this unless you re-register all existing biomes, which could cause problems for anyone else trying to use biomemap. With this, you can quickly create a lookup table of ids and names.
2015-09-23Add /emergeblocks command and core.emerge_area() Lua APIkwolekr
2015-09-19Various style cleanups + unused code removalest31
-> Don't pass pointer to whole IGameDef to NodeMetadata constructors and deserializers, but only to IItemDefManager, which is needed -> Remove the unused content_mapnode_get_new_name() method -> Fix style for MapBlock::deSerialize and MapBlock::deSerialize_pre22, improving accuracy of error messages a bit -> Fix style at other serialisation methods too -> Improve accuracy of some comments
2015-09-17Ore: Add puff ore typekwolekr
2015-09-13Ore: Add ore sheet column height range selectionkwolekr
Modders are now able to select the range of ore column height, and the midpoint at which they 'grow' starting from. This commit adds three new parameters for the 'sheet' ore type: column_height_min, column_height_max, and column_midpoint_factor. clust_size is now deprecated for this ore type.
2015-09-03Areastore: fix "attempt to index a number value"est31
Before, calling get_areas_in_area for an areastore with both include_borders and include_data would result in a lua error, if there was at least one area as result: attempt to index a number value in function 'get_areas_in_area'
2015-08-30l_mainmenu.h: remove unused l_get_dirlist functionest31
The commit 8f9af57314f71aae1cc77e13f9996e13015d776d "Add core.get_dir_list" by @ShadowNinja has removed the implementation of the l_get_dirlist function and all its usages from the l_mainmenu.cpp file, but hasn't removed it from the header file. The reason why this hasn't been detected earlier is that C++ has this interesting feature to still make it possible to create instances of classes whose never used private methods are declared but not defined.
2015-08-27Push error handler afresh each time lua_pcall is usedKahrl
Fixes "double fault" / "error in error handling" messages (issue #1423) and instead shows a complete backtrace.
2015-08-27Use numeric indices and raw table access with LUA_REGISTRYINDEXKahrl
2015-08-23Clean up threadingShadowNinja
* Rename everything. * Strip J prefix. * Change UpperCamelCase functions to lowerCamelCase. * Remove global (!) semaphore count mutex on OSX. * Remove semaphore count getter (unused, unsafe, depended on internal API functions on Windows, and used a hack on OSX). * Add `Atomic<type>`. * Make `Thread` handle thread names. * Add support for C++11 multi-threading. * Combine pthread and win32 sources. * Remove `ThreadStarted` (unused, unneeded). * Move some includes from the headers to the sources. * Move all of `Event` into its header (allows inlining with no new includes). * Make `Event` use `Semaphore` (except on Windows). * Move some porting functions into `Thread`. * Integrate logging with `Thread`. * Add threading test.
2015-08-18SAPI: Disable unlockable time profilingkwolekr
2015-08-16SEnv: Remove static_exists from ActiveObjects in deleted blockskwolekr
2015-08-13minimap: Add ability to disable from serverkwolekr
2015-08-12SAPI: Track last executed mod and include in error messageskwolekr
2015-08-10Display Lua memory usage at the time of Out-of-Memory errorkwolekr
Also misc. minor cleanups
2015-08-05Improve Script CPP API diagnosticskwolekr
2015-08-05Fix tiling issues for PLANTLIKE and FIRELIKE with FSAARealBadAngel
2015-08-03Biome API: Make fallback biome stone and water, disable fillerparamat
2015-07-27Add AreaStore data structureest31
2015-07-25Fix MSVC number conversion warningSmallJoker
2015-07-25Fix minetest.get_(all)_craft_recipe(s) regressionest31
Since 03e0dd33a847a83d975282c6caf6b926306e7b57 the calls didn't return an output count for the recipes.
2015-07-25Cleanup server addparticle(spawner) by merge two identical functions.Loic Blot
2015-07-23Optional reconnect functionalityest31
Enable the server to request the client to reconnect. This can be done with the now extended minetest.request_shutdown([reason], [reconnect]) setting.
2015-07-20Added get_player_velocity() method. Fixes #1176Elia Argentieri