-
Notifications
You must be signed in to change notification settings - Fork 12
/
saplings.lua
105 lines (93 loc) · 2.77 KB
/
saplings.lua
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
-- sapling growth
-- these tables only affect hand-placed saplings
-- mapgen-placed always use their biome def settings, which are much more
-- limited, in the interest of speed.
local dirt_surfaces = {
set = true,
[xcompat.materials.dirt] = true,
[xcompat.materials.dirt_with_grass] = true,
["default:dirt_with_dry_grass"] = true,
["default:dirt_with_coniferous_litter"] = true,
["default:dirt_with_rainforest_litter"] = true,
["woodsoils:dirt_with_leaves_1"] = true,
["woodsoils:dirt_with_leaves_2"] = true,
["woodsoils:grass_with_leaves_1"] = true,
["woodsoils:grass_with_leaves_2"] = true
}
local conifer_surfaces = {
set = true,
[xcompat.materials.dirt] = true,
[xcompat.materials.dirt_with_grass] = true,
["default:dirt_with_dry_grass"] = true,
["default:dirt_with_coniferous_litter"] = true,
["default:dirt_with_rainforest_litter"] = true,
["woodsoils:dirt_with_leaves_1"] = true,
["woodsoils:dirt_with_leaves_2"] = true,
["woodsoils:grass_with_leaves_1"] = true,
["woodsoils:grass_with_leaves_2"] = true,
["default:dirt_with_snow"] = true
}
local sand_surfaces = {
set = true,
[xcompat.materials.sand] = true,
[xcompat.materials.desert_sand] = true,
["cottages:loam"] = true,
-- note, no silver sand here.
-- too cold for a palm, too... well... sandy for anything else.
}
function moretrees.can_grow(pos, treename)
local surfaces
if treename == "spruce"
or treename == "fir"
or treename == "cedar"
or treename == "pine" then
surfaces = conifer_surfaces
elseif string.find(treename, "palm") then
surfaces = sand_surfaces
else
surfaces = dirt_surfaces
end
if surfaces[minetest.get_node(vector.new(pos.x, pos.y-1, pos.z)).name] then
return true
else
return false
end
end
--[[ for i in ipairs(moretrees.treelist) do
local treename = moretrees.treelist[i][1]
local tree_model = treename.."_model"
local tree_biome = treename.."_biome"
local surfaces
local grow_function = moretrees[tree_model]
if treename == "spruce"
or treename == "fir"
or treename == "cedar"
or treename == "pine" then
surfaces = conifer_surfaces
elseif string.find(treename, "palm") then
surfaces = sand_surfaces
else
surfaces = dirt_surfaces
end
if treename == "spruce"
or treename == "fir"
or treename == "birch"
or treename == "jungletree" then
grow_function = "moretrees.grow_"..treename
end
biome_lib.dbg(dump(moretrees[tree_biome].surface), 4)
biome_lib:grow_plants({
grow_delay = moretrees.sapling_interval,
grow_chance = moretrees.sapling_chance,
grow_plant = "moretrees:"..treename.."_sapling",
grow_nodes = surfaces,
grow_function = grow_function,
})
biome_lib:grow_plants({
grow_delay = 2,
grow_chance = 1,
grow_plant = "moretrees:"..treename.."_sapling_ongen",
grow_nodes = surfaces,
grow_function = grow_function,
})
end ]]