123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546 |
- -- Code by Mossmanikin, Neuromancer, and others
- -----------------------------------------------------------------------------------------------
- -- TWiGS
- -----------------------------------------------------------------------------------------------
- abstract_trunks.place_twig = function(pos)
- local twig_size = math.random(1,27)
- local right_here = {x=pos.x , y=pos.y+1, z=pos.z }
- local north = {x=pos.x , y=pos.y+1, z=pos.z+1}
- local north_east = {x=pos.x+1, y=pos.y+1, z=pos.z+1}
- local east = {x=pos.x+1, y=pos.y+1, z=pos.z }
- local south_east = {x=pos.x+1, y=pos.y+1, z=pos.z-1}
- local south = {x=pos.x , y=pos.y+1, z=pos.z-1}
- local south_west = {x=pos.x-1, y=pos.y+1, z=pos.z-1}
- local west = {x=pos.x-1, y=pos.y+1, z=pos.z }
- local north_west = {x=pos.x-1, y=pos.y+1, z=pos.z+1}
- local node_here = minetest.get_node(right_here)
- local node_north = minetest.get_node(north)
- local node_n_e = minetest.get_node(north_east)
- local node_east = minetest.get_node(east)
- local node_s_e = minetest.get_node(south_east)
- local node_south = minetest.get_node(south)
- local node_s_w = minetest.get_node(south_west)
- local node_west = minetest.get_node(west)
- local node_n_w = minetest.get_node(north_west)
- -- small twigs
- if twig_size <= 16 then
- minetest.swap_node(right_here, {name="trunks:twig_"..math.random(1,4), param2=math.random(0,3)})
- end
- -- big twigs
- if Big_Twigs == true then
- -- big twig 1
- if twig_size == 17 then
- if not (minetest.registered_nodes[minetest.get_node({x=pos.x+1,y=pos.y,z=pos.z+1}).name].buildable_to
- or minetest.registered_nodes[minetest.get_node({x=pos.x+1,y=pos.y,z=pos.z}).name].buildable_to) then
- if minetest.registered_nodes[node_here.name].buildable_to then
- minetest.swap_node(right_here, {name="trunks:twig_5"})
- end
- if minetest.registered_nodes[node_n_e.name].buildable_to then
- minetest.swap_node(north_east, {name="trunks:twig_7"})
- end
- if minetest.registered_nodes[node_east.name].buildable_to then
- minetest.swap_node(east, {name="trunks:twig_8"})
- end
- end
- elseif twig_size == 18 then
- if not (minetest.registered_nodes[minetest.get_node({x=pos.x+1,y=pos.y,z=pos.z-1}).name].buildable_to
- or minetest.registered_nodes[minetest.get_node({x=pos.x,y=pos.y,z=pos.z-1}).name].buildable_to) then
- if minetest.registered_nodes[node_here.name].buildable_to then
- minetest.swap_node(right_here, {name="trunks:twig_5", param2=1})
- end
- if minetest.registered_nodes[node_s_e.name].buildable_to then
- minetest.swap_node(south_east, {name="trunks:twig_7", param2=1})
- end
- if minetest.registered_nodes[node_south.name].buildable_to then
- minetest.swap_node(south, {name="trunks:twig_8", param2=1})
- end
- end
- elseif twig_size == 19 then
- if not (minetest.registered_nodes[minetest.get_node({x=pos.x+1,y=pos.y,z=pos.z-1}).name].buildable_to
- or minetest.registered_nodes[minetest.get_node({x=pos.x-1,y=pos.y,z=pos.z}).name].buildable_to) then
- if minetest.registered_nodes[node_here.name].buildable_to then
- minetest.swap_node(right_here, {name="trunks:twig_5", param2=2})
- end
- if minetest.registered_nodes[node_s_w.name].buildable_to then
- minetest.swap_node(south_west, {name="trunks:twig_7", param2=2})
- end
- if minetest.registered_nodes[node_west.name].buildable_to then
- minetest.swap_node(west, {name="trunks:twig_8", param2=2})
- end
- end
- elseif twig_size == 20 then
- if not (minetest.registered_nodes[minetest.get_node({x=pos.x-1,y=pos.y,z=pos.z+1}).name].buildable_to
- or minetest.registered_nodes[minetest.get_node({x=pos.x,y=pos.y,z=pos.z+1}).name].buildable_to) then
- if minetest.registered_nodes[node_here.name].buildable_to then
- minetest.swap_node(right_here, {name="trunks:twig_5", param2=3})
- end
- if minetest.registered_nodes[node_n_w.name].buildable_to then
- minetest.swap_node(north_west, {name="trunks:twig_7", param2=3})
- end
- if minetest.registered_nodes[node_north.name].buildable_to then
- minetest.swap_node(north, {name="trunks:twig_8", param2=3})
- end
- end
- -- big twig 2
- elseif twig_size == 21 then
- if not (minetest.registered_nodes[minetest.get_node({x=pos.x,y=pos.y,z=pos.z+1}).name].buildable_to
- or minetest.registered_nodes[minetest.get_node({x=pos.x+1,y=pos.y,z=pos.z+1}).name].buildable_to) then
- if minetest.registered_nodes[node_here.name].buildable_to then
- minetest.swap_node(right_here, {name="trunks:twig_9"})
- end
- if minetest.registered_nodes[node_north.name].buildable_to then
- minetest.swap_node(north, {name="trunks:twig_10"})
- end
- if minetest.registered_nodes[node_n_e.name].buildable_to then
- minetest.swap_node(north_east, {name="trunks:twig_11"})
- end
- end
- elseif twig_size == 22 then
- if not (minetest.registered_nodes[minetest.get_node({x=pos.x+1,y=pos.y,z=pos.z}).name].buildable_to
- or minetest.registered_nodes[minetest.get_node({x=pos.x+1,y=pos.y,z=pos.z-1}).name].buildable_to) then
- if minetest.registered_nodes[node_here.name].buildable_to then
- minetest.swap_node(right_here, {name="trunks:twig_9", param2=1})
- end
- if minetest.registered_nodes[node_east.name].buildable_to then
- minetest.swap_node(east, {name="trunks:twig_10", param2=1})
- end
- if minetest.registered_nodes[node_s_e.name].buildable_to then
- minetest.swap_node(south_east, {name="trunks:twig_11", param2=1})
- end
- end
- elseif twig_size == 23 then
- if not (minetest.registered_nodes[minetest.get_node({x=pos.x,y=pos.y,z=pos.z-1}).name].buildable_to
- or minetest.registered_nodes[minetest.get_node({x=pos.x-1,y=pos.y,z=pos.z-1}).name].buildable_to) then
- if minetest.registered_nodes[node_here.name].buildable_to then
- minetest.swap_node(right_here, {name="trunks:twig_9", param2=2})
- end
- if minetest.registered_nodes[node_south.name].buildable_to then
- minetest.swap_node(south, {name="trunks:twig_10", param2=2})
- end
- if minetest.registered_nodes[node_s_w.name].buildable_to then
- minetest.swap_node(south_west, {name="trunks:twig_11", param2=2})
- end
- end
- elseif twig_size == 24 then
- if not (minetest.registered_nodes[minetest.get_node({x=pos.x-1,y=pos.y,z=pos.z}).name].buildable_to
- or minetest.registered_nodes[minetest.get_node({x=pos.x-1,y=pos.y,z=pos.z+1}).name].buildable_to) then
- if minetest.registered_nodes[node_here.name].buildable_to then
- minetest.swap_node(right_here, {name="trunks:twig_9", param2=3})
- end
- if minetest.registered_nodes[node_west.name].buildable_to then
- minetest.swap_node(west, {name="trunks:twig_10", param2=3})
- end
- if minetest.registered_nodes[node_n_w.name].buildable_to then
- minetest.swap_node(north_west, {name="trunks:twig_11", param2=3})
- end
- end
- elseif twig_size <= 25 then
- minetest.swap_node(right_here, {name="trunks:twig_"..math.random(12,13), param2=math.random(0,3)})
- end
- end
- end
- if Twigs_on_ground == true then
- biome_lib:register_generate_plant({
- surface = {"default:dirt_with_grass"},
- max_count = Twigs_on_ground_Max_Count,
- rarity = Twigs_on_ground_Rarity,
- min_elevation = 1,
- max_elevation = 40,
- near_nodes = {"group:tree","ferns:fern_03","ferns:fern_02","ferns:fern_01"},
- near_nodes_size = 3,
- near_nodes_vertical = 1,
- near_nodes_count = 1,
- plantlife_limit = -0.9,
- },
- abstract_trunks.place_twig
- )
- end
- if Twigs_on_water == true then
- biome_lib:register_generate_plant({
- surface = {"default:water_source"},
- max_count = Twigs_on_water_Max_Count,
- rarity = Twigs_on_water_Rarity,
- min_elevation = 1,
- max_elevation = 40,
- near_nodes = {"group:tree"},
- near_nodes_size = 3,
- near_nodes_vertical = 1,
- near_nodes_count = 1,
- plantlife_limit = -0.9,
- },
- abstract_trunks.place_twig
- )
- end
- -----------------------------------------------------------------------------------------------
- -- TRuNKS
- -----------------------------------------------------------------------------------------------
- local TRuNKS = {
- -- MoD TRuNK NR
- {"default", "tree", 1},
- {"default", "jungletree", 2},
- {"default", "pine_tree", 12},
- {"trees", "tree_conifer", 3},
- {"trees", "tree_mangrove", 4},
- {"trees", "tree_palm", 5},
- {"moretrees", "apple_tree_trunk", 6},
- {"moretrees", "beech_trunk", 7},
- {"moretrees", "birch_trunk", 8},
- {"moretrees", "fir_trunk", 9},
- {"moretrees", "oak_trunk", 10},
- {"moretrees", "palm_trunk", 11},
- {"moretrees", "rubber_tree_trunk", 13},
- {"moretrees", "rubber_tree_trunk_empty", 14},
- {"moretrees", "sequoia_trunk", 15},
- {"moretrees", "spruce_trunk", 16},
- {"moretrees", "willow_trunk", 17},
- }
- if Horizontal_Trunks == true then -- see settings.txt
- for i in pairs(TRuNKS) do
- local MoD = TRuNKS[i][1]
- local TRuNK = TRuNKS[i][2]
- local NR = TRuNKS[i][3]
- local trunkname = MoD..":"..TRuNK
- if minetest.get_modpath(MoD) ~= nil
- and NR < 6 -- moretrees trunks allready have facedir
- and minetest.registered_nodes[trunkname] then -- the node being called exists.
- temptrunk = table.copy(minetest.registered_nodes[trunkname])
- temptrunk.paramtype2 = "facedir"
- minetest.register_node(":"..trunkname, temptrunk)
- end
- end
- end
- abstract_trunks.place_trunk = function(pos)
- local right_here = {x=pos.x, y=pos.y+1, z=pos.z}
- local north = {x=pos.x, y=pos.y+1, z=pos.z+1}
- local north2 = {x=pos.x, y=pos.y+1, z=pos.z+2}
- local south = {x=pos.x, y=pos.y+1, z=pos.z-1}
- local south2 = {x=pos.x, y=pos.y+1, z=pos.z-2}
- local west = {x=pos.x-1, y=pos.y+1, z=pos.z}
- local west2 = {x=pos.x-2, y=pos.y+1, z=pos.z}
- local east = {x=pos.x+1, y=pos.y+1, z=pos.z}
- local east2 = {x=pos.x+2, y=pos.y+1, z=pos.z}
- local node_here = minetest.get_node(right_here)
- local node_north = minetest.get_node(north)
- local node_north2 = minetest.get_node(north2)
- local node_south = minetest.get_node(south)
- local node_south2 = minetest.get_node(south2)
- local node_west = minetest.get_node(west)
- local node_west2 = minetest.get_node(west2)
- local node_east = minetest.get_node(east)
- local node_east2 = minetest.get_node(east2)
- if minetest.registered_nodes[node_here.name].buildable_to then -- instead of check_air = true,
- for i in pairs(TRuNKS) do
- local MoD = TRuNKS[i][1]
- local TRuNK = TRuNKS[i][2]
- local NR = TRuNKS[i][3]
- local chance = math.random(1, 17)
- local length = math.random(3,5)
- if chance == NR then
- local trunk_type = math.random(1,3)
- if trunk_type == 1 then
- if minetest.get_modpath(MoD) ~= nil then
- minetest.swap_node(right_here, {name=MoD..":"..TRuNK})
- else
- minetest.swap_node(right_here, {name="default:tree"})
- end
- elseif trunk_type == 2 and Horizontal_Trunks == true then
- if minetest.get_modpath(MoD) ~= nil then
- if minetest.registered_nodes[node_north.name].buildable_to then
- minetest.swap_node(north, {name=MoD..":"..TRuNK, param2=4})
- end
- if length >= 4 and minetest.registered_nodes[node_north2.name].buildable_to then
- minetest.swap_node(north2, {name=MoD..":"..TRuNK, param2=4})
- end
- minetest.swap_node(right_here, {name=MoD..":"..TRuNK, param2=4})
- if minetest.registered_nodes[node_south.name].buildable_to then
- minetest.swap_node(south, {name=MoD..":"..TRuNK, param2=4})
- end
- if length == 5 and minetest.registered_nodes[node_south2.name].buildable_to then
- minetest.swap_node(south2, {name=MoD..":"..TRuNK, param2=4})
- end
- else
- if minetest.registered_nodes[node_north.name].buildable_to then
- minetest.swap_node(north, {name="default:tree", param2=4})
- end
- if length >= 4 and minetest.registered_nodes[node_north2.name].buildable_to then
- minetest.swap_node(north2, {name="default:tree", param2=4})
- end
- minetest.swap_node(right_here, {name="default:tree", param2=4})
- if minetest.registered_nodes[node_south.name].buildable_to then
- minetest.swap_node(south, {name="default:tree", param2=4})
- end
- if length == 5 and minetest.registered_nodes[node_south2.name].buildable_to then
- minetest.swap_node(south2, {name="default:tree", param2=4})
- end
- end
- elseif trunk_type == 3 and Horizontal_Trunks == true then
- if minetest.get_modpath(MoD) ~= nil then
- if minetest.registered_nodes[node_west.name].buildable_to then
- minetest.swap_node(west, {name=MoD..":"..TRuNK, param2=12})
- end
- if length >= 4 and minetest.registered_nodes[node_west2.name].buildable_to then
- minetest.swap_node(west2, {name=MoD..":"..TRuNK, param2=12})
- end
- minetest.swap_node(right_here, {name=MoD..":"..TRuNK, param2=12})
- if minetest.registered_nodes[node_east.name].buildable_to then
- minetest.swap_node(east, {name=MoD..":"..TRuNK, param2=12})
- end
- if length == 5 and minetest.registered_nodes[node_east2.name].buildable_to then
- minetest.swap_node(east2, {name=MoD..":"..TRuNK, param2=12})
- end
- else
- if minetest.registered_nodes[node_west.name].buildable_to then
- minetest.swap_node(west, {name="default:tree", param2=12})
- end
- if length >= 4 and minetest.registered_nodes[node_west2.name].buildable_to then
- minetest.swap_node(west2, {name="default:tree", param2=12})
- end
- minetest.swap_node(right_here, {name="default:tree", param2=12})
- if minetest.registered_nodes[node_east.name].buildable_to then
- minetest.swap_node(east, {name="default:tree", param2=12})
- end
- if length == 5 and minetest.registered_nodes[node_east2.name].buildable_to then
- minetest.swap_node(east2, {name="default:tree", param2=12})
- end
- end
- end
- end
- end
- end
- end
- biome_lib:register_generate_plant({
- surface = {"default:dirt_with_grass"},
- max_count = Trunks_Max_Count, -- 320,
- rarity = Trunks_Rarity, -- 99,
- min_elevation = 1,
- max_elevation = 40,
- avoid_nodes = {"group:tree"},
- avoid_radius = 1,
- near_nodes = {"group:tree","ferns:fern_03","ferns:fern_02","ferns:fern_01"},
- near_nodes_size = 3,
- near_nodes_vertical = 1,
- near_nodes_count = 1,
- plantlife_limit = -0.9,
- },
- abstract_trunks.place_trunk
- )
- -----------------------------------------------------------------------------------------------
- -- MoSS & FuNGuS -- on ground
- -----------------------------------------------------------------------------------------------
- if Moss_on_ground == true then
- abstract_trunks.grow_moss_on_ground = function(pos)
- local on_ground = {x=pos.x, y=pos.y+1, z=pos.z}
- local moss_type = math.random(1,21)
- if moss_type == 1 then
- minetest.swap_node(on_ground, {name="trunks:moss_fungus", param2=math.random(0,3)})
- else
- minetest.swap_node(on_ground, {name="trunks:moss", param2=math.random(0,3)})
- end
- end
- biome_lib:register_generate_plant({
- surface = {"default:dirt_with_grass"},
- max_count = Moss_on_ground_Max_Count,
- rarity = Moss_on_ground_Rarity,
- min_elevation = 1,
- max_elevation = 40,
- near_nodes = {
- "group:tree",
- "ferns:fern_03",
- "ferns:fern_02",
- "ferns:fern_01"
- },
- near_nodes_size = 2,
- near_nodes_vertical = 1,
- near_nodes_count = 1,
- plantlife_limit = -0.9,
- },
- abstract_trunks.grow_moss_on_ground
- )
- end
- -----------------------------------------------------------------------------------------------
- -- MoSS & FuNGuS -- on trunks
- -----------------------------------------------------------------------------------------------
- if Moss_on_trunk == true then
- abstract_trunks.grow_moss_on_trunk = function(pos)
- local on_ground = {x=pos.x, y=pos.y+1, z=pos.z}
- local at_side_n = {x=pos.x, y=pos.y, z=pos.z+1}
- local at_side_e = {x=pos.x+1, y=pos.y, z=pos.z}
- local at_side_s = {x=pos.x, y=pos.y, z=pos.z-1}
- local at_side_w = {x=pos.x-1, y=pos.y, z=pos.z}
- local undrneath = {x=pos.x, y=pos.y-1, z=pos.z}
- local node_here = minetest.get_node(on_ground)
- local node_north = minetest.get_node(at_side_n)
- local node_east = minetest.get_node(at_side_e)
- local node_south = minetest.get_node(at_side_s)
- local node_west = minetest.get_node(at_side_w)
- local node_under = minetest.get_node(undrneath)
- --if minetest.get_item_group(node_under.name, "tree") < 1 then
- local moss_type = math.random(1,41)
- if minetest.registered_nodes[node_here.name].buildable_to then -- instead of check_air = true,
- if moss_type == 1 then
- minetest.swap_node(on_ground, {name="trunks:moss_fungus", param2=math.random(0,3) --[[1]]})
- elseif moss_type < 22 then
- minetest.swap_node(on_ground, {name="trunks:moss", param2=math.random(0,3) --[[1]]})
- end
- end
- local moss_type = math.random(1,31) -- cliche of more moss at north
- if minetest.registered_nodes[node_north.name].buildable_to then -- instead of check_air = true,
- if moss_type == 1 then
- minetest.swap_node(at_side_n, {name="trunks:moss_fungus", param2=math.random(4,7)}) -- 5,4,6,7
- elseif moss_type < 22 then
- minetest.swap_node(at_side_n, {name="trunks:moss", param2=math.random(4,7)})
- end
- end
- local moss_type = math.random(1,41)
- if minetest.registered_nodes[node_east.name].buildable_to then -- instead of check_air = true,
- if moss_type == 1 then
- minetest.swap_node(at_side_e, {name="trunks:moss_fungus", param2=math.random(12,15)})
- elseif moss_type < 22 then
- minetest.swap_node(at_side_e, {name="trunks:moss", param2=math.random(12,15)})
- end
- end
- local moss_type = math.random(1,41)
- if minetest.registered_nodes[node_south.name].buildable_to then -- instead of check_air = true,
- if moss_type == 1 then
- minetest.swap_node(at_side_s, {name="trunks:moss_fungus", param2=math.random(8,11)})
- elseif moss_type < 22 then
- minetest.swap_node(at_side_s, {name="trunks:moss", param2=math.random(8,11)})
- end
- end
- local moss_type = math.random(1,41)
- if minetest.registered_nodes[node_west.name].buildable_to then -- instead of check_air = true,
- if moss_type == 1 then
- minetest.swap_node(at_side_w, {name="trunks:moss_fungus", param2=math.random(16,19)})
- elseif moss_type < 22 then
- minetest.swap_node(at_side_w, {name="trunks:moss", param2=math.random(16,19)})
- end
- end
- --end
- end
- biome_lib:register_generate_plant({
- surface = {
- "default:tree",
- "default:jungletree",
- "default:pine_tree",
- "trees:tree_conifer",
- "trees:tree_mangrove",
- --"trees:tree_palm",
- "moretrees:apple_tree_trunk",
- "moretrees:beech_trunk",
- "moretrees:birch_trunk",
- "moretrees:fir_trunk",
- "moretrees:oak_trunk",
- --"moretrees:palm_trunk",
- "moretrees:rubber_tree_trunk",
- "moretrees:rubber_tree_trunk_empty",
- "moretrees:sequoia_trunk",
- "moretrees:spruce_trunk",
- "moretrees:willow_trunk",
- "default:mossycobble"
- },
- max_count = Moss_on_trunk_Max_Count,
- rarity = Moss_on_trunk_Rarity,
- min_elevation = 1,
- max_elevation = 40,
- plantlife_limit = -0.9,
- check_air = false,
- },
- "abstract_trunks.grow_moss_on_trunk"
- )
- end
- -----------------------------------------------------------------------------------------------
- -- RooTS
- -----------------------------------------------------------------------------------------------
- if Roots == true then -- see settings.txt
- abstract_trunks.grow_roots = function(pos)
- local twig_size = math.random(1,27)
- local right_here = {x=pos.x , y=pos.y , z=pos.z }
- local below = {x=pos.x , y=pos.y-1, z=pos.z }
- local north = {x=pos.x , y=pos.y , z=pos.z+1}
- local east = {x=pos.x+1, y=pos.y , z=pos.z }
- local south = {x=pos.x , y=pos.y , z=pos.z-1}
- local west = {x=pos.x-1, y=pos.y , z=pos.z }
- local node_here = minetest.get_node(right_here)
- local node_below = minetest.get_node(below)
- local node_north = minetest.get_node(north)
- local node_east = minetest.get_node(east)
- local node_south = minetest.get_node(south)
- local node_west = minetest.get_node(west)
- for i in pairs(TRuNKS) do
- local MoD = TRuNKS[i][1]
- local TRuNK = TRuNKS[i][2]
- if minetest.get_modpath(MoD) ~= nil
- and node_here.name == MoD..":"..TRuNK
- and string.find(node_below.name, "dirt")
- and node_here.param2 == 0 then
- if minetest.registered_nodes[node_north.name].buildable_to then
- minetest.swap_node(north, {name="trunks:"..TRuNK.."root", param2=2})
- end
- if minetest.registered_nodes[node_east.name].buildable_to then
- minetest.swap_node(east, {name="trunks:"..TRuNK.."root", param2=3})
- end
- if minetest.registered_nodes[node_south.name].buildable_to then
- minetest.swap_node(south, {name="trunks:"..TRuNK.."root", param2=0})
- end
- if minetest.registered_nodes[node_west.name].buildable_to then
- minetest.swap_node(west, {name="trunks:"..TRuNK.."root", param2=1})
- end
- end
- end
- end
- biome_lib:register_generate_plant({
- surface = {"group:tree"},
- max_count = 1000,
- rarity = 1,
- min_elevation = 1,
- max_elevation = 40,
- near_nodes = {"default:dirt_with_grass"},
- near_nodes_size = 1,
- near_nodes_vertical = 1,
- near_nodes_count = 1,
- plantlife_limit = -1,
- check_air = false,
- },
- "abstract_trunks.grow_roots"
- )
- end
|