peilaus alkaen
				https://github.com/mt-mods/plantlife_modpack.git
				synced 2025-10-31 13:55:25 +01:00 
			
		
		
		
	routed spawn_tree() through a wrapper function so that other mods can hook into
plants_lib's calls to do something extra when a tree is generated at mapgen time or spawned via the growing code.
This commit is contained in:
		
							
								
								
									
										6
									
								
								API.txt
									
									
									
									
									
								
							
							
						
						
									
										6
									
								
								API.txt
									
									
									
									
									
								
							| @@ -22,6 +22,12 @@ All functions in plants lib are declared locally to avoid namespace collisions | |||||||
| with other mods.  They are accessible via the "plantslib" method, e.g. | with other mods.  They are accessible via the "plantslib" method, e.g. | ||||||
| plantslib:spawn_on_surfaces() and so forth. | plantslib:spawn_on_surfaces() and so forth. | ||||||
|  |  | ||||||
|  | In the case of the growing code and the mapgen-based tree generator code, the | ||||||
|  | usual spawn_tree() calls used therein are routed through | ||||||
|  | plantslib:generate_tree() and plantslib:grow_tree(), which just directly call | ||||||
|  | the spawn_tree() function anyway.  This way other mods can wedge into these  | ||||||
|  | two calls by name, to execute something extra whenever a tree is spawned via | ||||||
|  | this library. | ||||||
|  |  | ||||||
| ===== | ===== | ||||||
| spawn_on_surfaces(biome) | spawn_on_surfaces(biome) | ||||||
|   | |||||||
| @@ -133,7 +133,7 @@ function plantslib:search_for_surfaces(minp, maxp, biomedef, node_or_function_or | |||||||
| 							end | 							end | ||||||
| 							]]-- | 							]]-- | ||||||
|  |  | ||||||
| 							minetest.env:spawn_tree(pos, node_or_function_or_model) | 							plantslib:generate_tree(pos, node_or_function_or_model) | ||||||
|  |  | ||||||
| 						elseif type(node_or_function_or_model) == "string" then | 						elseif type(node_or_function_or_model) == "string" then | ||||||
| 							if minetest.registered_nodes[node_or_function_or_model] == nil then | 							if minetest.registered_nodes[node_or_function_or_model] == nil then | ||||||
| @@ -353,7 +353,7 @@ function plantslib:replace_object(pos, replacement, grow_function, walldir, seed | |||||||
| 	if growtype == "table" then | 	if growtype == "table" then | ||||||
| 		plantslib:dbg("Grow: spawn tree at "..dump(pos)) | 		plantslib:dbg("Grow: spawn tree at "..dump(pos)) | ||||||
| 		minetest.env:remove_node(pos) | 		minetest.env:remove_node(pos) | ||||||
| 		minetest.env:spawn_tree(pos, grow_function) | 		plantslib:grow_tree(pos, grow_function) | ||||||
| 		return | 		return | ||||||
| 	elseif growtype == "string" then | 	elseif growtype == "string" then | ||||||
| 		local perlin1 = minetest.env:get_perlin(seeddiff, perlin_octaves, perlin_persistence, perlin_scale) | 		local perlin1 = minetest.env:get_perlin(seeddiff, perlin_octaves, perlin_persistence, perlin_scale) | ||||||
| @@ -418,4 +418,17 @@ function plantslib:find_open_side(pos) | |||||||
| 	return nil | 	return nil | ||||||
| end | end | ||||||
|  |  | ||||||
|  | -- spawn_tree() on generate is routed through here so that other mods can hook | ||||||
|  | -- into it. | ||||||
|  |  | ||||||
|  | function plantslib:generate_tree(pos, node_or_function_or_model) | ||||||
|  | 	minetest.env:spawn_tree(pos, node_or_function_or_model) | ||||||
|  | end | ||||||
|  |  | ||||||
|  | -- and this one's for the call used in the growing code | ||||||
|  |  | ||||||
|  | function plantslib:grow_tree(pos, node_or_function_or_model) | ||||||
|  | 	minetest.env:spawn_tree(pos, node_or_function_or_model) | ||||||
|  | end | ||||||
|  |  | ||||||
| print("[Plantlife Library] Loaded") | print("[Plantlife Library] Loaded") | ||||||
|   | |||||||
		Viittaa uudesa ongelmassa
	
	Block a user