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:
		
							
								
								
									
										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)..")")
 | 
				
			||||||
					minetest.env:add_node(pos, { name = gresult })
 | 
										if facedir == nil then
 | 
				
			||||||
 | 
											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)
 | 
				
			||||||
 
 | 
				
			|||||||
		Reference in New Issue
	
	Block a user