From 6d74d09c9daac6939525a909ab1401ebe8a174b7 Mon Sep 17 00:00:00 2001 From: Vanessa Ezekowitz Date: Sat, 23 Feb 2013 12:34:01 -0500 Subject: =?UTF-8?q?Added=20support=20for=20spawning=20small=20fir=20trees?= =?UTF-8?q?=20in=20snow=20biomes.=20=20Made=20jungletrees=20and=20palms=20?= =?UTF-8?q?require=20at=20least=20+15=C2=B0C=20to=20grow.=20=20This=20is?= =?UTF-8?q?=20supposed=20to=20keep=20them=20away=20from=20snow=20biomes,?= =?UTF-8?q?=20but=20the=20engine=20doesn't=20let=20me=20tell=20the=20snow?= =?UTF-8?q?=20mod=20to=20always=20run=20first.=20=20Also=20please=20note?= =?UTF-8?q?=20that=20due=20to=20the=20load=20that=20snow=20biomes=20+=20mo?= =?UTF-8?q?retrees=20adds=20to=20the=20map=20generator,=20well...=20stuff?= =?UTF-8?q?=20will=20look=20cut=20off,=20broken,=20etc.=20due=20to=20bugs?= =?UTF-8?q?=20in=20the=20map=20generator.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- init.lua | 64 +++++++++++++++++++++++++++++++--------------------------------- 1 file changed, 31 insertions(+), 33 deletions(-) (limited to 'init.lua') diff --git a/init.lua b/init.lua index 74b15dc..894c1c9 100644 --- a/init.lua +++ b/init.lua @@ -45,6 +45,8 @@ plantslib:register_generate_plant(moretrees.spruce_biome, "moretrees:grow_spruce plantslib:register_generate_plant(moretrees.jungletree_biome, "moretrees:grow_jungletree") plantslib:register_generate_plant(moretrees.fir_biome, "moretrees:grow_fir") +plantslib:register_generate_plant(moretrees.fir_biome_snow, "moretrees:grow_fir_snow") + -- Code to spawn a birch tree function moretrees:grow_birch(pos) @@ -121,7 +123,7 @@ function moretrees:grow_jungletree(pos) minetest.env:spawn_tree(pos, moretrees.jungletree_model) end --- code to spawn fir trees (formerly "conifers") +-- code to spawn fir trees function moretrees:grow_fir(pos) if math.random(2) == 1 then @@ -137,6 +139,9 @@ function moretrees:grow_fir(pos) moretrees.fir_model.rules_b = moretrees.ct_rules_b2 end + moretrees.fir_model.iterations = 7 + moretrees.fir_model.random_level = 5 + minetest.env:remove_node(pos) local leaves = minetest.env:find_nodes_in_area({x = pos.x, y = pos.y, z = pos.z}, {x = pos.x, y = pos.y+5, z = pos.z}, "default:leaves") for leaf in ipairs(leaves) do @@ -145,38 +150,31 @@ function moretrees:grow_fir(pos) minetest.env:spawn_tree(pos,moretrees.fir_model) end --- Should we remove all the trees above the conifers altitude? - -if moretrees.firs_remove_default_trees == true then - minetest.register_abm({ - nodenames = { - "default:tree", - "default:leaves" - }, - interval = moretrees.firs_remove_interval, - chance = moretrees.firs_remove_chance, - - action = function(pos, node, _, _) - if minetest.env:get_node({x = pos.x, y = pos.y + 1, z = pos.z}).name == "air" - and pos.y >= CONIFERS_ALTITUDE - then - minetest.env:add_node(pos , {name = "air"}) - end - end - }) -end +-- same thing, but a smaller version that grows only in snow biomes --- snow biomes mod uses this code to make biomes: --- --- local perlin1 = env:get_perlin(112,3, 0.5, 150) --- local test = perlin1:get2d({x=pos.x, y=pos.z}) --- if smooth and (test > 0.73 or (test > 0.43 and math.random(0,29) > (0.73 - test) * 100 )) then --- in_biome = true --- elseif not smooth and test > 0.53 then --- in_biome = true --- end --- --- We'll just save this for possible later use ;-) --- +function moretrees:grow_fir_snow(pos) + if math.random(2) == 1 then + moretrees.fir_model.leaves="moretrees:fir_leaves" + else + moretrees.fir_model.leaves="moretrees:fir_leaves_bright" + end + if math.random(2) == 1 then + moretrees.fir_model.rules_a = moretrees.ct_rules_a1 + moretrees.fir_model.rules_b = moretrees.ct_rules_b1 + else + moretrees.fir_model.rules_a = moretrees.ct_rules_a2 + moretrees.fir_model.rules_b = moretrees.ct_rules_b2 + end + + moretrees.fir_model.iterations = 2 + moretrees.fir_model.random_level = 2 + + minetest.env:remove_node(pos) + local leaves = minetest.env:find_nodes_in_area({x = pos.x, y = pos.y, z = pos.z}, {x = pos.x, y = pos.y+5, z = pos.z}, "default:leaves") + for leaf in ipairs(leaves) do + minetest.env:remove_node(leaves[leaf]) + end + minetest.env:spawn_tree(pos,moretrees.fir_model) +end print("[Moretrees] Loaded (2013-02-11)") -- cgit v1.2.3