diff --git a/biomes.lua b/biomes.lua index 0f968de..323a5d8 100644 --- a/biomes.lua +++ b/biomes.lua @@ -79,53 +79,71 @@ subterrane:override_biome({ subterrane:register_cave_decor(-113, dfcaverns.config.ymax) -subterrane:register_cave_layer({ - minimum_depth = dfcaverns.config.ymax, - maximum_depth = dfcaverns.config.level1_min, - cave_threshold = dfcaverns.config.cavern_threshold, - perlin_cave = perlin_cave, - perlin_wave = perlin_wave, - columns = { - maximum_radius = 10, - minimum_radius = 4, - node = c_wet_flowstone, - weight = 0.25, - maximum_count = 20, - minimum_count = 0, - }, -}) - -subterrane:register_cave_layer({ - minimum_depth = dfcaverns.config.level1_min, - maximum_depth = dfcaverns.config.level2_min, - cave_threshold = dfcaverns.config.cavern_threshold, - perlin_cave = perlin_cave, - perlin_wave = perlin_wave, - columns = { - maximum_radius = 15, - minimum_radius = 4, - node = c_wet_flowstone, - weight = 0.25, - maximum_count = 30, - minimum_count = 5, - }, -}) - -subterrane:register_cave_layer({ - minimum_depth = dfcaverns.config.level2_min, - maximum_depth = dfcaverns.config.level3_min, - cave_threshold = dfcaverns.config.cavern_threshold, - perlin_cave = perlin_cave, - perlin_wave = perlin_wave, - columns = { - maximum_radius = 20, - minimum_radius = 5, - node = c_wet_flowstone, - weight = 0.25, - maximum_count = 50, - minimum_count = 10, - }, -}) +if dfcaverns.config.stone_between_layers then + subterrane:register_cave_layer({ + minimum_depth = dfcaverns.config.ymax, + maximum_depth = dfcaverns.config.level1_min, + cave_threshold = dfcaverns.config.cavern_threshold, + perlin_cave = perlin_cave, + perlin_wave = perlin_wave, + columns = { + maximum_radius = 10, + minimum_radius = 4, + node = c_wet_flowstone, + weight = 0.25, + maximum_count = 20, + minimum_count = 0, + }, + }) + + subterrane:register_cave_layer({ + minimum_depth = dfcaverns.config.level1_min, + maximum_depth = dfcaverns.config.level2_min, + cave_threshold = dfcaverns.config.cavern_threshold, + perlin_cave = perlin_cave, + perlin_wave = perlin_wave, + columns = { + maximum_radius = 15, + minimum_radius = 4, + node = c_wet_flowstone, + weight = 0.25, + maximum_count = 30, + minimum_count = 5, + }, + }) + + subterrane:register_cave_layer({ + minimum_depth = dfcaverns.config.level2_min, + maximum_depth = dfcaverns.config.level3_min, + cave_threshold = dfcaverns.config.cavern_threshold, + perlin_cave = perlin_cave, + perlin_wave = perlin_wave, + columns = { + maximum_radius = 20, + minimum_radius = 5, + node = c_wet_flowstone, + weight = 0.25, + maximum_count = 50, + minimum_count = 10, + }, + }) +else + subterrane:register_cave_layer({ + minimum_depth = dfcaverns.config.ymax, + maximum_depth = dfcaverns.config.level3_min, + cave_threshold = dfcaverns.config.cavern_threshold, + perlin_cave = perlin_cave, + perlin_wave = perlin_wave, + columns = { + maximum_radius = 20, + minimum_radius = 4, + node = c_wet_flowstone, + weight = 0.25, + maximum_count = 50, + minimum_count = 0, + }, + }) +end local perlin_cave_lava = { offset = 0, @@ -145,6 +163,7 @@ local perlin_wave_lava = { persist = 0.63 } +--Sunless Sea subterrane:register_cave_layer({ minimum_depth = dfcaverns.config.level3_min, maximum_depth = dfcaverns.config.sunless_sea_min, diff --git a/config.lua b/config.lua index 83f6bee..444afc0 100644 --- a/config.lua +++ b/config.lua @@ -86,6 +86,7 @@ setting("float", "lava_sea_threshold", 0.2, "Cavern threshold for sunless and ma setting("bool", "enable_lava_sea", true, "Enable magma sea level") setting("bool", "flooded_biomes", true, "Add a lot of water to the most humid cavern biomes") +setting("bool", "stone_between_layers", true, "Ensures that there's a solid stone floor/ceiling between cavern layers") if minetest.get_modpath("tnt") then dfcaverns.config.enable_tnt = minetest.settings:get_bool("enable_tnt") diff --git a/settingtypes.txt b/settingtypes.txt index aa6fece..be47555 100644 --- a/settingtypes.txt +++ b/settingtypes.txt @@ -44,6 +44,10 @@ dfcaverns_level3_min (Upper limit of the sunless sea) int -2100 dfcaverns_sunless_sea_min (Lower limit of the sunless sea) int -2500 dfcaverns_lava_sea_max (Upper limit of the lava sea) int -3000 dfcaverns_lava_sea_min (Lower limit of the lava sea) int -3500 +#If this is true then there will never be a direct connection between caverns +#of the first three cavern layers. If false, it's possible for caverns to +#extend vertically through the boundary. +dfcaverns_stone_between_layers (Ensure there's stone between layers) bool true [Lower Seas] #Determines threshold for lower sea cave generation. Higher number means sparser cavern