refactor grass spreading and related api function.
This commit is contained in:
parent
afc58d0b97
commit
aae1beea64
|
@ -13,11 +13,10 @@ end
|
|||
|
||||
function blockgame.air_flows_through (pos, node)
|
||||
node = node or minetest.get_node(pos)
|
||||
local node_name = node.name
|
||||
|
||||
if node_name == "air" then return true end
|
||||
|
||||
return minetest.get_item_group(node_name, "air_flowable") > 0
|
||||
return blockgame.item_matches(node.name, {
|
||||
"air",
|
||||
"group:air_flowable",
|
||||
})
|
||||
end
|
||||
|
||||
|
||||
|
|
|
@ -48,7 +48,10 @@ blockgame.register_abm({
|
|||
})
|
||||
|
||||
function attempt_spread (pos)
|
||||
if minetest.get_node(pos).name ~= "bg_terrain:dirt" then return false end
|
||||
local name = minetest.get_node(pos).name
|
||||
|
||||
if not blockgame.item_matches(name, {"group:grassable"}) then return false end
|
||||
|
||||
if not blockgame.air_flows_through(pos + blockgame.vector.dirs.up) then return false end
|
||||
|
||||
minetest.set_node(pos, {name = "bg_terrain:grass"})
|
||||
|
|
|
@ -34,6 +34,7 @@ blockgame.register_node(modname .. ":grass", {
|
|||
blockgame.reg_simple_node("dirt", "Dirt", {
|
||||
cracky = 3,
|
||||
dirty = 1,
|
||||
grassable = 1,
|
||||
})
|
||||
|
||||
blockgame.register_loose_version(modname .. ":dirt")
|
||||
|
|
Loading…
Reference in New Issue