diff --git a/default_settings.txt b/default_settings.txt index 6aa64b5..3b7ce86 100644 --- a/default_settings.txt +++ b/default_settings.txt @@ -122,8 +122,8 @@ moretrees.dates_item_drop_ichance = 10 -- inverse probability of ripe dates dr -- Sapling settings -moretrees.sapling_interval = 500 -moretrees.sapling_chance = 20 +moretrees.sapling_interval = 100 +moretrees.sapling_chance = 5 -- If this variable is set to true, drop leaves out as entities during leaf -- decay, rather than just disappearing them. diff --git a/node_defs.lua b/node_defs.lua index 1b1b566..152c5b8 100644 --- a/node_defs.lua +++ b/node_defs.lua @@ -212,7 +212,7 @@ for i in ipairs(moretrees.treelist) do end minetest.register_node("moretrees:"..treename.."_sapling_ongen", { - description = S(treedesc.." Sapling (on-generated)"), + description = S(treedesc.." Sapling (fast growth)"), drawtype = "plantlike", tiles = {saptex}, inventory_image = saptex, @@ -224,7 +224,7 @@ for i in ipairs(moretrees.treelist) do type = "fixed", fixed = {-0.3, -0.5, -0.3, 0.3, 0.35, 0.3} }, - groups = {snappy=2,dig_immediate=3,flammable=2,attached_node=1,not_in_creative_inventory=1,sapling=1}, + groups = {snappy=2,dig_immediate=3,flammable=2,attached_node=1,sapling=1}, sounds = default.node_sound_defaults(), drop = "moretrees:"..treename.."_sapling" }) diff --git a/saplings.lua b/saplings.lua index bd20988..7239275 100644 --- a/saplings.lua +++ b/saplings.lua @@ -1,98 +1,84 @@ -- 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, + ["default:dirt"] = true, + ["default: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, + ["default:dirt"] = true, + ["default: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, + ["default:sand"] = true, + ["default:desert_sand"] = true, + ["cottages:loam"] = true, + -- note, no silver sand here. + -- too cold for a palm, too... well... sandy for anything else. +} 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 ~= "birch" and treename ~= "spruce" and treename ~= "fir" and treename ~= "jungletree" then - - biome_lib:dbg(dump(moretrees[tree_biome].surface)) - biome_lib:grow_plants({ - grow_delay = moretrees.sapling_interval, - grow_chance = moretrees.sapling_chance, - grow_plant = "moretrees:"..treename.."_sapling", - grow_nodes = moretrees[tree_biome].surface, - grow_function = moretrees[tree_model], - }) - - if moretrees.spawn_saplings then - biome_lib:grow_plants({ - grow_delay = 2, - grow_chance = 30, - grow_plant = "moretrees:"..treename.."_sapling_ongen", - grow_nodes = moretrees[tree_biome].surface, - grow_function = moretrees[tree_model], - }) - end - + 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 -end -biome_lib:grow_plants({ - grow_delay = moretrees.sapling_interval, - grow_chance = moretrees.sapling_chance, - grow_plant = "moretrees:birch_sapling", - grow_nodes = moretrees.birch_biome.surface, - grow_function = "moretrees.grow_birch" -}) + 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)) -biome_lib:grow_plants({ - grow_delay = moretrees.sapling_interval, - grow_chance = moretrees.sapling_chance, - grow_plant = "moretrees:spruce_sapling", - grow_nodes = moretrees.spruce_biome.surface, - grow_function = "moretrees.grow_spruce" -}) - -biome_lib:grow_plants({ - grow_delay = moretrees.sapling_interval, - grow_chance = moretrees.sapling_chance, - grow_plant = "moretrees:fir_sapling", - grow_nodes = moretrees.fir_biome.surface, - grow_function = "moretrees.grow_fir" -}) - -biome_lib:grow_plants({ - grow_delay = moretrees.sapling_interval, - grow_chance = moretrees.sapling_chance, - grow_plant = "default:junglesapling", - grow_nodes = moretrees.jungletree_biome.surface, - grow_function = "moretrees.grow_jungletree" -}) - -if moretrees.spawn_saplings then biome_lib:grow_plants({ - grow_delay = 2, - grow_chance = 30, - grow_plant = "moretrees:jungletree_sapling_ongen", - grow_nodes = moretrees.jungletree_biome.surface, - grow_function = "moretrees.grow_jungletree" + 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 = 30, - grow_plant = "moretrees:fir_sapling_ongen", - grow_nodes = moretrees.fir_biome.surface, - grow_function = "moretrees.grow_fir" - }) - - - biome_lib:grow_plants({ - grow_delay = 2, - grow_chance = 30, - grow_plant = "moretrees:spruce_sapling_ongen", - grow_nodes = moretrees.spruce_biome.surface, - grow_function = "moretrees.grow_spruce" - }) - - biome_lib:grow_plants({ - grow_delay = 2, - grow_chance = 30, - grow_plant = "moretrees:birch_sapling_ongen", - grow_nodes = moretrees.birch_biome.surface, - grow_function = "moretrees.grow_birch" + grow_chance = 1, + grow_plant = "moretrees:"..treename.."_sapling_ongen", + grow_nodes = surfaces, + grow_function = grow_function, }) end