diff options
author | Daniel Sosa <sosa.daniel23@gmail.com> | 2015-02-21 19:07:14 +0000 |
---|---|---|
committer | Daniel Sosa <sosa.daniel23@gmail.com> | 2016-07-03 21:44:02 -0500 |
commit | e18525d8c983eb78c8f7f2fa2425cede21fc8289 (patch) | |
tree | 9563c90e1662232ee8002769ce8c0780504fbdbf | |
parent | 78890dde07e7006a9e4c2b853720d7e544760947 (diff) |
Modify outset and inset to accept both hv and vh combinations. Update documentation accordingly.
-rw-r--r-- | ChatCommands.md | 4 | ||||
-rw-r--r-- | worldedit_commands/cuboid.lua | 24 |
2 files changed, 20 insertions, 8 deletions
diff --git a/ChatCommands.md b/ChatCommands.md index 6dc4c72..b26e894 100644 --- a/ChatCommands.md +++ b/ChatCommands.md @@ -408,14 +408,14 @@ opposite direction over the same axis by `[reverse-amount]`. //expand right 7 5
-### `//outset [h|v] <amount>`
+### `//outset [hv] <amount>`
Expands the selection in all directions by `<amount>`. If specified, the selection can be expanded horizontally in the x and z axes `[h]`
or vertically in the y axis `[v]`.
//outset v 5
-### `//inset [h|v] <amount>`
+### `//inset [hv] <amount>`
Contracts the selection in all directions by `<amount>`. If specified, the selection can be contracted horizontally in the x and z axes `[h]`
or vertically in the y axis `[v]`.
diff --git a/worldedit_commands/cuboid.lua b/worldedit_commands/cuboid.lua index 003b358..24dad28 100644 --- a/worldedit_commands/cuboid.lua +++ b/worldedit_commands/cuboid.lua @@ -6,7 +6,7 @@ minetest.register_chatcommand("/outset", { description = "outset the selection", privs = {worldedit=true}, func = function(name, param) - local find, _, dir, amount = param:find("([hv]?)%s*([+-]?%d+)") + local find, _, dir, amount = param:find("(%a*)%s*([+-]?%d+)") if find == nil then return false, "invalid usage: " .. param @@ -20,7 +20,13 @@ minetest.register_chatcommand("/outset", { "Undefined region. Region must be defined beforehand." end - if dir == "" then + local hv_test = dir:find("[^hv]+") + + if hv_test ~= nil then + return false, "Invalid direction." + end + + if dir == "" or dir == "hv" or dir == "vh" then assert(worldedit.cuboid_volumetric_expand(name, amount)) elseif dir == "h" then assert(worldedit.cuboid_linear_expand(name, 'x', 1, amount)) @@ -31,7 +37,7 @@ minetest.register_chatcommand("/outset", { assert(worldedit.cuboid_linear_expand(name, 'y', 1, amount)) assert(worldedit.cuboid_linear_expand(name, 'y', -1, amount)) else - return false, "Unknown error" + return false, "Invalid number of arguments" end worldedit.marker_update(name) @@ -46,7 +52,7 @@ minetest.register_chatcommand("/inset", { description = "inset the selection", privs = {worldedit=true}, func = function(name, param) - local find, _, dir, amount = param:find("([hv]?)%s*([+-]?%d+)") + local find, _, dir, amount = param:find("(%a*)%s*([+-]?%d+)") if find == nil then return false, "invalid usage: " .. param @@ -60,7 +66,13 @@ minetest.register_chatcommand("/inset", { "Undefined region. Region must be defined beforehand." end - if dir == "" then + local hv_test = dir:find("[^hv]+") + + if hv_test ~= nil then + return false, "Invalid direction." + end + + if dir == "" or dir == "vh" or dir == "hv" then assert(worldedit.cuboid_volumetric_expand(name, -amount)) elseif dir == "h" then assert(worldedit.cuboid_linear_expand(name, 'x', 1, -amount)) @@ -71,7 +83,7 @@ minetest.register_chatcommand("/inset", { assert(worldedit.cuboid_linear_expand(name, 'y', 1, -amount)) assert(worldedit.cuboid_linear_expand(name, 'y', -1, -amount)) else - return false, "Unknown error" + return false, "Invalid number of arguments" end worldedit.marker_update(name) |