From c1638590577d487e620f9a037727b91a0f62ceea Mon Sep 17 00:00:00 2001 From: kwolekr Date: Sat, 15 Feb 2014 19:46:57 -0500 Subject: Schematic: Add force_placement parameter to minetest.place_structure API --- src/script/lua_api/l_mapgen.cpp | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) (limited to 'src/script') diff --git a/src/script/lua_api/l_mapgen.cpp b/src/script/lua_api/l_mapgen.cpp index a7af856de..d34620056 100644 --- a/src/script/lua_api/l_mapgen.cpp +++ b/src/script/lua_api/l_mapgen.cpp @@ -599,9 +599,8 @@ int ModApiMapgen::l_place_schematic(lua_State *L) dschem.rotation = (Rotation)rot; if (lua_istable(L, 4)) { - int index = 4; lua_pushnil(L); - while (lua_next(L, index) != 0) { + while (lua_next(L, 4) != 0) { // key at index -2 and value at index -1 lua_rawgeti(L, -1, 1); std::string replace_from = lua_tostring(L, -1); @@ -615,6 +614,10 @@ int ModApiMapgen::l_place_schematic(lua_State *L) } } + bool force_placement = true; + if (lua_isboolean(L, 5)) + force_placement = lua_toboolean(L, 5); + if (!dschem.filename.empty()) { if (!dschem.loadSchematicFile()) { errorstream << "place_schematic: failed to load schematic file '" @@ -624,7 +627,7 @@ int ModApiMapgen::l_place_schematic(lua_State *L) dschem.resolveNodeNames(ndef); } - dschem.placeStructure(map, p); + dschem.placeStructure(map, p, force_placement); return 1; } -- cgit v1.2.3