1 --- Lua code execution functions.
\r
2 -- @module worldedit.code
\r
4 --- Executes `code` as a Lua chunk in the global namespace.
\r
5 -- @return An error message if the code fails, or nil on success.
\r
6 function worldedit.lua(code)
\r
7 local func, err = loadstring(code)
\r
8 if not func then -- Syntax error
\r
11 local good, err = pcall(func)
\r
12 if not good then -- Runtime error
\r
19 --- Executes `code` as a Lua chunk in the global namespace with the variable
\r
20 -- pos available, for each node in a region defined by positions `pos1` and
\r
22 -- @return An error message if the code fails, or nil on success.
\r
23 function worldedit.luatransform(pos1, pos2, code)
\r
24 pos1, pos2 = worldedit.sort_pos(pos1, pos2)
\r
26 local factory, err = loadstring("return function(pos) " .. code .. " end")
\r
27 if not factory then -- Syntax error
\r
30 local func = factory()
\r
32 worldedit.keep_loaded(pos1, pos2)
\r
34 local pos = {x=pos1.x, y=0, z=0}
\r
35 while pos.x <= pos2.x do
\r
37 while pos.y <= pos2.y do
\r
39 while pos.z <= pos2.z do
\r
40 local good, err = pcall(func, pos)
\r
41 if not good then -- Runtime error
\r