From 79097dc6c8c1ea69426783733c7cd9a5b16b79d1 Mon Sep 17 00:00:00 2001 From: sfan5 Date: Wed, 18 Sep 2019 23:56:21 +0200 Subject: [PATCH] Reset region by double-punching air using the wand --- worldedit_commands/wand.lua | 20 ++++++++++++++++---- 1 file changed, 16 insertions(+), 4 deletions(-) diff --git a/worldedit_commands/wand.lua b/worldedit_commands/wand.lua index c93fa9c..9104b7d 100644 --- a/worldedit_commands/wand.lua +++ b/worldedit_commands/wand.lua @@ -6,23 +6,35 @@ local function above_or_under(placer, pointed_thing) end end +local punched_air_time = {} + minetest.register_tool(":worldedit:wand", { - description = "WorldEdit Wand tool, Left-click to set 1st position, right-click to set 2nd", + description = "WorldEdit Wand tool\nLeft-click to set 1st position, right-click to set 2nd", inventory_image = "worldedit_wand.png", stack_max = 1, -- there is no need to have more than one liquids_pointable = true, -- ground with only water on can be selected as well on_use = function(itemstack, placer, pointed_thing) - if placer ~= nil and pointed_thing ~= nil and pointed_thing.type == "node" then - local name = placer:get_player_name() + if placer == nil or pointed_thing == nil then return itemstack end + local name = placer:get_player_name() + if pointed_thing.type == "node" then + -- set and mark pos1 worldedit.pos1[name] = above_or_under(placer, pointed_thing) worldedit.mark_pos1(name) + elseif pointed_thing.type == "nothing" then + local now = minetest.get_us_time() + if now - (punched_air_time[name] or 0) < 1000 * 1000 then + -- reset markers + minetest.registered_chatcommands["/reset"].func(name, "") + end + punched_air_time[name] = now end return itemstack -- nothing consumed, nothing changed end, - on_place = function(itemstack, placer, pointed_thing) -- Left Click + on_place = function(itemstack, placer, pointed_thing) if placer ~= nil and pointed_thing ~= nil and pointed_thing.type == "node" then + -- set and mark pos2 local name = placer:get_player_name() worldedit.pos2[name] = above_or_under(placer, pointed_thing) worldedit.mark_pos2(name) -- 2.44.0