summaryrefslogtreecommitdiff
path: root/builtin/game/chatcommands.lua
diff options
context:
space:
mode:
authorkwolekr <kwolekr@minetest.net>2015-01-15 18:03:43 -0500
committerkwolekr <kwolekr@minetest.net>2015-01-15 18:05:13 -0500
commit5aeeb219e3fc2f37d3996a3df3b660afcc5f7599 (patch)
treea7b74445f76c6a7095e9f3d8ffea8af3727ad662 /builtin/game/chatcommands.lua
parent9736548720a96c9c7f739edb0435d9ba4ad80652 (diff)
downloadminetest-5aeeb219e3fc2f37d3996a3df3b660afcc5f7599.tar.gz
minetest-5aeeb219e3fc2f37d3996a3df3b660afcc5f7599.tar.bz2
minetest-5aeeb219e3fc2f37d3996a3df3b660afcc5f7599.zip
Simplify deleteblocks chat command argument parsing
Add optional core.pos_to_string decimal place rounding Move core.string_to_pos to builtin/common/misc_helpers.lua for consistency
Diffstat (limited to 'builtin/game/chatcommands.lua')
-rw-r--r--builtin/game/chatcommands.lua18
1 files changed, 6 insertions, 12 deletions
diff --git a/builtin/game/chatcommands.lua b/builtin/game/chatcommands.lua
index 18b5dbe72..8ce1cfef5 100644
--- a/builtin/game/chatcommands.lua
+++ b/builtin/game/chatcommands.lua
@@ -419,24 +419,18 @@ core.register_chatcommand("deleteblocks", {
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
+ local pos1, pos2 = unpack(param:split(") ("))
+ p1 = core.string_to_pos(pos1 .. ")")
+ p2 = core.string_to_pos("(" .. pos2)
+
+ if p1 == nil or p2 == 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)
+ core.pos_to_string(p1, 1) .. " to " .. core.pos_to_string(p2, 1)
else
return false, "Failed to clear one or more blocks in area"
end