Lua Voxel Manipulators: Mention param2 and lighting data
This commit is contained in:
parent
b551eb1d2f
commit
ed13adf35f
@ -36,7 +36,7 @@ an LVM like so:
|
|||||||
{% highlight lua %}
|
{% highlight lua %}
|
||||||
local vm = minetest.get_voxel_manip()
|
local vm = minetest.get_voxel_manip()
|
||||||
local emin, emax = vm:read_from_map(pos1, pos2)
|
local emin, emax = vm:read_from_map(pos1, pos2)
|
||||||
local data = vm:get_data()
|
local data = vm:get_data() -- node type
|
||||||
{% endhighlight %}
|
{% endhighlight %}
|
||||||
|
|
||||||
An LVM may not read exactly the area you tell it to, for performance reasons.
|
An LVM may not read exactly the area you tell it to, for performance reasons.
|
||||||
@ -45,6 +45,11 @@ which stand for *emerged min pos* and *emerged max pos*. An LVM will load the ar
|
|||||||
it contains for you - whether that involves loading from memory, from disk, or
|
it contains for you - whether that involves loading from memory, from disk, or
|
||||||
calling the map generator.
|
calling the map generator.
|
||||||
|
|
||||||
|
`get_data()` returns a flat array where each entry represents the type of a
|
||||||
|
particular node. You can get param2 and lighting data using the methods
|
||||||
|
`get_light_data()` and `get_param2_data()`. The index for the flat arrays
|
||||||
|
returned are exactly the same.
|
||||||
|
|
||||||
## Reading Nodes
|
## Reading Nodes
|
||||||
|
|
||||||
You'll need to use `emin` and `emax` to work out where a node is in the data of
|
You'll need to use `emin` and `emax` to work out where a node is in the data of
|
||||||
@ -137,6 +142,9 @@ vm:set_data(data)
|
|||||||
vm:write_to_map(data)
|
vm:write_to_map(data)
|
||||||
{% endhighlight %}
|
{% endhighlight %}
|
||||||
|
|
||||||
|
For setting lighting and param2 data, there are the appropriately named
|
||||||
|
`set_light_data()` and `set_param2_data()` methods
|
||||||
|
|
||||||
You then need to update lighting and other things:
|
You then need to update lighting and other things:
|
||||||
|
|
||||||
{% highlight lua %}
|
{% highlight lua %}
|
||||||
@ -185,6 +193,8 @@ end
|
|||||||
|
|
||||||
* Create `replace_in_area(from, to, pos1, pos2)` which replaces all instances of
|
* Create `replace_in_area(from, to, pos1, pos2)` which replaces all instances of
|
||||||
`from` with `to` in the area given, where from and to are node names.
|
`from` with `to` in the area given, where from and to are node names.
|
||||||
* Make an LVM which causes mossy cobble to spread to nearby stone and cobble nodes.
|
* Make a function which rotates all chest nodes by 90°.
|
||||||
|
* Make a function which uses an LVM to cause mossy cobble to spread to nearby
|
||||||
|
stone and cobble nodes.
|
||||||
Does your implementation cause mossy cobble to spread more than a distance of one each
|
Does your implementation cause mossy cobble to spread more than a distance of one each
|
||||||
time? How could you stop this?
|
time? How could you stop this?
|
||||||
|
Loading…
Reference in New Issue
Block a user