diff options
author | paramat <mat.gregory@virginmedia.com> | 2015-03-10 04:51:21 +0000 |
---|---|---|
committer | paramat <mat.gregory@virginmedia.com> | 2015-03-11 03:36:39 +0000 |
commit | b2b6bbf3e80f0ab06d62c43567122871ae560534 (patch) | |
tree | 80be48b9c9b60b0e56bee57b901190758a27ea99 | |
parent | adfcdc548491c87b3b24540c9d9a3a488198d1bc (diff) | |
download | minetest-b2b6bbf3e80f0ab06d62c43567122871ae560534.tar.gz minetest-b2b6bbf3e80f0ab06d62c43567122871ae560534.tar.bz2 minetest-b2b6bbf3e80f0ab06d62c43567122871ae560534.zip |
lua_api/l_mapgen: Fix overlapping areas of minetest.generate_ores/decorations
-rw-r--r-- | doc/lua_api.txt | 8 | ||||
-rw-r--r-- | src/script/lua_api/l_mapgen.cpp | 16 | ||||
-rw-r--r-- | src/script/lua_api/l_mapgen.h | 4 |
3 files changed, 16 insertions, 12 deletions
diff --git a/doc/lua_api.txt b/doc/lua_api.txt index 5fa164e6b..d7e956087 100644 --- a/doc/lua_api.txt +++ b/doc/lua_api.txt @@ -1903,10 +1903,10 @@ and `minetest.auth_reload` call the authetification handler. * Sets the noiseparams setting of `name` to the noiseparams table specified in `noiseparams`. * `set_default` is an optional boolean (default: `true`) that specifies whether the setting should be applied to the default config or current active config -* `minetest.generate_ores(vm)` - * Generate all registered ores within the VoxelManip specified by `vm`. -* `minetest.generate_decorations(vm)` - * Generate all registered decorations within the VoxelManip specified by `vm`. +* `minetest.generate_ores(vm, p1, p2)` + * Generate all registered ores within the VoxelManip `vm` and in the area from p1 to p2. +* `minetest.generate_decorations(vm, p1, p2)` + * Generate all registered decorations within the VoxelManip `vm` and in the area from p1 to p2. * `minetest.clear_objects()` * clear all objects in the environments * `minetest.delete_area(pos1, pos2)` diff --git a/src/script/lua_api/l_mapgen.cpp b/src/script/lua_api/l_mapgen.cpp index 54ec69010..e16b0153a 100644 --- a/src/script/lua_api/l_mapgen.cpp +++ b/src/script/lua_api/l_mapgen.cpp @@ -806,7 +806,7 @@ int ModApiMapgen::l_create_schematic(lua_State *L) return 1; } -// generate_ores(vm, [ore_id]) +// generate_ores(vm, p1, p2, [ore_id]) int ModApiMapgen::l_generate_ores(lua_State *L) { EmergeManager *emerge = getServer(L)->getEmergeManager(); @@ -818,13 +818,15 @@ int ModApiMapgen::l_generate_ores(lua_State *L) u32 blockseed = Mapgen::getBlockSeed(mg.vm->m_area.MinEdge, mg.seed); - emerge->oremgr->placeAllOres(&mg, blockseed, - mg.vm->m_area.MinEdge, mg.vm->m_area.MaxEdge); + v3s16 pmin = read_v3s16(L, 2); + v3s16 pmax = read_v3s16(L, 3); + + emerge->oremgr->placeAllOres(&mg, blockseed, pmin, pmax); return 0; } -// generate_decorations(vm, [deco_id]) +// generate_decorations(vm, p1, p2, [deco_id]) int ModApiMapgen::l_generate_decorations(lua_State *L) { EmergeManager *emerge = getServer(L)->getEmergeManager(); @@ -836,8 +838,10 @@ int ModApiMapgen::l_generate_decorations(lua_State *L) u32 blockseed = Mapgen::getBlockSeed(mg.vm->m_area.MinEdge, mg.seed); - emerge->decomgr->placeAllDecos(&mg, blockseed, - mg.vm->m_area.MinEdge, mg.vm->m_area.MaxEdge); + v3s16 pmin = read_v3s16(L, 2); + v3s16 pmax = read_v3s16(L, 3); + + emerge->decomgr->placeAllDecos(&mg, blockseed, pmin, pmax); return 0; } diff --git a/src/script/lua_api/l_mapgen.h b/src/script/lua_api/l_mapgen.h index e17d1b85a..dfed8475f 100644 --- a/src/script/lua_api/l_mapgen.h +++ b/src/script/lua_api/l_mapgen.h @@ -62,10 +62,10 @@ private: // clear_registered_decorations() static int l_clear_registered_decorations(lua_State *L); - // generate_ores(vm) + // generate_ores(vm, p1, p2) static int l_generate_ores(lua_State *L); - // generate_decorations(vm) + // generate_decorations(vm, p1, p2) static int l_generate_decorations(lua_State *L); // clear_registered_ores |