-- Biomes definition minetest.register_biome({ name = "deciduous_cold", node_top = "default:dirt_with_grass", depth_top = 1, node_filler = "default:dirt", node_riverbed = "default:sand", depth_riverbed = 2, node_dungeon = "default:cobble", node_dungeon_alt = "default:mossycobble", node_dungeon_stair = "default:stair_cobble", y_min = 3, y_max = 200, heat_point = 55, humidity_point = 69, }) minetest.register_biome({ name = "deciduous_cold_humid", node_top = "default:dirt_with_grass", depth_top = 1, node_filler = "default:dirt", node_riverbed = "default:sand", depth_riverbed = 2, node_dungeon = "default:cobble", node_dungeon_alt = "default:mossycobble", node_dungeon_stair = "default:stair_cobble", y_min = 3, y_max = 200, heat_point = 55, humidity_point = 111, }) -- fonctions et variables de bruits local densities = { { offset = 0.000001, scale = 0.00001, }, { offset = 0.00001, scale = 0.0001, }, { offset = 0.0001, scale = 0.001, }, { offset = 0.001, scale = 0.01, }, } local function noise_param(seed, spread, density, octaves, persist) return { offset = density.offset or 0.001, scale = density.scale or 0.01, spread = {x = spread or 100, y = spread or 100, z = spread or 100}, seed = seed or math.random(1,999), octaves = octaves or 1, persist = persist or 0.5, } end -- Décorations -- -- Génération des arbres de moretrees en fonction des biomes et non plus par biome_lib. -- Pour que cette génération soit active, il faut désactiver la génération de moretrees -- en mettant à false les arbres souhaités dans le fichier default_settings.txt du mod -- moretrees. if not moretrees.enable_apple_tree then minetest.register_decoration({ name = "moretrees:apple_tree", deco_type = "simple", place_on = {"default:dirt_with_grass", "default:dirt_with_coniferous_litter"}, sidelen = 16, noise_params = noise_param(750, 200, densities[2]), biomes = {"mixed_mushroom_deciduous", "deciduous_forest", "coniferous_forest", "mixed_mushroom_cold", "grassland", "deciduous_cold", "deciduous_cold_humid"}, y_min = 0, y_max = 31000, decoration = "moretrees:apple_tree_sapling_ongen", }) end if not moretrees.enable_oak then minetest.register_decoration({ name = "moretrees:oak", deco_type = "simple", place_on = {"default:dirt_with_grass", "default:dirt_with_coniferous_litter", "nalc_mediterranean:dirt_with_mediterranean_grass"}, sidelen = 16, noise_params = noise_param(751, 200, densities[2]), biomes = {"grassland", "deciduous_forest", "mixed_mushroom_deciduous", "mixed_mushroom_cold", "coniferous_forest", "mediterranean"}, y_min = 0, y_max = 31000, decoration = "moretrees:oak_sapling_ongen", }) end if not moretrees.enable_sequoia then minetest.register_decoration({ name = "moretrees:sequoia", deco_type = "simple", place_on = {"default:dirt_with_grass", "default:dirt_with_coniferous_litter", "default:dirt_with_snow"}, sidelen = 16, noise_params = noise_param(752, 150, densities[4], 3), biomes = {"grassland", "pine_forest", "coniferous_forest", "mixed_mushroom_cold", "deciduous_forest", "mixed_mushroom_deciduous", "taiga", "snow_biome_alpine"}, y_min = 100, y_max = 210, decoration = "moretrees:sequoia_sapling_ongen", }) end if not moretrees.enable_palm then minetest.register_decoration({ name = "moretrees:palm", deco_type = "simple", place_on = {"default:dirt", "default:sand", "default:desert_sand", "default:dirt_with_rainforest_litter"}, sidelen = 16, noise_params = { offset = 0.003, scale = 0.01, spread = {x = 30, y = 30, z = 30}, seed = 753, octaves = 3, persist = 0.5, }, biomes = {"desert", "desert_ocean", "rainforest_swamp"}, y_min = -2, y_max = 3, decoration = "moretrees:palm_sapling_ongen", }) end if not moretrees.enable_date_palm then minetest.register_decoration({ name = "moretrees:date_palm", deco_type = "simple", place_on = {"default:sand", "default:desert_sand", "default:dry_dirt_with_dry_grass"}, sidelen = 16, noise_params = { offset = -0.003, scale = 0.01, spread = {x = 30, y = 30, z = 30}, seed = 753, octaves = 3, persist = 0.5, }, biomes = {"desert", "desert_ocean", "sandstone_desert", "sandstone_desert_ocean", "savanna_shore", "mediterranean_shore"}, y_min = 0, y_max = 3, decoration = "moretrees:date_palm_sapling_ongen", }) end if not moretrees.enable_cedar then minetest.register_decoration({ name = "moretrees:cedar_rare_alt50", deco_type = "simple", place_on = {"default:dirt_with_coniferous_litter"}, sidelen = 16, noise_params = { offset = 0.00015, scale = 0.0015, spread = {x = 130, y = 130, z = 130}, seed = 754, octaves = 1, persist = 0.6, }, biomes = {"coniferous_forest", "mixed_mushroom_cold"}, y_min = 50, y_max = 31000, decoration = "moretrees:cedar_sapling_ongen", }) minetest.register_decoration({ name = "moretrees:cedar_rare_alt100", deco_type = "simple", place_on = {"default:dirt_with_grass", "nalc_mediterranean:dirt_with_mediterranean_grass"}, sidelen = 16, noise_params = { offset = 0.00015, scale = 0.0008, spread = {x = 130, y = 130, z = 130}, seed = 754, octaves = 1, persist = 0.6, }, biomes = {"deciduous_forest", "mixed_mushroom_deciduous", "mediterranean"}, y_min = 100, y_max = 31000, decoration = "moretrees:cedar_sapling_ongen", }) minetest.register_decoration({ name = "moretrees:cedar", deco_type = "simple", place_on = {"default:dirt_with_grass", "default:dirt_with_snow"}, sidelen = 16, noise_params = { offset = 0.00015, scale = 0.0015, spread = {x = 130, y = 130, z = 130}, seed = 754, octaves = 1, persist = 0.6, }, biomes = {"pine_forest"}, y_min = 0, y_max = 31000, decoration = "moretrees:cedar_sapling_ongen", }) end if not moretrees.enable_rubber_tree then minetest.register_decoration({ name = "moretrees:rubber_tree", deco_type = "simple", place_on = {"default:dirt_with_rainforest_litter", "default:dry_dirt_with_dry_grass", "default:dirt", "default:dry_dirt"}, sidelen = 16, noise_params = noise_param(754, 130, densities[2]), biomes = {"rainforest", "rainforest_swamp", "mixed_mushroom_hot", "savanna", "savanna_shore"}, y_min = -1, y_max = 31000, decoration = "moretrees:rubber_tree_sapling_ongen", }) end if not moretrees.enable_willow then minetest.register_decoration({ name = "moretrees:willow_rare", deco_type = "simple", place_on = {"default:dirt_with_grass"}, sidelen = 16, noise_params = noise_param(755, 130, densities[2]), biomes = {"deciduous_forest", "mixed_mushroom_deciduous"}, y_min = 0, y_max = 31000, decoration = "moretrees:willow_sapling_ongen", }) minetest.register_decoration({ name = "moretrees:willow", deco_type = "simple", place_on = {"default:dirt_with_grass"}, sidelen = 16, noise_params = noise_param(755, 100, densities[3]), biomes = {"deciduous_cold", "deciduous_cold_humid"}, y_min = 0, y_max = 31000, decoration = "moretrees:willow_sapling_ongen", }) end if not moretrees.enable_birch then minetest.register_decoration({ name = "moretrees:birch", deco_type = "simple", place_on = {"default:dirt_with_grass", "default:dirt_with_coniferous_litter"}, sidelen = 16, noise_params = noise_param(756, 150, densities[3]), biomes = {"coniferous_forest", "mixed_mushroom_cold", "grassland", "deciduous_forest", "mixed_mushroom_deciduous"}, y_min = 0, y_max = 31000, decoration = "moretrees:birch_sapling_ongen", }) end if not moretrees.enable_spruce then minetest.register_decoration({ name = "moretrees:spruce_rare_alt40-200", deco_type = "simple", place_on = {"default:dirt_with_grass"}, sidelen = 16, noise_params = noise_param(757, 250, densities[2], 2), biomes = {"deciduous_forest", "mixed_mushroom_deciduous"}, y_min = 40, y_max = 200, decoration = "moretrees:spruce_sapling_ongen", }) minetest.register_decoration({ name = "moretrees:spruce", deco_type = "simple", place_on = {"default:dirt_with_snow", "default:dirt_with_grass"}, sidelen = 16, noise_params = noise_param(757, 250, densities[3], 2), biomes = {"coniferous_forest", "mixed_mushroom_cold", "taiga", "snow_biome_forest", "snow_biome_lush", "pine_forest"}, y_min = 0, y_max = 31000, decoration = "moretrees:spruce_sapling_ongen", }) end if not moretrees.enable_fir then minetest.register_decoration({ name = "moretrees:fir_rare_alt40-200", deco_type = "simple", place_on = {"default:dirt_with_grass"}, sidelen = 16, noise_params = noise_param(758, 250, densities[2], 2), biomes = {"deciduous_forest", "mixed_mushroom_deciduous"}, y_min = 40, y_max = 200, decoration = "moretrees:fir_sapling_ongen", }) minetest.register_decoration({ name = "moretrees:fir", deco_type = "simple", place_on = {"default:dirt_with_snow", "default:dirt_with_grass", "default:dirt_with_coniferous_litter"}, sidelen = 16, noise_params = noise_param(758, 250, densities[3], 2), biomes = {"snow_biome_forest", "taiga", "snow_biome_lush", "pine_forest", "coniferous_forest", "mixed_mushroom_cold"}, y_min = 0, y_max = 31000, decoration = "moretrees:fir_sapling_ongen", }) end if not moretrees.enable_poplar then minetest.register_decoration({ name = "moretrees:poplar_small_rare", deco_type = "simple", place_on = {"default:dirt_with_grass"}, sidelen = 16, noise_params = noise_param(759, 250, densities[2], 3), biomes = {"deciduous_forest", "mixed_mushroom_deciduous", "deciduous_cold"}, y_min = 0, y_max = 31000, decoration = "moretrees:poplar_small_sapling_ongen", }) minetest.register_decoration({ name = "moretrees:poplar_small_dense", deco_type = "simple", place_on = {"default:dirt_with_grass"}, sidelen = 16, noise_params = noise_param(759, 100, densities[4], 3), biomes = {"deciduous_cold_humid"}, y_min = 0, y_max = 31000, decoration = "moretrees:poplar_small_sapling_ongen", }) minetest.register_decoration({ name = "moretrees:poplar", deco_type = "simple", place_on = {"default:dirt_with_grass"}, sidelen = 16, noise_params = noise_param(760, 50, densities[3], 2), biomes = {"deciduous_cold", "deciduous_cold_humid"}, y_min = 0, y_max = 31000, decoration = "moretrees:poplar_sapling_ongen", }) end -- /!\ La génération des Jungletrees n'est pas redéfinie ici mais est laissée à moretrees. -- Mettez à true (ou false) dans default_settings.txt de moretrees les jungletrees si vous -- voulez (ou non) que moretrees génère des Jungletrees supplémentaires. -- Grass decorations local function register_grass_decoration(offset, scale, length) minetest.register_decoration({ name = "nalc_moretrees:grass_" .. length, deco_type = "simple", place_on = {"default:dirt_with_grass"}, sidelen = 16, noise_params = { offset = offset, scale = scale, spread = {x = 200, y = 200, z = 200}, seed = 329, octaves = 3, persist = 0.6 }, biomes = {"deciduous_cold", "deciduous_cold_humid"}, y_max = 31000, y_min = 1, decoration = "default:grass_" .. length, }) end register_grass_decoration(-0.03, 0.09, 5) register_grass_decoration(-0.015, 0.075, 4) register_grass_decoration(0, 0.06, 3) register_grass_decoration(0.015, 0.045, 2) register_grass_decoration(0.03, 0.03, 1) -- Redefinir les feuilles avec l'apparence plantlike si configuré dans les paramètres -- (Améliore les performances des clients) if minetest.settings:get_bool("nalc_moretrees.plantlike_leaves") or moretrees.plantlike_leaves then local function o_leaves(name, texture) minetest.override_item(name, { inventory_image = minetest.inventorycube(texture), drawtype = "plantlike", visual_scale = math.sqrt(2) }) end o_leaves("default:blueberry_bush_leaves", "default_blueberry_bush_leaves.png") o_leaves("default:blueberry_bush_leaves_with_berries", "default_blueberry_bush_leaves.png^default_blueberry_overlay.png") o_leaves("default:bush_leaves", "default_leaves.png") o_leaves("default:aspen_leaves", "default_aspen_leaves.png") o_leaves("default:pine_needles", "default_pine_needles.png") o_leaves("default:pine_bush_needles", "default_pine_needles.png") o_leaves("default:acacia_leaves", "default_acacia_leaves.png") o_leaves("default:acacia_bush_leaves", "default_acacia_leaves.png") o_leaves("nalc_mediterranean:needles", "default_pine_needles.png") o_leaves("nalc_mediterranean:olive_leaves", "feuilles_olivier.png") o_leaves("snow:needles", "default_pine_needles.png") end minetest.register_alias("moretrees:acacia_sapling_ongen", "default:acacia_sapling") minetest.log("action", "[nalc_moretrees] loaded.")