53 Commits

Author SHA1 Message Date
kwolekr
72809172eb Change internal type for seeds to s32
This fixes value truncation (and therefore incompatibility) on platforms
with an LP32 data model, such as VAX or MS-DOS.
2016-06-04 01:51:44 -04:00
est31
9dfbad4e4a Pathfinder: Fix style
* Fix naming style for methods and classes:
	Use camelCase for methods and PascalCase for classes as
	code style demands it. And use sneak_case for methods that
	are not member of a class.
* Replace "* " with " *" for Pointers
* Same for references
* Put function body opening braces on new line
* Other misc minor non functional style improvements
2016-05-01 15:32:02 +02:00
Auke Kok
9cf7a3ef96 Add consistent monotonic day counter - get_day_count()
I've written several experimental bits of code that revolve around the
need for a consistent calendar, but implementing one is extremely hard
in mods due to time changes and mods overriding core.get_timeofday(),
which will conflict.

The second part of the problem is that doing this from a mod requires
constant maintenance of a settings file.

An implementation in core is trivial, however, and solves all of
these problems at virtually no cost: No extra branches in server
steps, and a single branch when minetest.set_time_of_day(), which is
entirely reasonable.

We store the day_count value in env_meta.txt.

The use case is obvious: This change allows mods to create an actual
virtual calendar, or properly account for seasonal changes, etc..

We add a "/days" chatcommand that displays the current day count. No
permissions are needed. It can only retrieve the day count, not
modify it.
2016-03-09 01:45:23 +01:00
est31
fd7cbba94b Add minetest.register_lbm() to run code on block load only 2016-03-07 19:54:26 +01:00
Kahrl
02cbda530b Add '/clearobjects quick' 2016-02-11 04:22:58 +00:00
kwolekr
4072700558 Add callback parameter for core.emerge_area() 2015-11-02 18:43:09 -05:00
kwolekr
be8cc00f50 SAPI: Move core.get_us_time() to Util module 2015-10-26 03:46:36 -04:00
kwolekr
47189162aa SAPI: Mark all Lua API functions requiring envlock 2015-10-25 23:06:48 -04:00
kwolekr
23316c9f92 Add /emergeblocks command and core.emerge_area() Lua API 2015-09-23 15:56:24 -04:00
Kahrl
799adf20e9 Push error handler afresh each time lua_pcall is used
Fixes "double fault" / "error in error handling" messages
(issue #1423) and instead shows a complete backtrace.
2015-08-27 01:56:06 +02:00
kwolekr
09ce485271 SEnv: Remove static_exists from ActiveObjects in deleted blocks 2015-08-16 15:55:07 -04:00
kwolekr
2fb4917d8e SAPI: Track last executed mod and include in error messages 2015-08-12 23:56:12 -04:00
kwolekr
be00c2f46a Improve Script CPP API diagnostics 2015-08-05 21:13:03 -04:00
TeTpaAka
db4fc8326e Add return list of individual counts to find_node_in_area 2015-06-13 19:39:18 +02:00
kwolekr
cba840d188 Add core.find_nodes_with_meta() script API 2015-05-05 16:21:59 -04:00
Loic Blot
ba8ec92a6e Use std::vector instead of std::set for Environment::getObjectsInsideRadius
We are only iterating sequentially, we don't need a set here
Also use a vector reference instead of a copy
2015-04-16 18:37:29 +02:00
Craig Robbins
27791ee1aa For usages of assert() that are meant to persist in Release builds (when NDEBUG is defined), replace those usages with persistent alternatives 2015-03-07 22:41:47 +10:00
Craig Robbins
102e0ee00d Change find_surface_nodes_in_area to find_nodes_in_area_under_air 2015-02-27 21:42:00 +10:00
Loic Blot
0d823b300e Add find_surface_nodes_in_area LUA call which permit to only get the nodes which touch air. This permit to massively improve performance for mods like plantlife 2015-02-27 21:34:33 +10:00
Loic Blot
1905f12b61 SAO work: ActiveObject types & SAO cleanup * Replace u8 types with ActiveObjectType. * Merge content_object.h into activeobject.h * Remove DummyLoadSAO, it's now unused. * Remove ItemSAO, it's also unused 2015-02-17 09:09:50 +01:00
Loic Blot
eb9db33a62 Performance Improvement: Use a cache which caches result for getFacePositions.
This greatly reduce the number of std::list generated by caching the result, which is always constant for each radius selected.
In the callgrind map, you will see original:
  * 3.3M calls to std::list for 9700 calls to getFacePositions
In the modified version, you will see:
  * 3.3K calls to std::list for 6900 call to getFacePositions
Callgrind map is here: #2321

it's a huge performance improvement to l_find_node_near
2015-02-16 11:27:44 +01:00
kwolekr
66b0d25786 Add ability to delete MapBlocks from map
Also add a Lua API and chatcommand for this
2015-01-15 16:48:56 -05:00
kwolekr
2e5d9bb332 LuaVoxelManip: Remove blank allocator 2014-12-29 01:31:37 -05:00
kwolekr
20b9e50aa9 LuaVoxelManip: Add option to allocate blank data 2014-12-27 23:09:36 -05:00
kwolekr
a3e54044a9 Add support for NoiseParams in minetest.get_perlin() and add docs on NoiseParams to lua_api.txt 2014-12-12 02:02:44 -05:00
kwolekr
22b22968a1 Add flags and lacunarity as new noise parameters
Add 'absolute value' option to noise map functions
Extend persistence modulation to 3D noise
Extend 'eased' option to noise2d_perlin* functions
Some noise.cpp formatting fixups
2014-12-07 21:59:32 -05:00
Craig Robbins
aacc3cba46 Remove most exceptions from getNode() (and variants) 2014-11-14 18:05:34 +10:00
ShadowNinja
531d960b6a Fix object reference pushing functions when called from coroutines 2014-10-07 16:37:45 -04:00
kwolekr
ee1fee1578 Add LuaVoxelManip methods: get_node_at() and set_node_at() 2014-09-01 17:33:21 -04:00
Craig Robbins
8152f54ac6 Fix seg fault if popping from empty stack (L-system trees)
See: https://github.com/minetest/minetest/issues/1525

Background
Wuzzy2: If you attempt to spawn a L-system tree with minetest.spawn_tree, you can make Minetest crash if it is attempted to pop an empty stack.

ShadowNinja: This shouldn't cause a segmentation fault, but it should throw a Lua error

Commit Description
This commit throws a Lua error instead of causing a segmentation fault. The server will still "crash" but will include a Lua backtrace.

L-Systems fix randomness
Unless a random seed is provided (via Lua treedef) seed the PRNG with a different seed for each tree
Resolves: https://github.com/minetest/minetest/issues/1469

Fix l-system crash when treedef random_level not set by Lua
2014-08-23 06:40:27 +02:00
sapier
4b2e3ceaad Mod profiling support
Config settings:
profiling = true/false (gather statistics)
detailed_profiling = true/false (break mod times to callbacks)

Chat commands:
save_mod_profile saves current statistics in debug.txt and shows on console (on default loglevel)
2014-08-19 22:22:57 +02:00
ShadowNinja
9718e20bfa Use "core" namespace internally 2014-05-08 13:02:04 -04:00
proller
495ed5ec8b Remove liquid_finite and weather 2014-04-18 21:56:48 +04:00
ShadowNinja
ca5b6594b9 Pass pointed_thing to on_punch and minetest.register_on_punchnode callbacks 2014-01-23 19:21:56 -05:00
Novatux
0a96131bf4 Add forceloading 2014-01-11 17:54:00 +01:00
stujones11
ace4953a52 Make line_of_sight return blocking node position 2013-12-12 16:11:00 -05:00
ShadowNinja
2741a7e6e0 Optimize table creation 2013-11-30 13:05:13 -05:00
Novatux
92d806ab21 Add minetest.swap_node 2013-11-30 18:37:56 +01:00
sapier
160348a0ec Fix line_of_sight (AGAIN) 2013-11-25 00:04:05 +01:00
ShadowNinja
5cb34cf9dd Pass a errfunc to lua_pcall to get a traceback 2013-11-15 14:13:31 -05:00
kwolekr
d8e65be2d3 Weather: Clean up getHeat/getHumidity somewhat 2013-09-16 23:33:53 -04:00
Novatux
b8ccaf35f4 Add minetest.get_gametime() API function, that returns the number of seconds since the world was created. 2013-09-08 11:09:50 +02:00
Kahrl
ee90d438b8 Omnicleanup: header cleanup, add ModApiUtil shared between game and mainmenu 2013-08-14 21:03:33 +02:00
proller
d2cbeba8b6 Better snow fall, finite liquid transform, leveled nodes api 2013-07-28 17:14:31 +04:00
proller
cdb2b82262 Weather support 2013-07-27 23:21:48 +04:00
kwolekr
ee2d8bc482 LuaVoxelManip: Fix minor bug with set_lighting, remove coordinate params for light and liquid updates 2013-06-29 22:23:00 -04:00
kwolekr
5f60730da4 Apply various fixes to several things 2013-06-27 22:35:35 -04:00
kwolekr
0e1e60e195 LuaVoxelManip: Separate VoxelManip data get/set from emerging/blitting data back to map 2013-06-27 22:35:35 -04:00
kwolekr
5c8a16016c Add Lua on_mapgen_init callback, and minetest.set_mapgen_params API 2013-06-27 22:35:35 -04:00
kwolekr
f9c5ed3c7b Add minetest.get_mapgen_object to API 2013-06-27 22:35:35 -04:00