mirror of
				https://github.com/Uberi/Minetest-WorldEdit.git
				synced 2025-11-04 06:35:28 +01:00 
			
		
		
		
	Reset region by double-punching air using the wand
This commit is contained in:
		@@ -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)
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user