1
0
Fork 0
mirror of https://github.com/luanti-org/luanti.git synced 2025-06-27 16:36:03 +00:00

Place schematic (on vmanip): Enable use of 'place center' flags

For 'place schematic' and 'place schematic on vmanip' APIs.
Fix 'place center' code to properly centre schematics.
Fix some comments.
This commit is contained in:
paramat 2018-02-23 13:42:48 +00:00 committed by paramat
parent 6c9df2ffa7
commit c610643c4c
4 changed files with 40 additions and 18 deletions

View file

@ -1529,7 +1529,8 @@ int ModApiMapgen::l_create_schematic(lua_State *L)
}
// place_schematic(p, schematic, rotation, replacement)
// place_schematic(p, schematic, rotation,
// replacements, force_placement, flagstring)
int ModApiMapgen::l_place_schematic(lua_State *L)
{
MAP_LOCK_REQUIRED;
@ -1565,12 +1566,19 @@ int ModApiMapgen::l_place_schematic(lua_State *L)
return 0;
}
schem->placeOnMap(map, p, 0, (Rotation)rot, force_placement);
//// Read flags
u32 flags = 0;
read_flags(L, 6, flagdesc_deco, &flags, NULL);
schem->placeOnMap(map, p, flags, (Rotation)rot, force_placement);
lua_pushboolean(L, true);
return 1;
}
// place_schematic_on_vmanip(vm, p, schematic, rotation,
// replacements, force_placement, flagstring)
int ModApiMapgen::l_place_schematic_on_vmanip(lua_State *L)
{
NO_MAP_LOCK_REQUIRED;
@ -1606,13 +1614,18 @@ int ModApiMapgen::l_place_schematic_on_vmanip(lua_State *L)
return 0;
}
//// Read flags
u32 flags = 0;
read_flags(L, 7, flagdesc_deco, &flags, NULL);
bool schematic_did_fit = schem->placeOnVManip(
vm, p, 0, (Rotation)rot, force_placement);
vm, p, flags, (Rotation)rot, force_placement);
lua_pushboolean(L, schematic_did_fit);
return 1;
}
// serialize_schematic(schematic, format, options={...})
int ModApiMapgen::l_serialize_schematic(lua_State *L)
{