Early exit

This commit is contained in:
Craig Robbins 2014-08-22 18:15:03 +10:00 committed by Vanessa Ezekowitz
parent 4d2a58027e
commit 2b15938756
2 changed files with 30 additions and 53 deletions

View File

@ -22,7 +22,6 @@ abstract_ferns.grow_fern = function(pos)
if minetest.get_node(right_here).name == "air" if minetest.get_node(right_here).name == "air"
or minetest.get_node(right_here).name == "default:junglegrass" then or minetest.get_node(right_here).name == "default:junglegrass" then
if fern_size == 1 then if fern_size == 1 then
minetest.set_node(right_here, {name="ferns:fern_01", param2=fdir}) minetest.set_node(right_here, {name="ferns:fern_01", param2=fdir})
elseif fern_size < 4 then elseif fern_size < 4 then

View File

@ -10,64 +10,42 @@
assert(abstract_ferns.config.enable_treefern == true) assert(abstract_ferns.config.enable_treefern == true)
abstract_ferns.grow_tree_fern = function(pos) abstract_ferns.grow_tree_fern = function(pos)
local size = math.random(1,5)
local crown = math.random(1,2)
local pos_01 = {x = pos.x, y = pos.y + 1, z = pos.z} local pos_01 = {x = pos.x, y = pos.y + 1, z = pos.z}
if minetest.get_node(pos_01).name ~= "air"
and minetest.get_node(pos_01).name ~= "ferns:sapling_tree_fern"
and minetest.get_node(pos_01).name ~= "default:junglegrass" then
return
end
local pos_02 = {x = pos.x, y = pos.y + 2, z = pos.z} local pos_02 = {x = pos.x, y = pos.y + 2, z = pos.z}
local pos_03 = {x = pos.x, y = pos.y + 3, z = pos.z} local pos_03 = {x = pos.x, y = pos.y + 3, z = pos.z}
local pos_04 = {x = pos.x, y = pos.y + 4, z = pos.z} local pos_04 = {x = pos.x, y = pos.y + 4, z = pos.z}
local pos_05 = {x = pos.x, y = pos.y + 5, z = pos.z} local pos_05 = {x = pos.x, y = pos.y + 5, z = pos.z}
if minetest.get_node(pos_01).name == "air" -- instead of check_air = true, local size = math.random(1, 5)
or minetest.get_node(pos_01).name == "ferns:sapling_tree_fern" local crown = ({ "ferns:tree_fern_leaves", "ferns:tree_fern_leaves_02" })[math.random(1, 2)]
or minetest.get_node(pos_01).name == "default:junglegrass" then
if minetest.get_node(pos_02).name ~= "air" if minetest.get_node(pos_02).name ~= "air" or size == 1 then -- TODO: Is ~= "air" intended behaviour?
or size == 1 then minetest.set_node(pos_01, {name="ferns:tree_fern_leaves"})
minetest.set_node(pos_01, {name="ferns:tree_fern_leaves"}) elseif minetest.get_node(pos_03).name ~= "air" or size == 2 then
minetest.set_node(pos_01, {name="ferns:fern_trunk"})
elseif minetest.get_node(pos_03).name ~= "air" minetest.set_node(pos_02, {name=crown})
or size == 2 then elseif minetest.get_node(pos_04).name ~= "air" or size == 3 then
minetest.set_node(pos_01, {name="ferns:fern_trunk"}) minetest.set_node(pos_01, {name="ferns:fern_trunk"})
if crown == 1 then minetest.set_node(pos_02, {name="ferns:fern_trunk"})
minetest.set_node(pos_02, {name="ferns:tree_fern_leaves"}) minetest.set_node(pos_03, {name=crown})
else elseif minetest.get_node(pos_05).name ~= "air" or size == 4 then
minetest.set_node(pos_02, {name="ferns:tree_fern_leaves_02"}) minetest.set_node(pos_01, {name="ferns:fern_trunk"})
end minetest.set_node(pos_02, {name="ferns:fern_trunk"})
minetest.set_node(pos_03, {name="ferns:fern_trunk"})
elseif minetest.get_node(pos_04).name ~= "air" minetest.set_node(pos_04, {name=crown})
or size == 3 then elseif size == 5 then
minetest.set_node(pos_01, {name="ferns:fern_trunk"}) minetest.set_node(pos_01, {name="ferns:fern_trunk"})
minetest.set_node(pos_02, {name="ferns:fern_trunk"}) minetest.set_node(pos_02, {name="ferns:fern_trunk"})
if crown == 1 then minetest.set_node(pos_03, {name="ferns:fern_trunk"})
minetest.set_node(pos_03, {name="ferns:tree_fern_leaves"}) minetest.set_node(pos_04, {name="ferns:fern_trunk"})
else minetest.set_node(pos_05, {name=crown})
minetest.set_node(pos_03, {name="ferns:tree_fern_leaves_02"})
end
elseif minetest.get_node(pos_05).name ~= "air"
or size == 4 then
minetest.set_node(pos_01, {name="ferns:fern_trunk"})
minetest.set_node(pos_02, {name="ferns:fern_trunk"})
minetest.set_node(pos_03, {name="ferns:fern_trunk"})
if crown == 1 then
minetest.set_node(pos_04, {name="ferns:tree_fern_leaves"})
else
minetest.set_node(pos_04, {name="ferns:tree_fern_leaves_02"})
end
elseif size == 5 then
minetest.set_node(pos_01, {name="ferns:fern_trunk"})
minetest.set_node(pos_02, {name="ferns:fern_trunk"})
minetest.set_node(pos_03, {name="ferns:fern_trunk"})
minetest.set_node(pos_04, {name="ferns:fern_trunk"})
if crown == 1 then
minetest.set_node(pos_05, {name="ferns:tree_fern_leaves"})
else
minetest.set_node(pos_05, {name="ferns:tree_fern_leaves_02"})
end
end
end end
end end