+PerlinNoiseMap: A fast, bulk perlin noise generator
+- Can be created via PerlinNoiseMap(noiseparams, size)
+- Also minetest.get_perlin_map(noiseparams, size)
+methods:
+- get2dMap(pos) -> <size.x>X<size.y> 2d array of 2d noise values starting at pos={x=,y=}
+- get3dMap(pos) -> <size.x>X<size.y>X<size.z> 3d array of 3d noise values starting at pos={x=,y=,z=}
+- get2dMap_flat(pos) -> Flat <size.x * size.y> element array of 2d noise values starting at pos={x=,y=}
+- get3dMap_flat(pos) -> Same as get2dMap_flat, but 3d noise
+
+VoxelManip: An interface to the MapVoxelManipulator for Lua
+- Can be created via VoxelManip()
+- Also minetest.get_voxel_manip()
+methods:
+- read_from_map(p1, p2): Reads a chunk of map from the map containing the region formed by p1 and p2.
+ ^ returns actual emerged pmin, actual emerged pmax
+- write_to_map(): Writes the data loaded from the VoxelManip back to the map.
+ ^ important: data must be set using VoxelManip:set_data before calling this
+- get_data(): Gets the data read into the VoxelManip object
+ ^ returns raw node data is in the form of an array of node content ids
+- set_data(data): Sets the data contents of the VoxelManip object
+- update_map(): Update map after writing chunk back to map.
+ ^ To be used only by VoxelManip objects created by the mod itself; not a VoxelManip that was
+ ^ retrieved from minetest.get_mapgen_object
+- set_lighting(light): Set the lighting within the VoxelManip
+ ^ light is a table, {day=<0...15>, night=<0...15>}
+ ^ To be used only by a VoxelManip object from minetest.get_mapgen_object
+- calc_lighting(): Calculate lighting within the VoxelManip
+ ^ To be used only by a VoxelManip object from minetest.get_mapgen_object
+- update_liquids(): Update liquid flow
+
+VoxelArea: A helper class for voxel areas
+- Can be created via VoxelArea:new{MinEdge=pmin, MaxEdge=pmax}
+- Coordinates are *inclusive*, like most other things in Minetest
+methods:
+- getExtent(): returns a 3d vector containing the size of the area formed by MinEdge and MaxEdge
+- getVolume(): returns the volume of the area formed by MinEdge and MaxEdge
+- index(x, y, z): returns the index of an absolute position in a flat array starting at 1
+ ^ useful for things like VoxelManip, raw Schematic specifiers, PerlinNoiseMap:get2d/3dMap, and so on
+- indexp(p): same as above, except takes a vector
+- position(i): returns the absolute position vector corresponding to index i
+- contains(x, y, z): check if (x,y,z) is inside area formed by MinEdge and MaxEdge
+- containsp(p): same as above, except takes a vector
+- containsi(i): same as above, except takes an index
+- iter(minx, miny, minz, maxx, maxy, maxz): returns an iterator that returns indices
+ ^ from (minx,miny,minz) to (maxx,maxy,maxz) in the order of [z [y [x]]]
+- iterp(minp, maxp): same as above, except takes a vector
+
+Mapgen objects
+---------------
+A mapgen object is a construct used in map generation. Mapgen objects can be used by an on_generate
+callback to speed up operations by avoiding unnecessary recalculations; these can be retrieved using the
+minetest.get_mapgen_object() function. If the requested Mapgen object is unavailable, or
+get_mapgen_object() was called outside of an on_generate() callback, nil is returned.
+
+The following Mapgen objects are currently available:
+
+- voxelmanip
+ This returns three values; the VoxelManip object to be used, minimum and maximum emerged position, in that
+order. All mapgens support this object.
+
+- heightmap
+ Returns an array containing the y coordinates of the ground levels of nodes in the most recently
+generated chunk by the current mapgen.
+
+- biomemap
+ Returns an array containing the biome IDs of nodes in the most recently generated chunk by the
+current mapgen.
+
+- heatmap
+ Returns an array containing the temperature values of nodes in the most recently generated chunk by
+the current mapgen.
+
+- humiditymap
+ Returns an array containing the humidity values of nodes in the most recently generated chunk by the
+current mapgen.
+