]> git.lizzy.rs Git - worldedit.git/blobdiff - worldedit_commands/safe.lua
Fix "safe region" functionality errornously rejecting pos1-only commands (e.g. /...
[worldedit.git] / worldedit_commands / safe.lua
index c6751c13eb96e4ddb4356ab6d6bb218d21e5e3ad..a93e393b18dce12d957bed87da627864026bd82a 100644 (file)
@@ -1,7 +1,7 @@
 local safe_region_callback = {}\r
 local safe_region_param = {}\r
 \r
-check_region = function(name, param)\r
+local function check_region(name, param)\r
        local pos1, pos2 = worldedit.pos1[name], worldedit.pos2[name] --obtain positions\r
        if pos1 == nil or pos2 == nil then\r
                worldedit.player_notify(name, "no region selected")\r
@@ -12,7 +12,7 @@ end
 \r
 --`callback` is a callback to run when the user confirms\r
 --`nodes_needed` is a function accepting `param`, `pos1`, and `pos2` to calculate the number of nodes needed\r
-safe_region = function(callback, nodes_needed)\r
+local function safe_region(callback, nodes_needed)\r
        --default node volume calculation\r
        nodes_needed = nodes_needed or check_region\r
 \r
@@ -30,6 +30,10 @@ safe_region = function(callback, nodes_needed)
        end\r
 end\r
 \r
+local function reset_pending(name)\r
+       safe_region_callback[name], safe_region_param[name] = nil, nil\r
+end\r
+\r
 minetest.register_chatcommand("/y", {\r
        params = "",\r
        description = "Confirm a pending operation",\r
@@ -40,15 +44,8 @@ minetest.register_chatcommand("/y", {
                        return\r
                end\r
 \r
-               --obtain positions\r
-               local pos1, pos2 = worldedit.pos1[name], worldedit.pos2[name]\r
-               if pos1 == nil or pos2 == nil then\r
-                       worldedit.player_notify(name, "no region selected")\r
-                       return\r
-               end\r
-\r
                safe_region_callback[name], safe_region_param[name] = nil, nil --reset pending operation\r
-               callback(name, param, pos1, pos2)\r
+               callback(name, param)\r
        end,\r
 })\r
 \r
@@ -63,3 +60,6 @@ minetest.register_chatcommand("/n", {
                safe_region_callback[name], safe_region_param[name] = nil, nil\r
        end,\r
 })\r
+\r
+\r
+return safe_region, check_region, reset_pending\r