Add ability to delete MapBlocks from map

Also add a Lua API and chatcommand for this
This commit is contained in:
kwolekr 2015-01-15 16:20:05 -05:00 committed by Nils Dagsson Moskopp
parent d6acaced3f
commit b18ccd0056
Signed by: erle
GPG Key ID: A3BC671C35191080
1 changed files with 40 additions and 0 deletions

View File

@ -403,6 +403,46 @@ core.register_chatcommand("set", {
end,
})
core.register_chatcommand("deleteblocks", {
params = "[here] [<pos1> <pos2>]",
description = "delete map blocks contained in area pos1 to pos2",
privs = {server=true},
func = function(name, param)
local p1 = {}
local p2 = {}
if param == "here" then
local player = core.get_player_by_name(name)
if player == nil then
core.log("error", "player is nil")
return false, "Unable to get current position; player is nil"
end
p1 = player:getpos()
p2 = p1
else
p1.x, p1.y, p1.z, p2.x, p2.y, p2.z = string.match(param,
"^%(([%d.-]+), *([%d.-]+), *([%d.-]+)%) *%(([%d.-]+), *([%d.-]+), *([%d.-]+)%)$")
p1.x = tonumber(p1.x)
p1.y = tonumber(p1.y)
p1.z = tonumber(p1.z)
p2.x = tonumber(p2.x)
p2.y = tonumber(p2.y)
p2.z = tonumber(p2.z)
if p1.x == nil or p1.y == nil or p1.z == nil or
p2.x == nil or p2.y == nil or p2.z == nil then
return false, "Incorrect area format. Expected: (x1,y1,z1) (x2,y2,z2)"
end
end
if core.delete_area(p1, p2) then
return true, "Successfully cleared area ranging from " ..
core.pos_to_string(p1) .. " to " .. core.pos_to_string(p2)
else
return false, "Failed to clear one or more blocks in area"
end
end,
})
core.register_chatcommand("mods", {
params = "",
description = "List mods installed on the server",