add black cap biomes

This commit is contained in:
FaceDeer 2017-03-25 14:43:01 -06:00
parent cb33c88b6d
commit 33d88fe713
2 changed files with 115 additions and 8 deletions

View File

@ -103,6 +103,32 @@ local level_2_tunnel_tube_floor = function(area, data, ai, vi, bi, param2_data)
end end
end end
local level_2_black_cap_floor = function(area, data, ai, vi, bi, param2_data)
if data[bi] ~= c_stone then
return
end
if math.random() < 0.25 then
data[bi] = c_dirt
else
data[bi] = c_cobble_fungus
end
local drip_rand = subterrane:vertically_consistent_random(vi, area)
if math.random() < 0.05 then
dfcaverns.place_shrub(data, vi, param2_data, {c_quarry_bush, c_dead_fungus, c_dead_fungus})
elseif drip_rand < 0.001 then
subterrane:giant_stalagmite(bi, area, data, 6, 15, c_dry_flowstone, c_dry_flowstone, c_dry_flowstone)
elseif drip_rand < 0.1 then
local param2 = drip_rand*1000000 - math.floor(drip_rand*1000000/4)*4
local height = math.floor(drip_rand/0.1 * 5)
subterrane:stalagmite(vi, area, data, param2_data, param2, height, true)
elseif math.random() < 0.025 then
dfcaverns.spawn_black_cap_vm(vi, area, data)
end
end
local level_2_spore_tree_floor = function(area, data, ai, vi, bi, param2_data) local level_2_spore_tree_floor = function(area, data, ai, vi, bi, param2_data)
if data[bi] ~= c_stone then if data[bi] ~= c_stone then
return return
@ -447,12 +473,40 @@ minetest.register_biome({
_subterrane_mitigate_lava = true, _subterrane_mitigate_lava = true,
}) })
minetest.register_biome({
name = "dfcaverns_level2_black_cap_biome_lower",
y_min = dfcaverns.config.level2_min,
y_max = subsea_level,
heat_point = 50,
humidity_point = 20,
_subterrane_ceiling_decor = level_2_dry_ceiling,
_subterrane_floor_decor = level_2_black_cap_floor,
_subterrane_fill_node = c_air,
_subterrane_cave_floor_decor = level_2_cave_floor,
_subterrane_cave_ceiling_decor = level_2_cave_ceiling,
_subterrane_mitigate_lava = true,
})
minetest.register_biome({
name = "dfcaverns_level2_black_cap_biome_upper",
y_min = subsea_level,
y_max = dfcaverns.config.level1_min,
heat_point = 50,
humidity_point = 20,
_subterrane_ceiling_decor = level_2_dry_ceiling,
_subterrane_floor_decor = level_2_black_cap_floor,
_subterrane_fill_node = c_air,
_subterrane_cave_floor_decor = level_2_cave_floor,
_subterrane_cave_ceiling_decor = level_2_cave_ceiling,
_subterrane_mitigate_lava = true,
})
minetest.register_biome({ minetest.register_biome({
name = "dfcaverns_level2_dry_biome_lower", name = "dfcaverns_level2_dry_biome_lower",
y_min = dfcaverns.config.level2_min, y_min = dfcaverns.config.level2_min,
y_max = subsea_level, y_max = subsea_level,
heat_point = 50, heat_point = 50,
humidity_point = 0, humidity_point = 15,
_subterrane_ceiling_decor = level_2_dry_ceiling, _subterrane_ceiling_decor = level_2_dry_ceiling,
_subterrane_floor_decor = level_2_dry_floor, _subterrane_floor_decor = level_2_dry_floor,
_subterrane_fill_node = c_air, _subterrane_fill_node = c_air,
@ -464,7 +518,7 @@ minetest.register_biome({
y_min = subsea_level, y_min = subsea_level,
y_max = dfcaverns.config.level1_min, y_max = dfcaverns.config.level1_min,
heat_point = 50, heat_point = 50,
humidity_point = 0, humidity_point = 15,
_subterrane_ceiling_decor = level_2_dry_ceiling, _subterrane_ceiling_decor = level_2_dry_ceiling,
_subterrane_floor_decor = level_2_dry_floor, _subterrane_floor_decor = level_2_dry_floor,
_subterrane_fill_node = c_air, _subterrane_fill_node = c_air,

View File

@ -222,6 +222,32 @@ local level_3_spore_tree_floor = function(area, data, ai, vi, bi, param2_data)
end end
end end
local level_3_black_cap_floor = function(area, data, ai, vi, bi, param2_data)
if data[bi] ~= c_stone then
return
end
if math.random() < 0.25 then
data[bi] = c_dirt
else
data[bi] = c_cobble_fungus
end
local drip_rand = subterrane:vertically_consistent_random(vi, area)
if math.random() < 0.05 then
dfcaverns.place_shrub(data, vi, param2_data, {c_quarry_bush, c_dead_fungus, c_dead_fungus})
elseif drip_rand < 0.001 then
subterrane:giant_stalagmite(bi, area, data, 6, 15, c_dry_flowstone, c_dry_flowstone, c_dry_flowstone)
elseif drip_rand < 0.1 then
local param2 = drip_rand*1000000 - math.floor(drip_rand*1000000/4)*4
local height = math.floor(drip_rand/0.1 * 5)
subterrane:stalagmite(vi, area, data, param2_data, param2, height, true)
elseif math.random() < 0.025 then
dfcaverns.spawn_black_cap_vm(vi, area, data)
end
end
local level_3_goblin_cap_floor = function(area, data, ai, vi, bi, param2_data) local level_3_goblin_cap_floor = function(area, data, ai, vi, bi, param2_data)
if data[bi] ~= c_stone then if data[bi] ~= c_stone then
return return
@ -320,8 +346,8 @@ minetest.register_biome({
name = "dfcaverns_level3_blood_thorn_biome_lower", name = "dfcaverns_level3_blood_thorn_biome_lower",
y_min = dfcaverns.config.level3_min, y_min = dfcaverns.config.level3_min,
y_max = subsea_level, y_max = subsea_level,
heat_point = 20, heat_point = 10,
humidity_point = 40, humidity_point = 30,
_subterrane_ceiling_decor = level_3_dry_ceiling, _subterrane_ceiling_decor = level_3_dry_ceiling,
_subterrane_floor_decor = level_3_blood_thorn_floor, _subterrane_floor_decor = level_3_blood_thorn_floor,
_subterrane_fill_node = c_air, _subterrane_fill_node = c_air,
@ -334,8 +360,8 @@ minetest.register_biome({
name = "dfcaverns_level3_blood_thorn_biome_upper", name = "dfcaverns_level3_blood_thorn_biome_upper",
y_min = subsea_level, y_min = subsea_level,
y_max = dfcaverns.config.level2_min, y_max = dfcaverns.config.level2_min,
heat_point = 20, heat_point = 10,
humidity_point = 40, humidity_point = 30,
_subterrane_ceiling_decor = level_3_dry_ceiling, _subterrane_ceiling_decor = level_3_dry_ceiling,
_subterrane_floor_decor = level_3_blood_thorn_floor, _subterrane_floor_decor = level_3_blood_thorn_floor,
_subterrane_fill_node = c_air, _subterrane_fill_node = c_air,
@ -456,13 +482,40 @@ minetest.register_biome({
_subterrane_mitigate_lava = true, _subterrane_mitigate_lava = true,
}) })
minetest.register_biome({
name = "dfcaverns_level3_black_cap_biome_lower",
y_min = dfcaverns.config.level2_min,
y_max = subsea_level,
heat_point = 50,
humidity_point = 15,
_subterrane_ceiling_decor = level_3_dry_ceiling,
_subterrane_floor_decor = level_3_black_cap_floor,
_subterrane_fill_node = c_air,
_subterrane_cave_floor_decor = level_3_cave_floor,
_subterrane_cave_ceiling_decor = level_3_cave_ceiling,
_subterrane_mitigate_lava = true,
})
minetest.register_biome({
name = "dfcaverns_level3_black_cap_biome_upper",
y_min = subsea_level,
y_max = dfcaverns.config.level1_min,
heat_point = 50,
humidity_point = 15,
_subterrane_ceiling_decor = level_3_dry_ceiling,
_subterrane_floor_decor = level_3_black_cap_floor,
_subterrane_fill_node = c_air,
_subterrane_cave_floor_decor = level_3_cave_floor,
_subterrane_cave_ceiling_decor = level_3_cave_ceiling,
_subterrane_mitigate_lava = true,
})
minetest.register_biome({ minetest.register_biome({
name = "dfcaverns_level3_dry_biome_lower", name = "dfcaverns_level3_dry_biome_lower",
y_min = dfcaverns.config.level3_min, y_min = dfcaverns.config.level3_min,
y_max = subsea_level, y_max = subsea_level,
heat_point = 50, heat_point = 50,
humidity_point = 0, humidity_point = 10,
_subterrane_ceiling_decor = level_3_dry_ceiling, _subterrane_ceiling_decor = level_3_dry_ceiling,
_subterrane_floor_decor = level_3_dry_floor, _subterrane_floor_decor = level_3_dry_floor,
_subterrane_fill_node = c_air, _subterrane_fill_node = c_air,
@ -474,7 +527,7 @@ minetest.register_biome({
y_min = subsea_level, y_min = subsea_level,
y_max = dfcaverns.config.level2_min, y_max = dfcaverns.config.level2_min,
heat_point = 50, heat_point = 50,
humidity_point = 0, humidity_point = 10,
_subterrane_ceiling_decor = level_3_dry_ceiling, _subterrane_ceiling_decor = level_3_dry_ceiling,
_subterrane_floor_decor = level_3_dry_floor, _subterrane_floor_decor = level_3_dry_floor,
_subterrane_fill_node = c_air, _subterrane_fill_node = c_air,