mirror of
https://github.com/Uberi/Minetest-WorldEdit.git
synced 2025-12-14 07:38:30 +01:00
Add feature to set param2 of specified nodes only
This commit is contained in:
@@ -42,16 +42,23 @@ end
|
||||
-- @param pos1
|
||||
-- @param pos2
|
||||
-- @param param2 Value of param2 to set
|
||||
-- @param node Optional specified node to affect
|
||||
-- @return The number of nodes set.
|
||||
function worldedit.set_param2(pos1, pos2, param2)
|
||||
function worldedit.set_param2(pos1, pos2, param2, node)
|
||||
pos1, pos2 = worldedit.sort_pos(pos1, pos2)
|
||||
|
||||
local manip, area = mh.init(pos1, pos2)
|
||||
local param2_data = manip:get_param2_data()
|
||||
local data = manip:get_data()
|
||||
|
||||
-- Set param2 for every node
|
||||
local search_id = node and minetest.get_content_id(node)
|
||||
local count = 0
|
||||
-- Set param2 for every node or only for specified nodes
|
||||
for i in area:iterp(pos1, pos2) do
|
||||
param2_data[i] = param2
|
||||
if not search_id or data[i] == search_id then
|
||||
param2_data[i] = param2
|
||||
count = count + 1
|
||||
end
|
||||
end
|
||||
|
||||
-- Update map
|
||||
@@ -59,7 +66,7 @@ function worldedit.set_param2(pos1, pos2, param2)
|
||||
manip:write_to_map()
|
||||
manip:update_map()
|
||||
|
||||
return worldedit.volume(pos1, pos2)
|
||||
return count
|
||||
end
|
||||
|
||||
--- Replaces all instances of `search_node` with `replace_node` in a region.
|
||||
|
||||
Reference in New Issue
Block a user