From 9c7e96dd6212cf32548b253282ad21b2351b3ea6 Mon Sep 17 00:00:00 2001 From: Vanessa Ezekowitz Date: Wed, 20 Aug 2014 13:38:44 -0400 Subject: [PATCH] allow random_facedir parameter during mapgen call --- API.txt | 3 ++- plants_lib/init.lua | 16 ++++++++++++---- 2 files changed, 14 insertions(+), 5 deletions(-) diff --git a/API.txt b/API.txt index 05313db..8701137 100644 --- a/API.txt +++ b/API.txt @@ -331,7 +331,8 @@ biome = { -- empty region above the spawn target. -- Useful when adding trees to snow biomes. -- Defaults to false. - spawn_replace_node = bool -- same as with the ABM spawner. + spawn_replace_node = bool, -- same as with the ABM spawner. + random_facedir = {table}, -- same as with the ABM spawner. } Regarding node_or_function_or_treedef, this must either be table with an diff --git a/plants_lib/init.lua b/plants_lib/init.lua index 41bf86a..2491931 100644 --- a/plants_lib/init.lua +++ b/plants_lib/init.lua @@ -286,8 +286,12 @@ function plantslib:generate_block_with_air_checking(minp, maxp, blockseed) plantslib:generate_tree(pos, node_or_function_or_model) spawned = true elseif objtype == "string" and - minetest.registered_nodes[node_or_function_or_model] then - minetest.set_node(p_top, { name = node_or_function_or_model }) + minetest.registered_nodes[node_or_function_or_model] then + local fdir = nil + if biome.random_facedir then + fdir = math.random(biome.random_facedir[1], biome.random_facedir[2]) + end + minetest.set_node(p_top, { name = node_or_function_or_model, param2 = fdir }) spawned = true elseif objtype == "function" then node_or_function_or_model(pos) @@ -402,8 +406,12 @@ function plantslib:generate_block_no_air_check(minp, maxp, blockseed) plantslib:generate_tree(pos, node_or_function_or_model) spawned = true elseif objtype == "string" and - minetest.registered_nodes[node_or_function_or_model] then - minetest.set_node(p_top, { name = node_or_function_or_model }) + minetest.registered_nodes[node_or_function_or_model] then + local fdir = nil + if biome.random_facedir then + fdir = math.random(biome.random_facedir[1], biome.random_facedir[2]) + end + minetest.set_node(p_top, { name = node_or_function_or_model, param2 = fdir }) spawned = true elseif objtype == "function" then node_or_function_or_model(pos)