forked from mtcontrib/Minetest-WorldEdit
207 lines
7.2 KiB
Markdown
207 lines
7.2 KiB
Markdown
WorldEdit API
|
|
=============
|
|
The WorldEdit API is composed of multiple modules, each of which is independent and can be used without the other. Each module is contained within a single file.
|
|
|
|
For more information, see the [README](README.md).
|
|
|
|
Manipulations
|
|
-------------
|
|
Contained in manipulations.lua, this module allows several node operations to be applied over a region.
|
|
|
|
### count = worldedit.set(pos1, pos2, nodename)
|
|
|
|
Sets a region defined by positions `pos1` and `pos2` to `nodename`. To clear to region, use "air" as the value of `nodename`.
|
|
|
|
Returns the number of nodes set.
|
|
|
|
### count = worldedit.replace(pos1, pos2, searchnode, replacenode)
|
|
|
|
Replaces all instances of `searchnode` with `replacenode` in a region defined by positions `pos1` and `pos2`.
|
|
|
|
Returns the number of nodes replaced.
|
|
|
|
### count = worldedit.replaceinverse(pos1, pos2, searchnode, replacenode)
|
|
|
|
Replaces all nodes other than `searchnode` with `replacenode` in a region defined by positions `pos1` and `pos2`.
|
|
|
|
Returns the number of nodes replaced.
|
|
|
|
### count = worldedit.copy(pos1, pos2, axis, amount)
|
|
|
|
Copies the region defined by positions `pos1` and `pos2` along the `axis` axis ("x" or "y" or "z") by `amount` nodes.
|
|
|
|
Returns the number of nodes copied.
|
|
|
|
### count = worldedit.move(pos1, pos2, axis, amount)
|
|
|
|
Moves the region defined by positions `pos1` and `pos2` along the `axis` axis ("x" or "y" or "z") by `amount` nodes.
|
|
|
|
Returns the number of nodes moved.
|
|
|
|
### count = worldedit.stack(pos1, pos2, axis, count)
|
|
|
|
Duplicates the region defined by positions `pos1` and `pos2` along the `axis` axis ("x" or "y" or "z") `count` times.
|
|
|
|
Returns the number of nodes stacked.
|
|
|
|
### count, newpos1, newpos2 = worldedit.transpose(pos1, pos2, axis1, axis2)
|
|
|
|
Transposes a region defined by the positions `pos1` and `pos2` between the `axis1` and `axis2` axes ("x" or "y" or "z").
|
|
|
|
Returns the number of nodes transposed, the new position 1, and the new position 2.
|
|
|
|
### count = worldedit.flip(pos1, pos2, axis)
|
|
|
|
Flips a region defined by the positions `pos1` and `pos2` along the `axis` axis ("x" or "y" or "z").
|
|
|
|
Returns the number of nodes flipped.
|
|
|
|
### count, newpos2, newpos2 = worldedit.rotate(pos1, pos2, angle)
|
|
|
|
Rotates a region defined by the positions `pos1` and `pos2` by `angle` degrees clockwise around the y axis (supporting 90 degree increments only).
|
|
|
|
Returns the number of nodes rotated, the new position 1, and the new position 2.
|
|
|
|
### count = worldedit.orient(pos1, pos2, angle)
|
|
|
|
Rotates all oriented nodes in a region defined by the positions `pos1` and `pos2` by `angle` degrees clockwise (90 degree increment) around the Y axis.
|
|
|
|
Returns the number of nodes oriented.
|
|
|
|
### count = worldedit.fixlight(pos1, pos2)
|
|
|
|
Fixes the lighting in a region defined by positions `pos1` and `pos2`.
|
|
|
|
Returns the number of nodes updated.
|
|
|
|
Primitives
|
|
----------
|
|
Contained in primitives.lua, this module allows the creation of several geometric primitives.
|
|
|
|
### count = worldedit.hollow_sphere(pos, radius, nodename)
|
|
|
|
Adds a hollow sphere at `pos` with radius `radius`, composed of `nodename`.
|
|
|
|
Returns the number of nodes added.
|
|
|
|
### count = worldedit.sphere(pos, radius, nodename)
|
|
|
|
Adds a sphere at `pos` with radius `radius`, composed of `nodename`.
|
|
|
|
Returns the number of nodes added.
|
|
|
|
### count = worldedit.hollow_cylinder(pos, axis, length, radius, nodename)
|
|
|
|
Adds a hollow cylinder at `pos` along the `axis` axis ("x" or "y" or "z") with length `length` and radius `radius`, composed of `nodename`.
|
|
|
|
Returns the number of nodes added.
|
|
|
|
### count = worldedit.cylinder(pos, axis, length, radius, nodename)
|
|
|
|
Adds a cylinder at `pos` along the `axis` axis ("x" or "y" or "z") with length `length` and radius `radius`, composed of `nodename`.
|
|
|
|
Returns the number of nodes added.
|
|
|
|
### count = worldedit.pyramid(pos, height, nodename)
|
|
|
|
Adds a pyramid at `pos` with height `height`.
|
|
|
|
Returns the number of nodes added.
|
|
|
|
### count = worldedit.spiral(pos, width, height, spacer, nodename)
|
|
|
|
Adds a spiral at `pos` with width `width`, height `height`, space between walls `spacer`, composed of `nodename`.
|
|
|
|
Returns the number of nodes added.
|
|
|
|
Visualization
|
|
-------------
|
|
Contained in visualization.lua, this module allows nodes to be visualized in different ways.
|
|
|
|
### volume = worldedit.volume(pos1, pos2)
|
|
|
|
Determines the volume of the region defined by positions `pos1` and `pos2`.
|
|
|
|
Returns the volume.
|
|
|
|
### count = worldedit.hide(pos1, pos2)
|
|
|
|
Hides all nodes in a region defined by positions `pos1` and `pos2` by non-destructively replacing them with invisible nodes.
|
|
|
|
Returns the number of nodes hidden.
|
|
|
|
### count = worldedit.suppress(pos1, pos2, nodename)
|
|
|
|
Suppresses all instances of `nodename` in a region defined by positions `pos1` and `pos2` by non-destructively replacing them with invisible nodes.
|
|
|
|
Returns the number of nodes suppressed.
|
|
|
|
### count = worldedit.highlight(pos1, pos2, nodename)
|
|
|
|
Highlights all instances of `nodename` in a region defined by positions `pos1` and `pos2` by non-destructively hiding all other nodes.
|
|
|
|
Returns the number of nodes found.
|
|
|
|
### count = worldedit.restore(pos1, pos2)
|
|
|
|
Restores all nodes hidden with WorldEdit functions in a region defined by positions `pos1` and `pos2`.
|
|
|
|
Returns the number of nodes restored.
|
|
|
|
Serialization
|
|
-------------
|
|
Contained in serialization.lua, this module allows regions of nodes to be serialized and deserialized to formats suitable for use outside MineTest.
|
|
|
|
### data, count = worldedit.serialize(pos1, pos2)
|
|
|
|
Converts the region defined by positions `pos1` and `pos2` into a single string.
|
|
|
|
Returns the serialized data and the number of nodes serialized.
|
|
|
|
### pos1, pos2, count = worldedit.allocate(originpos, value)
|
|
|
|
Determines the volume the nodes represented by string `value` would occupy if deserialized at `originpos`.
|
|
|
|
Returns the two corner positions and the number of nodes.
|
|
|
|
### count = worldedit.deserialize(originpos, value)
|
|
|
|
Loads the nodes represented by string `value` at position `originpos`.
|
|
|
|
Returns the number of nodes deserialized.
|
|
|
|
### count = worldedit.deserialize_old(originpos, value)
|
|
|
|
Loads the nodes represented by string `value` at position `originpos`, using the older table-based WorldEdit format.
|
|
|
|
This function is deprecated, and should not be used unless there is a need to support legacy WorldEdit save files.
|
|
|
|
Returns the number of nodes deserialized.
|
|
|
|
### count = worldedit.metasave(pos1, pos2, file)
|
|
|
|
Saves the nodes and meta defined by positions `pos1` and `pos2` into a file.
|
|
|
|
Returns the number of nodes saved.
|
|
|
|
### count = worldedit.metaload(pos1, file)
|
|
|
|
Loads the nodes and meta from `file` to position `pos1`.
|
|
|
|
Returns the number of nodes loaded.
|
|
|
|
Code
|
|
----
|
|
Contained in code.lua, this module allows arbitrary Lua code to be used with WorldEdit.
|
|
|
|
### error = worldedit.lua(code)
|
|
|
|
Executes `code` as a Lua chunk in the global namespace.
|
|
|
|
Returns an error if the code fails or nil otherwise.
|
|
|
|
### error = worldedit.luatransform(pos1, pos2, code)
|
|
|
|
Executes `code` as a Lua chunk in the global namespace with the variable pos available, for each node in a region defined by positions `pos1` and `pos2`.
|
|
|
|
Returns an error if the code fails or nil otherwise. |