diff --git a/README.md b/README.md index 0e58e6f..b6f6e6c 100644 --- a/README.md +++ b/README.md @@ -101,6 +101,64 @@ Load nodes from "(world folder)/schems/.we" with position 1 of the current //load some random filename //load huge_base +WorldEdit API +------------- +WorldEdit exposes all significant functionality in a simple interface. Adding WorldEdit to the file "depends.txt" in your mod gives you access to all of the `worldedit` functions. These are useful if you're looking for high-performance node manipulation without all the hassle of writing tons of code. + +### worldedit.volume(pos1, pos2) + +Determines the volume of the region defined by positions `pos1` and `pos2`. + +Returns the volume. + +### 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. + +### 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. + +### 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. + +### 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. + +### 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. + +### worldedit.dig(pos1, pos2) + +Digs a region defined by positions `pos1` and `pos2`. + +Returns the number of nodes dug. + +### 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. + +### worldedit.deserialize(originpos, value) + +Loads the nodes represented by string `value` at position `originpos`. + +Returns the number of nodes deserialized. + License ------- Copyright 2012 sfan5 and Anthony Zhang (Temperest) diff --git a/functions.lua b/functions.lua index 2226e4c..35015a5 100644 --- a/functions.lua +++ b/functions.lua @@ -20,8 +20,8 @@ worldedit.volume = function(pos1, pos2) return (pos2.x - pos1.x + 1) * (pos2.y - pos1.y + 1) * (pos2.z - pos1.z + 1) end ---fills a region defined by positions `pos1` and `pos2` with `nodename`, returning the number of nodes filled -worldedit.fill = function(pos1, pos2, nodename) +--sets a region defined by positions `pos1` and `pos2` to `nodename`, returning the number of nodes filled +worldedit.set = function(pos1, pos2, nodename) local pos1, pos2 = worldedit.sort_pos(pos1, pos2) local env = minetest.env @@ -72,7 +72,7 @@ worldedit.replace = function(pos1, pos2, searchnode, replacenode) return count end ---copies the region defined by positions `pos1` and `pos2` along the `axis` axis by `amount` nodes, returning the number of nodes copied +--copies the region defined by positions `pos1` and `pos2` along the `axis` axis ("x" or "y" or "z") by `amount` nodes, returning the number of nodes copied worldedit.copy = function(pos1, pos2, axis, amount) local pos1, pos2 = worldedit.sort_pos(pos1, pos2) local env = minetest.env @@ -117,7 +117,7 @@ worldedit.copy = function(pos1, pos2, axis, amount) return worldedit.volume(pos1, pos2) end ---moves the region defined by positions `pos1` and `pos2` along the `axis` axis by `amount` nodes, returning the number of nodes moved +--moves the region defined by positions `pos1` and `pos2` along the `axis` axis ("x" or "y" or "z") by `amount` nodes, returning the number of nodes moved worldedit.move = function(pos1, pos2, axis, amount) local pos1, pos2 = worldedit.sort_pos(pos1, pos2) local env = minetest.env @@ -164,7 +164,7 @@ worldedit.move = function(pos1, pos2, axis, amount) return worldedit.volume(pos1, pos2) end ---duplicates the region defined by positions `pos1` and `pos2` along the `axis` axis `count` times, returning the number of nodes stacked +--duplicates the region defined by positions `pos1` and `pos2` along the `axis` axis ("x" or "y" or "z") `count` times, returning the number of nodes stacked worldedit.stack = function(pos1, pos2, axis, count) local pos1, pos2 = worldedit.sort_pos(pos1, pos2) local length = pos2[axis] - pos1[axis] + 1 diff --git a/init.lua b/init.lua index f37f754..3191bd0 100644 --- a/init.lua +++ b/init.lua @@ -112,8 +112,8 @@ minetest.register_chatcommand("/set", { return end - local count = worldedit.fill(pos1, pos2, param) - minetest.chat_send_player(name, count .. " nodes filled") + local count = worldedit.set(pos1, pos2, param) + minetest.chat_send_player(name, count .. " nodes set") end, })