forked from mtcontrib/plantlife_modpack
Fixed a bug in the placement of seaweed, fixing it extends the API slightly.
Updated API.txt accordingly.
This commit is contained in:
parent
13534d1631
commit
e3a9d05871
8
API.txt
8
API.txt
@ -17,7 +17,8 @@ The first of these, spawn_on_surfaces() is defined with quite a large number
|
|||||||
of variables:
|
of variables:
|
||||||
|
|
||||||
spawn_on_surfaces = function(sdelay, splant, sradius, schance, ssurface,
|
spawn_on_surfaces = function(sdelay, splant, sradius, schance, ssurface,
|
||||||
savoid, seed_diff, lightmin, lightmax, nneighbors, ocount)
|
savoid, seed_diff, lightmin, lightmax, nneighbors,
|
||||||
|
ocount, facedir)
|
||||||
|
|
||||||
The first several of these are all required, and are from the last version of
|
The first several of these are all required, and are from the last version of
|
||||||
the flowers mod, so this part of the API should be the same as before.
|
the flowers mod, so this part of the API should be the same as before.
|
||||||
@ -63,6 +64,8 @@ nneighbors: Table with a list of neighboring nodes, passed to the ABM as the
|
|||||||
ocount: There must be at least this many of the above neighbors around the
|
ocount: There must be at least this many of the above neighbors around the
|
||||||
node the plant is about to spawn on for it to happen. Defaults to
|
node the plant is about to spawn on for it to happen. Defaults to
|
||||||
0.
|
0.
|
||||||
|
facedir: The value passed to the param2 variable when adding the plant node
|
||||||
|
to the map. Defaults to 0 if left out or set to nil.
|
||||||
|
|
||||||
-----
|
-----
|
||||||
The second function, grow_plants() is defined like so:
|
The second function, grow_plants() is defined like so:
|
||||||
@ -89,6 +92,9 @@ grow_nodes: This node must be under the plant in order for it to grow at
|
|||||||
{"default:dirt_with_grass","default:sand"}. This is so that
|
{"default:dirt_with_grass","default:sand"}. This is so that
|
||||||
the plant can be manually placed on something like a flower
|
the plant can be manually placed on something like a flower
|
||||||
pot or something without it growing and eventually dieing.
|
pot or something without it growing and eventually dieing.
|
||||||
|
facedir: Same as with spawning a plant. If supplied, this value is
|
||||||
|
passed to the param2 variable when changing the plant. If nil
|
||||||
|
or left out, no new param2 value is applied.
|
||||||
|
|
||||||
-----
|
-----
|
||||||
plant_valid_wall() expects only a single parameter, "pos", which is a table
|
plant_valid_wall() expects only a single parameter, "pos", which is a table
|
||||||
|
@ -90,7 +90,7 @@ end
|
|||||||
|
|
||||||
-- The spawning ABM
|
-- The spawning ABM
|
||||||
|
|
||||||
spawn_on_surfaces = function(sdelay, splant, sradius, schance, ssurface, savoid, seed_diff, lightmin, lightmax, nneighbors, ocount)
|
spawn_on_surfaces = function(sdelay, splant, sradius, schance, ssurface, savoid, seed_diff, lightmin, lightmax, nneighbors, ocount, facedir)
|
||||||
if seed_diff == nil then seed_diff = 0 end
|
if seed_diff == nil then seed_diff = 0 end
|
||||||
if lightmin == nil then lightmin = 0 end
|
if lightmin == nil then lightmin = 0 end
|
||||||
if lightmax == nil then lightmax = LIGHT_MAX end
|
if lightmax == nil then lightmax = LIGHT_MAX end
|
||||||
@ -120,7 +120,7 @@ spawn_on_surfaces = function(sdelay, splant, sradius, schance, ssurface, savoid,
|
|||||||
minetest.env:add_node(p_top, { name = "poisonivy:climbing", param2 = walldir })
|
minetest.env:add_node(p_top, { name = "poisonivy:climbing", param2 = walldir })
|
||||||
else
|
else
|
||||||
dbg("Spawn: "..splant.." at "..dump(p_top).." on "..ssurface)
|
dbg("Spawn: "..splant.." at "..dump(p_top).." on "..ssurface)
|
||||||
minetest.env:add_node(p_top, { name = splant })
|
minetest.env:add_node(p_top, { name = splant, param2 = facedir })
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
@ -130,7 +130,7 @@ end
|
|||||||
|
|
||||||
-- The growing ABM
|
-- The growing ABM
|
||||||
|
|
||||||
grow_plants = function(gdelay, gchance, gplant, gresult, dry_early_node, grow_nodes)
|
grow_plants = function(gdelay, gchance, gplant, gresult, dry_early_node, grow_nodes, facedir)
|
||||||
minetest.register_abm({
|
minetest.register_abm({
|
||||||
nodenames = { gplant },
|
nodenames = { gplant },
|
||||||
interval = gdelay,
|
interval = gdelay,
|
||||||
@ -161,7 +161,11 @@ grow_plants = function(gdelay, gchance, gplant, gresult, dry_early_node, grow_no
|
|||||||
|
|
||||||
elseif gresult ~= nil then
|
elseif gresult ~= nil then
|
||||||
dbg("Grow: "..gplant.." -> "..gresult.." at ("..dump(pos)..")")
|
dbg("Grow: "..gplant.." -> "..gresult.." at ("..dump(pos)..")")
|
||||||
|
if facedir == nil then
|
||||||
minetest.env:add_node(pos, { name = gresult })
|
minetest.env:add_node(pos, { name = gresult })
|
||||||
|
else
|
||||||
|
minetest.env:add_node(pos, { name = gresult, param2 = facedir })
|
||||||
|
end
|
||||||
else
|
else
|
||||||
dbg("Die: "..gplant.." at ("..dump(pos)..")")
|
dbg("Die: "..gplant.." at ("..dump(pos)..")")
|
||||||
minetest.env:remove_node(pos)
|
minetest.env:remove_node(pos)
|
||||||
@ -288,9 +292,9 @@ if enable_flowers then
|
|||||||
})
|
})
|
||||||
|
|
||||||
spawn_on_surfaces(spawn_delay/2, "flowers:flower_waterlily", 15 , spawn_chance*3, "default:water_source" , {"group:flower"}, flowers_seed_diff, 10)
|
spawn_on_surfaces(spawn_delay/2, "flowers:flower_waterlily", 15 , spawn_chance*3, "default:water_source" , {"group:flower"}, flowers_seed_diff, 10)
|
||||||
spawn_on_surfaces(spawn_delay*2, "flowers:flower_seaweed" , 0.1, spawn_chance*2, "default:water_source" , {"group:flower"}, flowers_seed_diff, 4, 10, {"default:dirt_with_grass"}, 0)
|
spawn_on_surfaces(spawn_delay*2, "flowers:flower_seaweed" , 0.1, spawn_chance*2, "default:water_source" , {"group:flower"}, flowers_seed_diff, 4, 10, {"default:dirt_with_grass"}, 0, 1)
|
||||||
spawn_on_surfaces(spawn_delay*2, "flowers:flower_seaweed" , 0.1, spawn_chance*2, "default:dirt_with_grass", {"group:flower"}, flowers_seed_diff, 4, 10, {"default:water_source"} , 1)
|
spawn_on_surfaces(spawn_delay*2, "flowers:flower_seaweed" , 0.1, spawn_chance*2, "default:dirt_with_grass", {"group:flower"}, flowers_seed_diff, 4, 10, {"default:water_source"} , 1, 1)
|
||||||
spawn_on_surfaces(spawn_delay*2, "flowers:flower_seaweed" , 0.1, spawn_chance*2, "default:stone" , {"group:flower"}, flowers_seed_diff, 4, 10, {"default:water_source"} , 6)
|
spawn_on_surfaces(spawn_delay*2, "flowers:flower_seaweed" , 0.1, spawn_chance*2, "default:stone" , {"group:flower"}, flowers_seed_diff, 4, 10, {"default:water_source"} , 6, 1)
|
||||||
|
|
||||||
|
|
||||||
minetest.register_craftitem(":flowers:flower_pot", {
|
minetest.register_craftitem(":flowers:flower_pot", {
|
||||||
|
@ -90,7 +90,8 @@ end
|
|||||||
|
|
||||||
-- The spawning ABM
|
-- The spawning ABM
|
||||||
|
|
||||||
spawn_on_surfaces = function(sdelay, splant, sradius, schance, ssurface, savoid, seed_diff, lightmin, lightmax, nneighbors, ocount)
|
spawn_on_surfaces = function(sdelay, splant, sradius, schance, ssurface, savoid, seed_diff, lightmin, lightmax, nneighbors, ocount, facedir)
|
||||||
|
if seed_diff == nil then seed_diff = 0 end
|
||||||
if lightmin == nil then lightmin = 0 end
|
if lightmin == nil then lightmin = 0 end
|
||||||
if lightmax == nil then lightmax = LIGHT_MAX end
|
if lightmax == nil then lightmax = LIGHT_MAX end
|
||||||
if nneighbors == nil then nneighbors = ssurface end
|
if nneighbors == nil then nneighbors = ssurface end
|
||||||
@ -119,7 +120,7 @@ spawn_on_surfaces = function(sdelay, splant, sradius, schance, ssurface, savoid,
|
|||||||
minetest.env:add_node(p_top, { name = "poisonivy:climbing", param2 = walldir })
|
minetest.env:add_node(p_top, { name = "poisonivy:climbing", param2 = walldir })
|
||||||
else
|
else
|
||||||
dbg("Spawn: "..splant.." at "..dump(p_top).." on "..ssurface)
|
dbg("Spawn: "..splant.." at "..dump(p_top).." on "..ssurface)
|
||||||
minetest.env:add_node(p_top, { name = splant })
|
minetest.env:add_node(p_top, { name = splant, param2 = facedir })
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
@ -129,7 +130,7 @@ end
|
|||||||
|
|
||||||
-- The growing ABM
|
-- The growing ABM
|
||||||
|
|
||||||
grow_plants = function(gdelay, gchance, gplant, gresult, dry_early_node, grow_nodes)
|
grow_plants = function(gdelay, gchance, gplant, gresult, dry_early_node, grow_nodes, facedir)
|
||||||
minetest.register_abm({
|
minetest.register_abm({
|
||||||
nodenames = { gplant },
|
nodenames = { gplant },
|
||||||
interval = gdelay,
|
interval = gdelay,
|
||||||
@ -160,7 +161,7 @@ grow_plants = function(gdelay, gchance, gplant, gresult, dry_early_node, grow_no
|
|||||||
|
|
||||||
elseif gresult ~= nil then
|
elseif gresult ~= nil then
|
||||||
dbg("Grow: "..gplant.." -> "..gresult.." at ("..dump(pos)..")")
|
dbg("Grow: "..gplant.." -> "..gresult.." at ("..dump(pos)..")")
|
||||||
minetest.env:add_node(pos, { name = gresult })
|
minetest.env:add_node(pos, { name = gresult, param2 = facedir })
|
||||||
else
|
else
|
||||||
dbg("Die: "..gplant.." at ("..dump(pos)..")")
|
dbg("Die: "..gplant.." at ("..dump(pos)..")")
|
||||||
minetest.env:remove_node(pos)
|
minetest.env:remove_node(pos)
|
||||||
|
Loading…
Reference in New Issue
Block a user