Permalink
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Browse files
//mix: Add node weighting support
Loading branch information
Showing
2 changed files
with
15 additions
and
6 deletions .
+4
−2
ChatCommands.md
+11
−4
worldedit_commands/init.lua
@@ -121,14 +121,16 @@ Set the current WorldEdit region to `<node>`.
Set the param2 value of all nodes in the current WorldEdit region to `<param2>` .
### `//mix <node1> ...`
### `//mix <node1> [<count1>] <node2> [<count2>] ...`
Fill the current WorldEdit region with a random mix of `<node1>` , `...` .
Fill the current WorldEdit region with a random mix of `<node1>` , `<node2>` , ` ...`. Weightings can be optionally specified via a number after a node name .
//mix air
//mix cactus stone glass sandstone
//mix Bronze
//mix default:cobble air
//mix stone 3 dirt 2
//mix cobblestone 8 stoneblock 2 stonebrick
### `//replace <search node> <replace node>`
@@ -425,15 +425,22 @@ minetest.register_chatcommand("/param2", {
})
minetest.register_chatcommand (" /mix" , {
params = " <node1> ..." ,
params = " <node1> [<weighting1>] [<node2> [<weighting2>]] ..." ,
description = " Fill the current WorldEdit region with a random mix of <node1>, ..." ,
privs = {worldedit= true },
func = safe_region (function (name , param )
local nodes = {}
for nodename in param:gmatch (" [^%s]+" ) do
local node = get_node (name, nodename)
if not node then return end
nodes[# nodes + 1 ] = node
if tonumber (nodename) ~= nil and # nodes > 0 then
local last_node = nodes[# nodes]
for i = 1 , tonumber (nodename) do
nodes[# nodes + 1 ] = last_node
end
else
local node = get_node (name, nodename)
if not node then return end
nodes[# nodes + 1 ] = node
end
end
local pos1, pos2 = worldedit.pos1 [name], worldedit.pos2 [name]
Toggle all file notes
Toggle all file annotations