LuaVoxelManip: Error when given out-of-bounds area
authorkwolekr <kwolekr@minetest.net>
Sun, 4 Jan 2015 08:07:28 +0000 (03:07 -0500)
committerkwolekr <kwolekr@minetest.net>
Sun, 4 Jan 2015 08:07:28 +0000 (03:07 -0500)
src/script/lua_api/l_vmanip.cpp

index bf702eaff756fccf05f7c05201e8beb20de3a84f..29f04f0520bd55aa5038de34beb197df88670596 100644 (file)
@@ -171,6 +171,8 @@ int LuaVoxelManip::l_calc_lighting(lua_State *L)
        v3s16 p1 = lua_istable(L, 2) ? read_v3s16(L, 2) : vm->m_area.MinEdge;
        v3s16 p2 = lua_istable(L, 3) ? read_v3s16(L, 3) : vm->m_area.MaxEdge;
        sortBoxVerticies(p1, p2);
+       if (!vm->m_area.contains(VoxelArea(p1, p2)))
+               throw LuaError("Specified voxel area out of VoxelManipulator bounds");
 
        Mapgen mg;
        mg.vm          = vm;
@@ -206,6 +208,8 @@ int LuaVoxelManip::l_set_lighting(lua_State *L)
        v3s16 p1 = lua_istable(L, 3) ? read_v3s16(L, 3) : vm->m_area.MinEdge;
        v3s16 p2 = lua_istable(L, 4) ? read_v3s16(L, 4) : vm->m_area.MaxEdge;
        sortBoxVerticies(p1, p2);
+       if (!vm->m_area.contains(VoxelArea(p1, p2)))
+               throw LuaError("Specified voxel area out of VoxelManipulator bounds");
 
        Mapgen mg;
        mg.vm = vm;