Default: Generalise, optimise and simplify grass spread function
authorparamat <mat.gregory@virginmedia.com>
Thu, 22 Sep 2016 10:56:15 +0000 (11:56 +0100)
committerparamat <mat.gregory@virginmedia.com>
Sat, 1 Oct 2016 22:15:05 +0000 (23:15 +0100)
commitc0de5646d230b209af32c60c3e5d1256855b2767
tree193ce52743f1242642f540bf28d126a05fb1dc9e
parent5e4a6e8ac68b92c7394b80bb67839b71b4a4a00b
Default: Generalise, optimise and simplify grass spread function

Credit to tenplus1 for the suggestion to generalise for mod use.
Mods can add mod nodes to 'group:spreading_dirt_type' enabling the
function to work with mod nodes.

Add some nodes to this group.

Removing 'dirt_with_grass' etc. from 'neighbors' stops the ABM action
running everywhere and constantly, on the dirt nodes immediately below
the surface nodes. Now the action only runs in the rare case of a dirt
node with neighbouring air, grass decorations or snow.

Remove check for air above to allow grass to spread under light-
transmitting nodes such as fences, walls, plants. This causes spread
under slabs, stairs and glass, when near air, but seems worth it.

Remove unnecessary check for nil node.
mods/default/functions.lua
mods/default/nodes.lua