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
\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
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
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
safe_region_callback[name], safe_region_param[name] = nil, nil\r
end,\r
})\r
+\r
+\r
+return safe_region, check_region, reset_pending\r