diff options
Diffstat (limited to 'src/script')
-rw-r--r-- | src/script/lua_api/l_mapgen.cpp | 9 |
1 files changed, 6 insertions, 3 deletions
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; } |