]> git.lizzy.rs Git - worldedit.git/blob - README.md
Properly document the WorldEdit API.
[worldedit.git] / README.md
1 WorldEdit v1.0 for MineTest 0.4
2 ===============================
3 In-game world editing for [MineTest](http://minetest.net/)! Tons of chat commands to help with building, fixing, and more.
4
5 For more information, see the [forum topic](http://minetest.net/forum/viewtopic.php?id=572) at the MineTest forums.
6
7 Usage
8 -----
9 WorldEdit works primarily through chat commands. Depending on your key bindings, you can invoke chat entry with the "t" key, and open the chat console with the "F10" key.
10
11 WorldEdit has a huge potential for abuse by untrusted players. Therefore, users will not be able to use WorldEdit unless they have the "worldedit" privelege. This is available by default in single player, but in multiplayer the permission must be explicitly given by someone with the right credentials, using the follwoing chat command: `/grant <player name> worldedit`. This privelege can later be removed using the following chat command: `/revoke <player name> worldedit`.
12
13 For in-game information about these commands, type `/help <command name>` in the chat. For example, to learn more about the `//copy` command, simply type `/help /copy` to display information relevant to copying a region.
14
15 Commands
16 --------
17
18 ### //pos1
19
20 Set WorldEdit region position 1 to the player's location.
21
22     //pos1
23
24 ### //pos2
25
26 Set WorldEdit region position 2 to the player's location.
27
28     //pos2
29
30 ### //p set/get
31
32 Set WorldEdit region by punching two nodes, or display the current WorldEdit region.
33
34     //p set
35     //p get
36
37 ### //volume
38
39 Display the volume of the current WorldEdit region.
40
41     //volume
42
43 ### //set <node>
44
45 Set the current WorldEdit region to <node>.
46
47     //set dirt
48     //set default:glass
49     //set mesecons:mesecon
50
51 ### //replace <search node> <replace node>
52
53 Replace all instances of <search node> with <place node> in the current WorldEdit region.
54
55     //replace cobble stone
56     //replace default:steelblock glass
57     //replace dirt flowers:flower_waterlily
58     //replace flowers:flower_rose flowers:flower_tulip
59
60 ### //copy x/y/z <amount>
61
62 Copy the current WorldEdit region along the x/y/z axis by <amount> nodes.
63
64     //copy x 15
65     //copy y -7
66     //copy z +4
67
68 ### //move x/y/z <amount>
69
70 Move the current WorldEdit region along the x/y/z axis by <amount> nodes.
71
72     //move x 15
73     //move y -7
74     //move z +4
75
76 ### //stack x/y/z <count>
77
78 Stack the current WorldEdit region along the x/y/z axis <count> times.
79
80     //stack x 3
81     //stack y -1
82     //stack z +5
83
84 ### //dig
85
86 Dig the current WorldEdit region.
87
88     //dig
89
90 ### //save <file>
91
92 Save the current WorldEdit region to "(world folder)/schems/<file>.we".
93
94     //save some random filename
95     //save huge_base
96
97 ### //load <file>
98
99 Load nodes from "(world folder)/schems/<file>.we" with position 1 of the current WorldEdit region as the origin.
100
101     //load some random filename
102     //load huge_base
103
104 WorldEdit API
105 -------------
106 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.
107
108 ### worldedit.volume(pos1, pos2)
109
110 Determines the volume of the region defined by positions `pos1` and `pos2`.
111
112 Returns the volume.
113
114 ### worldedit.set(pos1, pos2, nodename)
115
116 Sets a region defined by positions `pos1` and `pos2` to `nodename`. To clear to region, use "air" as the value of `nodename`.
117
118 Returns the number of nodes set.
119
120 ### worldedit.replace(pos1, pos2, searchnode, replacenode)
121
122 Replaces all instances of `searchnode` with `replacenode` in a region defined by positions `pos1` and `pos2`.
123
124 Returns the number of nodes replaced.
125
126 ### worldedit.copy(pos1, pos2, axis, amount)
127
128 Copies the region defined by positions `pos1` and `pos2` along the `axis` axis ("x" or "y" or "z") by `amount` nodes.
129
130 Returns the number of nodes copied.
131
132 ### worldedit.move(pos1, pos2, axis, amount)
133
134 Moves the region defined by positions `pos1` and `pos2` along the `axis` axis ("x" or "y" or "z") by `amount` nodes.
135
136 Returns the number of nodes moved.
137
138 ### worldedit.stack(pos1, pos2, axis, count)
139
140 duplicates the region defined by positions `pos1` and `pos2` along the `axis` axis ("x" or "y" or "z") `count` times.
141
142 Returns the number of nodes stacked.
143
144 ### worldedit.dig(pos1, pos2)
145
146 Digs a region defined by positions `pos1` and `pos2`.
147
148 Returns the number of nodes dug.
149
150 ### worldedit.serialize(pos1, pos2)
151
152 Converts the region defined by positions `pos1` and `pos2` into a single string.
153
154 Returns the serialized data and the number of nodes serialized.
155
156 ### worldedit.deserialize(originpos, value)
157
158 Loads the nodes represented by string `value` at position `originpos`.
159
160 Returns the number of nodes deserialized.
161
162 License
163 -------
164 Copyright 2012 sfan5 and Anthony Zhang (Temperest)
165
166 This mod is licensed under the [GNU Affero General Public License](http://www.gnu.org/licenses/agpl-3.0.html).
167
168 Basically, this means everyone is free to use, modify, and distribute the files, as long as these modifications are also licensed the same way.
169
170 Most importantly, the Affero variant of the GPL requires you to publish your modifications in source form, even if the mod is run only on the server, and not distributed.