forked from mtcontrib/plantlife_modpack
		
	Vines now generated at mapgen time. Vines now generated as a vine of random length.
This commit is contained in:
		@@ -40,11 +40,20 @@ vines.register_vine = function( name, defs, biome )
 | 
				
			|||||||
	local vine_image_middle = "vines_" .. name .. "_middle.png"
 | 
						local vine_image_middle = "vines_" .. name .. "_middle.png"
 | 
				
			||||||
	local drop_node = vine_name_end
 | 
						local drop_node = vine_name_end
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	biome.spawn_plants = {vine_name_end}
 | 
						local spawn_plants = function(pos, fdir)
 | 
				
			||||||
 | 
							local max_length = math.random(defs.average_length)
 | 
				
			||||||
 | 
							local current_length = 0
 | 
				
			||||||
 | 
							while minetest.get_node({ x=pos.x, y=pos.y - 1, z=pos.z }).name == 'air' and current_length < max_length do
 | 
				
			||||||
 | 
								minetest.swap_node(pos, { name = vine_name_middle, param2 = fdir })
 | 
				
			||||||
 | 
								pos.y = pos.y - 1
 | 
				
			||||||
 | 
								current_length = current_length + 1
 | 
				
			||||||
 | 
							end
 | 
				
			||||||
 | 
							minetest.swap_node(pos, { name = vine_name_end, param2 = fdir })
 | 
				
			||||||
 | 
						end
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	local vine_group = 'group:' .. name .. '_vines'
 | 
						local vine_group = 'group:' .. name .. '_vines'
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	biome.spawn_surfaces[#biome.spawn_surfaces + 1] = vine_group
 | 
						biome.surface[#biome.surface + 1] = vine_group
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	local selection_box = {type = "wallmounted",}
 | 
						local selection_box = {type = "wallmounted",}
 | 
				
			||||||
	local drawtype = 'signlike'
 | 
						local drawtype = 'signlike'
 | 
				
			||||||
@@ -133,7 +142,7 @@ vines.register_vine = function( name, defs, biome )
 | 
				
			|||||||
		end,
 | 
							end,
 | 
				
			||||||
	})
 | 
						})
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	biome_lib.register_active_spawner(biome)
 | 
					    biome_lib.register_on_generate(biome, spawn_plants)
 | 
				
			||||||
end
 | 
					end
 | 
				
			||||||
 | 
					
 | 
				
			||||||
-- ALIASES
 | 
					-- ALIASES
 | 
				
			||||||
@@ -321,12 +330,10 @@ vines.register_vine('root',
 | 
				
			|||||||
	choose_random_wall = true,
 | 
						choose_random_wall = true,
 | 
				
			||||||
	avoid_nodes = {"vines:root_middle"},
 | 
						avoid_nodes = {"vines:root_middle"},
 | 
				
			||||||
	avoid_radius = 5,
 | 
						avoid_radius = 5,
 | 
				
			||||||
	spawn_delay = 500,
 | 
						surface = spawn_root_surfaces,
 | 
				
			||||||
	spawn_chance = 10,
 | 
					 | 
				
			||||||
	spawn_surfaces = spawn_root_surfaces,
 | 
					 | 
				
			||||||
	spawn_on_bottom = true,
 | 
						spawn_on_bottom = true,
 | 
				
			||||||
	plantlife_limit = -0.6,
 | 
						plantlife_limit = -0.6,
 | 
				
			||||||
	humidity_min = 0.4,
 | 
					--	humidity_min = 0.4,
 | 
				
			||||||
})
 | 
					})
 | 
				
			||||||
 | 
					
 | 
				
			||||||
vines.register_vine('vine',
 | 
					vines.register_vine('vine',
 | 
				
			||||||
@@ -334,9 +341,7 @@ vines.register_vine('vine',
 | 
				
			|||||||
	choose_random_wall = true,
 | 
						choose_random_wall = true,
 | 
				
			||||||
	avoid_nodes = {"group:vines"},
 | 
						avoid_nodes = {"group:vines"},
 | 
				
			||||||
	avoid_radius = 5,
 | 
						avoid_radius = 5,
 | 
				
			||||||
	spawn_delay = 500,
 | 
						surface = {
 | 
				
			||||||
	spawn_chance = 100,
 | 
					 | 
				
			||||||
	spawn_surfaces = {
 | 
					 | 
				
			||||||
--		"default:leaves",
 | 
					--		"default:leaves",
 | 
				
			||||||
		"default:jungleleaves",
 | 
							"default:jungleleaves",
 | 
				
			||||||
		"moretrees:jungletree_leaves_red",
 | 
							"moretrees:jungletree_leaves_red",
 | 
				
			||||||
@@ -345,7 +350,7 @@ vines.register_vine('vine',
 | 
				
			|||||||
	},
 | 
						},
 | 
				
			||||||
	spawn_on_bottom = true,
 | 
						spawn_on_bottom = true,
 | 
				
			||||||
	plantlife_limit = -0.9,
 | 
						plantlife_limit = -0.9,
 | 
				
			||||||
	humidity_min = 0.7,
 | 
					--	humidity_min = 0.7,
 | 
				
			||||||
})
 | 
					})
 | 
				
			||||||
 | 
					
 | 
				
			||||||
vines.register_vine('side',
 | 
					vines.register_vine('side',
 | 
				
			||||||
@@ -353,9 +358,7 @@ vines.register_vine('side',
 | 
				
			|||||||
	choose_random_wall = true,
 | 
						choose_random_wall = true,
 | 
				
			||||||
	avoid_nodes = {"group:vines", "default:apple"},
 | 
						avoid_nodes = {"group:vines", "default:apple"},
 | 
				
			||||||
	avoid_radius = 3,
 | 
						avoid_radius = 3,
 | 
				
			||||||
	spawn_delay = 500,
 | 
						surface = {
 | 
				
			||||||
	spawn_chance = 100,
 | 
					 | 
				
			||||||
	spawn_surfaces = {
 | 
					 | 
				
			||||||
--		"default:leaves",
 | 
					--		"default:leaves",
 | 
				
			||||||
		"default:jungleleaves",
 | 
							"default:jungleleaves",
 | 
				
			||||||
		"moretrees:jungletree_leaves_red",
 | 
							"moretrees:jungletree_leaves_red",
 | 
				
			||||||
@@ -364,7 +367,7 @@ vines.register_vine('side',
 | 
				
			|||||||
	},
 | 
						},
 | 
				
			||||||
	spawn_on_side = true,
 | 
						spawn_on_side = true,
 | 
				
			||||||
	plantlife_limit = -0.9,
 | 
						plantlife_limit = -0.9,
 | 
				
			||||||
	humidity_min = 0.4,
 | 
					--	humidity_min = 0.4,
 | 
				
			||||||
})
 | 
					})
 | 
				
			||||||
 | 
					
 | 
				
			||||||
vines.register_vine("jungle",
 | 
					vines.register_vine("jungle",
 | 
				
			||||||
@@ -381,15 +384,13 @@ vines.register_vine("jungle",
 | 
				
			|||||||
		"vines:jungle_end",
 | 
							"vines:jungle_end",
 | 
				
			||||||
	},
 | 
						},
 | 
				
			||||||
	avoid_radius = 5,
 | 
						avoid_radius = 5,
 | 
				
			||||||
	spawn_delay = 500,
 | 
						surface = {
 | 
				
			||||||
	spawn_chance = 100,
 | 
					 | 
				
			||||||
	spawn_surfaces = {
 | 
					 | 
				
			||||||
		"default:jungletree",
 | 
							"default:jungletree",
 | 
				
			||||||
		"moretrees:jungletree_trunk"
 | 
							"moretrees:jungletree_trunk"
 | 
				
			||||||
	},
 | 
						},
 | 
				
			||||||
	spawn_on_side = true,
 | 
						spawn_on_side = true,
 | 
				
			||||||
	plantlife_limit = -0.9,
 | 
						plantlife_limit = -0.9,
 | 
				
			||||||
	humidity_min = 0.2,
 | 
					--	humidity_min = 0.2,
 | 
				
			||||||
})
 | 
					})
 | 
				
			||||||
 | 
					
 | 
				
			||||||
vines.register_vine( 'willow',
 | 
					vines.register_vine( 'willow',
 | 
				
			||||||
@@ -402,11 +403,9 @@ vines.register_vine( 'willow',
 | 
				
			|||||||
	near_nodes_count = 1,
 | 
						near_nodes_count = 1,
 | 
				
			||||||
	near_nodes_vertical = 7,
 | 
						near_nodes_vertical = 7,
 | 
				
			||||||
	plantlife_limit = -0.8,
 | 
						plantlife_limit = -0.8,
 | 
				
			||||||
	spawn_chance = 10,
 | 
					 | 
				
			||||||
	spawn_delay = 500,
 | 
					 | 
				
			||||||
	spawn_on_side = true,
 | 
						spawn_on_side = true,
 | 
				
			||||||
	spawn_surfaces = {"moretrees:willow_leaves"},
 | 
						surface = {"moretrees:willow_leaves"},
 | 
				
			||||||
	humidity_min = 0.5
 | 
					--	humidity_min = 0.5
 | 
				
			||||||
})
 | 
					})
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 
 | 
				
			|||||||
		Reference in New Issue
	
	Block a user