1
0
mirror of https://github.com/Uberi/Minetest-WorldEdit.git synced 2025-06-28 06:12:00 +02:00

Documentation for //stack2, code style fixes, add author section to README.

This commit is contained in:
Uberi
2014-07-06 19:42:02 -04:00
parent b32aadd7fa
commit 175ac211ca
4 changed files with 162 additions and 143 deletions

View File

@ -279,19 +279,18 @@ minetest.register_chatcommand("/volume", {
})
minetest.register_chatcommand("/set", {
params = "<node>",
description = "Set the current WorldEdit region to <node>",
params = "<node1> ...",
description = "Set the current WorldEdit region to 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
worldedit.player_notify(name, 'Could not identify node "'..name..'"')
worldedit.player_notify(name, "Could not identify node \"" .. name .. "\"")
return
end
nodes[#nodes+1] = node
nodes[#nodes + 1] = node
end
local pos1, pos2 = worldedit.pos1[name], worldedit.pos2[name]
@ -620,47 +619,37 @@ minetest.register_chatcommand("/stack", {
})
minetest.register_chatcommand("/stack2", {
params = "<count> <x>/<y>/<z>",
description = "Stack the current WorldEdit region <count> times translating each time by x, y and z in the respective directions.",
params = "<count> <x> <y> <z>",
description = "Stack the current WorldEdit region <count> times by offset <x>, <y>, <z>",
privs = {worldedit=true},
func = function(name, param)
local pos1, pos2 = worldedit.pos1[name], worldedit.pos2[name]
if pos1 == nil or pos2 == nil then
worldedit.player_notify(name, "Select a position first!")
worldedit.player_notify(name, "Select a position first!")
return
end
local repetitions, incs = param:match("([0-9]+)%s*(.+)")
repetitions = repetitions and tonumber(repetitions)
local repetitions, incs = param:match("(%d+)%s*(.+)")
if repetitions == nil then
worldedit.player_notify(name, "invalid count: " .. param)
return
return
end
repetitions = tonumber(repetitions)
local x,y,z = incs:match("(.+)/(.+)/(.+)")
local x, y, z = incs:match("([+-]?%d+) ([+-]%d+) ([+-]%d+)")
if x == nil then
worldedit.player_notify(name, "invalid increments: " .. param)
return
end
x = tonumber(x)
y = tonumber(y)
z = tonumber(z)
if x == nil or y == nil or z == nil then
worldedit.player_notify(name, "increments must be numbers: " .. param)
return
end
x, y, z = tonumber(x), tonumber(y), tonumber(z)
local count = worldedit.volume(pos1,pos2) * repetitions
local count = worldedit.volume(pos1, pos2) * repetitions
return safe_region(function()
worldedit.stack2(pos1, pos2, {x=x,y=y,z=z}, repetitions,
function()
worldedit.player_notify(name, count .. " nodes stacked")
end)
end,
function()
return count
end)(name,param) -- more hax
worldedit.stack2(pos1, pos2, {x=x, y=y, z=z}, repetitions,
function() worldedit.player_notify(name, count .. " nodes stacked") end)
end, function()
return count
end)(name,param) -- more hax
end
})