tidy sapling growth and sakura schem

This commit is contained in:
tenplus1 2024-09-01 13:13:26 +01:00
parent aff6652784
commit 3aac12d0aa
2 changed files with 94 additions and 96 deletions

View File

@ -137,14 +137,12 @@ register_sapling("ethereal:olive_tree", "Olive", "ethereal_olive_tree_sapling",
-- add tree schematic
local function add_tree(pos, ofx, ofy, ofz, schem, replace)
if not schem then print("Schematic not found") ; return end
local function add_tree(pos, schem, replace)
minetest.swap_node(pos, {name = "air"})
minetest.place_schematic({x = pos.x - ofx, y = pos.y - ofy, z = pos.z - ofz},
schem, 0, replace, false)
minetest.place_schematic(pos, schem, "random", replace, false,
"place_center_x, place_center_z")
end
-- get mod path and schematic folder
@ -154,85 +152,85 @@ local path = minetest.get_modpath("ethereal") .. "/schematics/"
-- global tree grow functions
function ethereal.grow_basandra_bush(pos)
add_tree(pos, 1, 0, 1, ethereal.basandrabush)
add_tree(pos, ethereal.basandrabush)
end
function ethereal.grow_yellow_tree(pos)
add_tree(pos, 4, 0, 4, ethereal.yellowtree)
add_tree(pos, ethereal.yellowtree)
end
function ethereal.grow_big_tree(pos)
add_tree(pos, 4, 0, 4, ethereal.bigtree)
add_tree(pos, ethereal.bigtree)
end
function ethereal.grow_banana_tree(pos)
if math.random(2) == 1 and minetest.find_node_near(pos, 1, {"farming:soil_wet"}) then
add_tree(pos, 3, 0, 3, ethereal.bananatree,
add_tree(pos, ethereal.bananatree,
{{"ethereal:banana", "ethereal:banana_bunch"}})
else
add_tree(pos, 3, 0, 3, ethereal.bananatree)
add_tree(pos, ethereal.bananatree)
end
end
function ethereal.grow_frost_tree(pos)
add_tree(pos, 4, 0, 4, ethereal.frosttrees)
add_tree(pos, ethereal.frosttrees)
end
function ethereal.grow_mushroom_tree(pos)
add_tree(pos, 4, 0, 4, ethereal.mushroomone)
add_tree(pos, ethereal.mushroomone)
end
function ethereal.grow_mushroom_brown_tree(pos)
add_tree(pos, 1, 0, 1, ethereal.mushroomtwo)
add_tree(pos, ethereal.mushroomtwo)
end
function ethereal.grow_palm_tree(pos)
add_tree(pos, 4, 0, 4, ethereal.palmtree)
add_tree(pos, ethereal.palmtree)
end
function ethereal.grow_willow_tree(pos)
add_tree(pos, 5, 0, 5, ethereal.willow)
add_tree(pos, ethereal.willow)
end
function ethereal.grow_redwood_tree(pos)
add_tree(pos, 4, 0, 4, ethereal.redwood_small_tree)
add_tree(pos, ethereal.redwood_small_tree)
end
function ethereal.grow_giant_redwood_tree(pos)
add_tree(pos, 7, 0, 7, ethereal.redwood_tree)
add_tree(pos, ethereal.redwood_tree)
end
function ethereal.grow_orange_tree(pos)
add_tree(pos, 2, 0, 2, ethereal.orangetree)
add_tree(pos, ethereal.orangetree)
end
function ethereal.grow_bamboo_tree(pos)
add_tree(pos, 1, 0, 1, ethereal.bambootree)
add_tree(pos, ethereal.bambootree)
end
function ethereal.grow_birch_tree(pos)
add_tree(pos, 2, 0, 2, ethereal.birchtree)
add_tree(pos, ethereal.birchtree)
end
function ethereal.grow_sakura_tree(pos)
if math.random(10) == 1 then
add_tree(pos, 4, 0, 3, ethereal.sakura_tree,
add_tree(pos, ethereal.sakura_tree,
{{"ethereal:sakura_leaves", "ethereal:sakura_leaves2"}})
else
add_tree(pos, 4, 0, 3, ethereal.sakura_tree)
add_tree(pos, ethereal.sakura_tree)
end
end
function ethereal.grow_lemon_tree(pos)
add_tree(pos, 2, 0, 2, ethereal.lemontree)
add_tree(pos, ethereal.lemontree)
end
function ethereal.grow_olive_tree(pos)
add_tree(pos, 3, 0, 3, ethereal.olivetree)
add_tree(pos, ethereal.olivetree)
end
-- return True if sapling has enough height room to grow
@ -253,7 +251,7 @@ function ethereal.grow_sapling(pos, node)
-- get node below sapling
local under = minetest.get_node({x = pos.x, y = pos.y - 1, z = pos.z}).name
local def = minetest.registered_nodes[node.name] ; if not def then return end
local height = def.grown_height
local height = def.grown_height or 33
-- do we have enough height to grow sapling into tree?
if not height or not enough_height(pos, height) then return end

View File

@ -5,7 +5,7 @@ local _ = {name = "air", param1 = 255}
ethereal.sakura_tree = {
size = {x=10, y=10, z=7},
size = {x=9, y=10, z=7},
yslice_prob = {
{ypos = 0, prob = 127},
@ -15,82 +15,82 @@ ethereal.sakura_tree = {
data = {
_,_,_,_,_,_,_,_,_,_,
_,_,_,_,_,_,_,_,_,_,
_,_,_,_,_,_,_,_,_,_,
_,_,_,_,_,_,_,_,_,_,
_,_,_,_,_,_,_,_,_,_,
_,_,_,_,P,P,_,_,_,_,
_,_,_,P,P,P,P,_,_,_,
_,_,_,P,P,P,_,_,_,_,
_,_,_,_,_,_,_,_,_,_,
_,_,_,_,_,_,_,_,_,_,
_,_,_,_,_,_,_,_,_,
_,_,_,_,_,_,_,_,_,
_,_,_,_,_,_,_,_,_,
_,_,_,_,_,_,_,_,_,
_,_,_,_,_,_,_,_,_,
_,_,_,_,P,P,_,_,_,
_,_,_,P,P,P,P,_,_,
_,_,_,P,P,P,_,_,_,
_,_,_,_,_,_,_,_,_,
_,_,_,_,_,_,_,_,_,
_,_,_,_,_,_,_,_,_,_,
_,_,_,_,_,_,_,_,_,_,
_,_,_,_,_,_,_,_,_,_,
_,_,_,_,_,_,_,_,_,_,
_,_,_,P,P,P,P,_,_,_,
_,_,_,P,P,P,P,_,_,_,
_,_,P,P,T,P,P,P,_,_,
_,_,P,P,P,P,P,P,_,_,
_,_,P,_,P,P,P,P,_,_,
_,_,_,_,_,_,_,_,_,_,
_,_,_,_,_,_,_,_,_,
_,_,_,_,_,_,_,_,_,
_,_,_,_,_,_,_,_,_,
_,_,_,_,_,_,_,_,_,
_,_,_,P,P,P,P,_,_,
_,_,_,P,P,P,P,_,_,
_,_,P,P,T,P,P,P,_,
_,_,P,P,P,P,P,P,_,
_,_,P,_,P,P,P,P,_,
_,_,_,_,_,_,_,_,_,
_,_,_,_,_,_,_,_,_,_,
_,_,_,_,_,_,_,_,_,_,
_,_,_,_,_,_,_,_,_,_,
_,_,_,P,P,P,_,_,_,_,
_,_,P,P,P,P,P,P,_,_,
_,_,P,P,T,P,P,P,P,_,
_,P,P,P,P,P,P,P,P,P,
_,P,P,P,P,P,P,P,P,P,
_,P,P,P,P,P,P,P,P,_,
_,_,P,P,P,P,P,P,_,_,
_,_,_,_,_,_,_,_,_,
_,_,_,_,_,_,_,_,_,
_,_,_,_,_,_,_,_,_,
_,_,_,P,P,P,_,_,_,
_,_,P,P,P,P,P,P,_,
_,_,P,P,T,P,P,P,P,
_,P,P,P,P,P,P,P,P,
_,P,P,P,P,P,P,P,P,
_,P,P,P,P,P,P,P,P,
_,_,P,P,P,P,P,P,_,
_,_,_,_,T,_,_,_,_,_,
_,_,_,_,T,_,_,_,_,_,
_,_,_,_,T,_,_,_,_,_,
_,_,P,P,T,T,P,_,_,_,
_,P,P,T,T,T,T,P,P,_,
_,P,P,T,_,T,P,T,P,_,
P,P,P,T,P,T,P,P,T,P,
P,P,T,P,P,P,P,P,T,P,
P,P,T,P,P,P,P,T,P,P,
_,P,P,P,P,P,P,P,P,_,
_,_,_,_,T,_,_,_,_,
_,_,_,_,T,_,_,_,_,
_,_,_,_,T,_,_,_,_,
_,_,P,P,T,T,P,_,_,
_,P,P,T,T,T,T,P,P,
_,P,P,T,_,T,P,T,P,
P,P,P,T,P,T,P,T,P,
P,P,T,P,P,P,P,T,P,
P,P,T,P,P,P,P,T,P,
_,P,P,P,P,P,P,P,P,
_,_,_,_,_,_,_,_,_,_,
_,_,_,_,_,_,_,_,_,_,
_,_,_,_,_,_,_,_,_,_,
_,_,_,P,_,P,_,_,_,_,
_,_,P,P,T,P,P,P,_,_,
_,_,P,P,_,P,P,P,P,_,
_,P,P,P,P,P,P,P,P,P,
_,P,P,P,P,P,P,P,P,P,
_,P,P,P,P,P,P,P,P,_,
_,_,P,P,P,P,P,P,_,_,
_,_,_,_,_,_,_,_,_,
_,_,_,_,_,_,_,_,_,
_,_,_,_,_,_,_,_,_,
_,_,_,P,_,P,_,_,_,
_,_,P,P,T,P,P,P,_,
_,_,P,P,_,P,P,P,P,
_,P,P,P,P,P,P,P,P,
_,P,P,P,P,P,P,P,P,
_,P,P,P,P,P,P,P,P,
_,_,P,P,P,P,P,P,_,
_,_,_,_,_,_,_,_,_,_,
_,_,_,_,_,_,_,_,_,_,
_,_,_,_,_,_,_,_,_,_,
_,_,_,_,P,_,_,_,_,_,
_,_,_,P,P,P,_,_,_,_,
_,_,_,P,T,P,_,_,_,_,
_,_,P,P,T,P,P,P,P,_,
_,_,P,P,P,P,P,P,P,_,
_,_,P,P,P,P,_,P,P,_,
_,_,_,_,P,_,_,_,_,_,
_,_,_,_,_,_,_,_,_,
_,_,_,_,_,_,_,_,_,
_,_,_,_,_,_,_,_,_,
_,_,_,_,P,_,_,_,_,
_,_,_,P,P,P,_,_,_,
_,_,_,P,T,P,_,_,_,
_,_,P,P,T,P,P,P,P,
_,_,P,P,P,P,P,P,P,
_,_,P,P,P,P,_,P,P,
_,_,_,_,P,_,_,_,_,
_,_,_,_,_,_,_,_,_,_,
_,_,_,_,_,_,_,_,_,_,
_,_,_,_,_,_,_,_,_,_,
_,_,_,_,_,_,_,_,_,_,
_,_,_,_,P,_,_,_,_,_,
_,_,_,P,P,P,_,_,_,_,
_,_,_,P,P,P,_,_,_,_,
_,_,_,P,P,P,_,_,_,_,
_,_,_,_,P,_,_,_,_,_,
_,_,_,_,_,_,_,_,_,_,
_,_,_,_,_,_,_,_,_,
_,_,_,_,_,_,_,_,_,
_,_,_,_,_,_,_,_,_,
_,_,_,_,_,_,_,_,_,
_,_,_,_,P,_,_,_,_,
_,_,_,P,P,P,_,_,_,
_,_,_,P,P,P,_,_,_,
_,_,_,P,P,P,_,_,_,
_,_,_,_,P,_,_,_,_,
_,_,_,_,_,_,_,_,_,
}
}