diff options
author | kwolekr <kwolekr@minetest.net> | 2015-01-04 22:37:20 -0500 |
---|---|---|
committer | kwolekr <kwolekr@minetest.net> | 2015-01-04 22:38:48 -0500 |
commit | bdcf03ae36553f4c7ba48d18ef8d67f05590dd60 (patch) | |
tree | 1b2a0603fedebb23ca08ec7de96846810de2a32f /src/script/lua_api/l_mapgen.cpp | |
parent | a92c0830113e7a32d056fabd3cbd58cedbde684a (diff) | |
download | minetest-bdcf03ae36553f4c7ba48d18ef8d67f05590dd60.tar.gz minetest-bdcf03ae36553f4c7ba48d18ef8d67f05590dd60.tar.bz2 minetest-bdcf03ae36553f4c7ba48d18ef8d67f05590dd60.zip |
Add minetest.generate_ores() and minetest.generate_decorations()
Diffstat (limited to 'src/script/lua_api/l_mapgen.cpp')
-rw-r--r-- | src/script/lua_api/l_mapgen.cpp | 39 |
1 files changed, 39 insertions, 0 deletions
diff --git a/src/script/lua_api/l_mapgen.cpp b/src/script/lua_api/l_mapgen.cpp index 7d9987e72..bff8ccfe6 100644 --- a/src/script/lua_api/l_mapgen.cpp +++ b/src/script/lua_api/l_mapgen.cpp @@ -810,6 +810,42 @@ int ModApiMapgen::l_create_schematic(lua_State *L) return 1; } +// generate_ores(vm, [ore_id]) +int ModApiMapgen::l_generate_ores(lua_State *L) +{ + EmergeManager *emerge = getServer(L)->getEmergeManager(); + + Mapgen mg; + mg.seed = emerge->params.seed; + mg.vm = LuaVoxelManip::checkobject(L, 1)->vm; + mg.ndef = getServer(L)->getNodeDefManager(); + + 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); + + return 0; +} + +// generate_decorations(vm, [deco_id]) +int ModApiMapgen::l_generate_decorations(lua_State *L) +{ + EmergeManager *emerge = getServer(L)->getEmergeManager(); + + Mapgen mg; + mg.seed = emerge->params.seed; + mg.vm = LuaVoxelManip::checkobject(L, 1)->vm; + mg.ndef = getServer(L)->getNodeDefManager(); + + 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); + + return 0; +} + // place_schematic(p, schematic, rotation, replacement) int ModApiMapgen::l_place_schematic(lua_State *L) { @@ -864,6 +900,9 @@ void ModApiMapgen::Initialize(lua_State *L, int top) API_FCT(clear_registered_decorations); API_FCT(clear_registered_ores); + API_FCT(generate_ores); + API_FCT(generate_decorations); + API_FCT(create_schematic); API_FCT(place_schematic); } |