From 079ce4e96ed126d454ac89f8cd04320b194cfbef Mon Sep 17 00:00:00 2001 From: FaceDeer Date: Sun, 19 Mar 2017 21:50:03 -0600 Subject: [PATCH] rough in level3 and lava sea --- biomes/lava_sea.lua | 26 +++ biomes/level2.lua | 28 +-- biomes/level3.lua | 450 ++++++++++++++++++++++++++++++++++++++++++++ 3 files changed, 490 insertions(+), 14 deletions(-) diff --git a/biomes/lava_sea.lua b/biomes/lava_sea.lua index e69de29..29fa17d 100644 --- a/biomes/lava_sea.lua +++ b/biomes/lava_sea.lua @@ -0,0 +1,26 @@ +local c_water = minetest.get_content_id("default:water_source") +local c_air = minetest.get_content_id("air") +local c_stone = minetest.get_content_id("default:stone") +local c_cobble = minetest.get_content_id("default:cobble") +local c_dirt = minetest.get_content_id("default:dirt") +local c_sand = minetest.get_content_id("default:sand") +local c_lava = minetest.get_content_id("default:lava_source") + +local c_dirt_moss = minetest.get_content_id("dfcaverns:dirt_with_cave_moss") +local c_cobble_fungus = minetest.get_content_id("dfcaverns:cobble_with_floor_fungus") +local c_dead_fungus = minetest.get_content_id("dfcaverns:dead_fungus") -- param2 = 0 +local c_cavern_fungi = minetest.get_content_id("dfcaverns:cavern_fungi") -- param2 = 0 + +------------------------------------------------------------------------------------------- + + +minetest.register_biome({ + name = "dfcaverns_lava_sea", + y_min = dfcaverns.config.lava_sea_min, + y_max = dfcaverns.config.level3_min, + heat_point = 50, + humidity_point = 50, + _subterrane_fill_node = c_lava, + _subterrane_cave_fill_node = c_lava, +}) + diff --git a/biomes/level2.lua b/biomes/level2.lua index b4d1d7c..fc9f954 100644 --- a/biomes/level2.lua +++ b/biomes/level2.lua @@ -280,7 +280,7 @@ end minetest.register_biome({ - name = "dfcaverns_level1_flooded_biome_lower", + name = "dfcaverns_level2_flooded_biome_lower", y_min = dfcaverns.config.level2_min, y_max = subsea_level, heat_point = 20, @@ -291,7 +291,7 @@ minetest.register_biome({ }) minetest.register_biome({ - name = "dfcaverns_level1_flooded_biome_upper", + name = "dfcaverns_level2_flooded_biome_upper", y_min = subsea_level, y_max = dfcaverns.config.level1_min, heat_point = 20, @@ -304,7 +304,7 @@ minetest.register_biome({ minetest.register_biome({ - name = "dfcaverns_level1_tower_cap_biome_lower", + name = "dfcaverns_level2_tower_cap_biome_lower", y_min = dfcaverns.config.level2_min, y_max = subsea_level, heat_point = 40, @@ -317,7 +317,7 @@ minetest.register_biome({ }) minetest.register_biome({ - name = "dfcaverns_level1_tower_cap_biome_upper", + name = "dfcaverns_level2_tower_cap_biome_upper", y_min = subsea_level, y_max = dfcaverns.config.level1_min, heat_point = 40, @@ -330,7 +330,7 @@ minetest.register_biome({ }) minetest.register_biome({ - name = "dfcaverns_level1_fungiwood_biome_lower", + name = "dfcaverns_level2_fungiwood_biome_lower", y_min = dfcaverns.config.level2_min, y_max = subsea_level, heat_point = 80, @@ -343,7 +343,7 @@ minetest.register_biome({ }) minetest.register_biome({ - name = "dfcaverns_level1_fungiwood_biome_upper", + name = "dfcaverns_level2_fungiwood_biome_upper", y_min = subsea_level, y_max = dfcaverns.config.level1_min, heat_point = 80, @@ -356,7 +356,7 @@ minetest.register_biome({ }) minetest.register_biome({ - name = "dfcaverns_level1_goblin_cap_biome_lower", + name = "dfcaverns_level2_goblin_cap_biome_lower", y_min = dfcaverns.config.level2_min, y_max = subsea_level, heat_point = 60, @@ -369,7 +369,7 @@ minetest.register_biome({ }) minetest.register_biome({ - name = "dfcaverns_level1_goblin_cap_biome_upper", + name = "dfcaverns_level2_goblin_cap_biome_upper", y_min = subsea_level, y_max = dfcaverns.config.level1_min, heat_point = 60, @@ -383,7 +383,7 @@ minetest.register_biome({ minetest.register_biome({ - name = "dfcaverns_level1_spore_tree_biome_lower", + name = "dfcaverns_level2_spore_tree_biome_lower", y_min = dfcaverns.config.level2_min, y_max = subsea_level, heat_point = 60, @@ -396,7 +396,7 @@ minetest.register_biome({ }) minetest.register_biome({ - name = "dfcaverns_level1_spore_tree_biome_upper", + name = "dfcaverns_level2_spore_tree_biome_upper", y_min = subsea_level, y_max = dfcaverns.config.level1_min, heat_point = 60, @@ -411,7 +411,7 @@ minetest.register_biome({ minetest.register_biome({ - name = "dfcaverns_level1_tunnel_tube_biome_lower", + name = "dfcaverns_level2_tunnel_tube_biome_lower", y_min = dfcaverns.config.level2_min, y_max = subsea_level, heat_point = 40, @@ -424,7 +424,7 @@ minetest.register_biome({ }) minetest.register_biome({ - name = "dfcaverns_level1_tunnel_tube_biome_upper", + name = "dfcaverns_level2_tunnel_tube_biome_upper", y_min = subsea_level, y_max = dfcaverns.config.level1_min, heat_point = 40, @@ -438,7 +438,7 @@ minetest.register_biome({ minetest.register_biome({ - name = "dfcaverns_level1_dry_biome_lower", + name = "dfcaverns_level2_dry_biome_lower", y_min = dfcaverns.config.level2_min, y_max = subsea_level, heat_point = 20, @@ -449,7 +449,7 @@ minetest.register_biome({ }) minetest.register_biome({ - name = "dfcaverns_level1_dry_biome_upper", + name = "dfcaverns_level2_dry_biome_upper", y_min = subsea_level, y_max = dfcaverns.config.level1_min, heat_point = 20, diff --git a/biomes/level3.lua b/biomes/level3.lua index b79ecc8..ff14ce5 100644 --- a/biomes/level3.lua +++ b/biomes/level3.lua @@ -3,3 +3,453 @@ --dfcaverns.spawn_nether_cap_vm(vi, area, data) --dfcaverns.spawn_goblin_cap_vm(vi, area, data) --dfcaverns.spawn_blood_thorn_vm(vi, area, data, data_param2) + + +local c_water = minetest.get_content_id("default:water_source") +local c_air = minetest.get_content_id("air") +local c_stone = minetest.get_content_id("default:stone") +local c_cobble = minetest.get_content_id("default:cobble") +local c_dirt = minetest.get_content_id("default:dirt") +local c_sand = minetest.get_content_id("default:sand") + +local c_dirt_moss = minetest.get_content_id("dfcaverns:dirt_with_cave_moss") +local c_cobble_fungus = minetest.get_content_id("dfcaverns:cobble_with_floor_fungus") +local c_dead_fungus = minetest.get_content_id("dfcaverns:dead_fungus") -- param2 = 0 +local c_cavern_fungi = minetest.get_content_id("dfcaverns:cavern_fungi") -- param2 = 0 + +local subsea_level = (dfcaverns.config.level3_min - dfcaverns.config.level2_min) * 0.3 + dfcaverns.config.level3_min + +local level_3_blood_thorn_floor = function(area, data, ai, vi, bi, param2_data) + if data[bi] ~= c_stone then + return + end + + if math.random() < 0.1 then + data[bi] = c_dirt_moss + else + data[bi] = c_sand + end + + local drip_rand = subterrane:vertically_consistent_random(vi, area) + if math.random() < 0.1 then + dfcaverns.place_shrub(data, vi, param2_data) + elseif drip_rand < 0.05 then + --subterrane:stalagmite(bi, area, data, 6, 15, c_stone, c_stone, c_stone) + local param2 = drip_rand*1000000 - math.floor(drip_rand*1000000/4)*4 + local height = math.floor(drip_rand/0.05 * 5) + subterrane:small_stalagmite(vi, area, data, param2_data, param2, height, false) + elseif math.random() < 0.05 then + dfcaverns.spawn_blood_thorn_vm(vi, area, data, param2_data) + end +end + +local level_3_moist_ceiling = function(area, data, ai, vi, bi, param2_data) + subterrane:obsidian_ceiling_plug(area, data, ai, vi, bi) + if data[ai] ~= c_stone then + return + end + local drip_rand = subterrane:vertically_consistent_random(vi, area) + if drip_rand < 0.075 then + --subterrane:stalactite(ai, area, data, 6, 20, c_stone, c_stone, c_stone) + local param2 = drip_rand*1000000 - math.floor(drip_rand*1000000/4)*4 + local height = math.floor(drip_rand/0.075 * 5) + subterrane:small_stalagmite(vi, area, data, param2_data, param2, -height, true) + elseif math.random() < 0.03 then + dfcaverns.glow_worm_ceiling(area, data, ai, vi, bi) + end +end + +local level_3_dry_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_cobble_fungus + if math.random() < 0.1 then + data[vi] = c_dead_fungus + end + elseif math.random() < 0.5 then + data[bi] = c_cobble + end + local drip_rand = subterrane:vertically_consistent_random(vi, area) + + if drip_rand < 0.05 then + --subterrane:stalagmite(bi, area, data, 6, 15, c_stone, c_stone, c_stone) + local param2 = drip_rand*1000000 - math.floor(drip_rand*1000000/4)*4 + local height = math.floor(drip_rand/0.05 * 5) + subterrane:small_stalagmite(vi, area, data, param2_data, param2, height, false) + end +end + +local level_3_wet_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_moss + if math.random() < 0.1 then + data[vi] = c_dead_fungus + elseif math.random() < 0.1 then + data[vi] = c_cavern_fungi + end + else + data[bi] = c_dirt + end + + local drip_rand = subterrane:vertically_consistent_random(vi, area) + + if drip_rand < 0.05 then + --subterrane:stalagmite(bi, area, data, 6, 15, c_stone, c_stone, c_stone) + local param2 = drip_rand*1000000 - math.floor(drip_rand*1000000/4)*4 + local height = math.floor(drip_rand/0.05 * 5) + subterrane:small_stalagmite(vi, area, data, param2_data, param2, height, true) + end +end + + +local level_3_underwater_floor = function(area, data, ai, vi, bi, param2_data) + if data[bi] ~= c_stone then + return + end + data[bi] = c_dirt +end + +local level_3_dry_ceiling = function(area, data, ai, vi, bi, param2_data) + if data[ai] ~= c_stone then + return + end + local drip_rand = subterrane:vertically_consistent_random(vi, area) + if drip_rand < 0.075 then + --subterrane:stalactite(ai, area, data, 6, 20, c_stone, c_stone, c_stone) + local param2 = drip_rand*1000000 - math.floor(drip_rand*1000000/4)*4 + local height = math.floor(drip_rand/0.075 * 5) + subterrane:small_stalagmite(vi, area, data, param2_data, param2, -height, false) + end +end + + +local level_3_nether_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_dirt_moss + end + + local drip_rand = subterrane:vertically_consistent_random(vi, area) + + if math.random() < 0.1 then + dfcaverns.place_shrub(data, vi, param2_data) + elseif drip_rand < 0.1 then + --subterrane:stalagmite(bi, area, data, 6, 15, c_stone, c_stone, c_stone) + local param2 = drip_rand*1000000 - math.floor(drip_rand*1000000/4)*4 + local height = math.floor(drip_rand/0.1 * 5) + subterrane:small_stalagmite(vi, area, data, param2_data, param2, height, true) + elseif math.random() < 0.005 then + dfcaverns.spawn_nether_cap_vm(vi, area, data) + end +end + +local level_3_tunnel_tube_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_dirt_moss + end + + local drip_rand = subterrane:vertically_consistent_random(vi, area) + + if math.random() < 0.1 then + dfcaverns.place_shrub(data, vi, param2_data) + elseif drip_rand < 0.1 then + --subterrane:stalagmite(bi, area, data, 6, 15, c_stone, c_stone, c_stone) + local param2 = drip_rand*1000000 - math.floor(drip_rand*1000000/4)*4 + local height = math.floor(drip_rand/0.1 * 5) + subterrane:small_stalagmite(vi, area, data, param2_data, param2, height, true) + elseif math.random() < 0.05 then + dfcaverns.spawn_tunnel_tube_vm(vi, area, data, param2_data) + end +end + +local level_3_spore_tree_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_dirt_moss + end + + local drip_rand = subterrane:vertically_consistent_random(vi, area) + + if math.random() < 0.1 then + dfcaverns.place_shrub(data, vi, param2_data) + elseif drip_rand < 0.1 then + --subterrane:stalagmite(bi, area, data, 6, 15, c_stone, c_stone, c_stone) + local param2 = drip_rand*1000000 - math.floor(drip_rand*1000000/4)*4 + local height = math.floor(drip_rand/0.1 * 5) + subterrane:small_stalagmite(vi, area, data, param2_data, param2, height, true) + elseif math.random() < 0.05 then + dfcaverns.spawn_spore_tree_vm(vi, area, data) + end +end + +local level_3_goblin_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_dirt_moss + end + + local drip_rand = subterrane:vertically_consistent_random(vi, area) + + if math.random() < 0.1 then + dfcaverns.place_shrub(data, vi, param2_data) + elseif drip_rand < 0.1 then + --subterrane:stalagmite(bi, area, data, 6, 15, c_stone, c_stone, c_stone) + local param2 = drip_rand*1000000 - math.floor(drip_rand*1000000/4)*4 + local height = math.floor(drip_rand/0.1 * 5) + subterrane:small_stalagmite(vi, area, data, param2_data, param2, height, true) + elseif math.random() < 0.025 then + dfcaverns.spawn_goblin_cap_vm(vi, area, data) + end +end + +local level_3_cave_floor = function(area, data, ai, vi, bi, param2_data) + if dfcaverns.can_support_vegetation[data[bi]] then + data[bi] = c_dirt_moss + if math.random() < 0.25 then + if data[vi] == c_air then + dfcaverns.place_shrub(data, vi, param2_data) + end + end + return + end + + if data[bi] == c_cobble and math.random() < 0.001 then + data[bi] = c_cobble_fungus + return + end + + if data[bi] ~= c_stone then + return + end + + local drip_rand = subterrane:vertically_consistent_random(vi, area) + if drip_rand < 0.075 then + local param2 = drip_rand*1000000 - math.floor(drip_rand*1000000/4)*4 + local height = math.floor(drip_rand/0.075 * 4) + subterrane:small_stalagmite(vi, area, data, param2_data, param2, height, true) + end +end + +local level_3_cave_ceiling = function(area, data, ai, vi, bi, param2_data) + if data[ai] ~= c_stone then + return + end + + local drip_rand = subterrane:vertically_consistent_random(vi, area) + + if 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:small_stalagmite(vi, area, data, param2_data, param2, -height, true) + end +end + +------------------------------------------------------------------------------------------- + + +minetest.register_biome({ + name = "dfcaverns_level3_flooded_biome_lower", + y_min = dfcaverns.config.level3_min, + y_max = subsea_level, + heat_point = 20, + humidity_point = 0, + _subterrane_fill_node = c_water, + _subterrane_cave_fill_node = c_water, + _subterrane_floor_decor = level_3_underwater_floor, +}) + +minetest.register_biome({ + name = "dfcaverns_level3_flooded_biome_upper", + y_min = subsea_level, + y_max = dfcaverns.config.level2_min, + heat_point = 20, + humidity_point = 0, + _subterrane_ceiling_decor = level_3_moist_ceiling, + _subterrane_floor_decor = level_3_wet_floor, + _subterrane_fill_node = c_air, + _subterrane_cave_fill_node = c_water, +}) + + +minetest.register_biome({ + name = "dfcaverns_level3_blood_thorn_biome_lower", + y_min = dfcaverns.config.level3_min, + y_max = subsea_level, + heat_point = 40, + humidity_point = 100, + _subterrane_ceiling_decor = level_3_dry_ceiling, + _subterrane_floor_decor = level_3_blood_thorn_floor, + _subterrane_fill_node = c_air, + _subterrane_cave_floor_decor = level_3_cave_floor, + _subterrane_cave_ceiling_decor = level_3_cave_ceiling, +}) + +minetest.register_biome({ + name = "dfcaverns_level3_blood_thorn_biome_upper", + y_min = subsea_level, + y_max = dfcaverns.config.level2_min, + heat_point = 40, + humidity_point = 100, + _subterrane_ceiling_decor = level_3_dry_ceiling, + _subterrane_floor_decor = level_3_blood_thorn_floor, + _subterrane_fill_node = c_air, + _subterrane_cave_floor_decor = level_3_cave_floor, + _subterrane_cave_ceiling_decor = level_3_cave_ceiling, +}) + +minetest.register_biome({ + name = "dfcaverns_level3_nether_cap_biome_lower", + y_min = dfcaverns.config.level3_min, + y_max = subsea_level, + heat_point = 80, + humidity_point = 50, + _subterrane_ceiling_decor = level_3_moist_ceiling, + _subterrane_floor_decor = level_3_nether_cap_floor, + _subterrane_fill_node = c_air, + _subterrane_cave_floor_decor = level_3_cave_floor, + _subterrane_cave_ceiling_decor = level_3_cave_ceiling, +}) + +minetest.register_biome({ + name = "dfcaverns_level3_nether_cap_biome_upper", + y_min = subsea_level, + y_max = dfcaverns.config.level2_min, + heat_point = 80, + humidity_point = 50, + _subterrane_ceiling_decor = level_3_moist_ceiling, + _subterrane_floor_decor = level_3_nether_cap_floor, + _subterrane_fill_node = c_air, + _subterrane_cave_floor_decor = level_3_cave_floor, + _subterrane_cave_ceiling_decor = level_3_cave_ceiling, +}) + +minetest.register_biome({ + name = "dfcaverns_level3_goblin_cap_biome_lower", + y_min = dfcaverns.config.level3_min, + y_max = subsea_level, + heat_point = 60, + humidity_point = 20, + _subterrane_ceiling_decor = level_3_moist_ceiling, + _subterrane_floor_decor = level_3_goblin_cap_floor, + _subterrane_fill_node = c_air, + _subterrane_cave_floor_decor = level_3_cave_floor, + _subterrane_cave_ceiling_decor = level_3_cave_ceiling, +}) + +minetest.register_biome({ + name = "dfcaverns_level3_goblin_cap_biome_upper", + y_min = subsea_level, + y_max = dfcaverns.config.level2_min, + heat_point = 60, + humidity_point = 20, + _subterrane_ceiling_decor = level_3_moist_ceiling, + _subterrane_floor_decor = level_3_goblin_cap_floor, + _subterrane_fill_node = c_air, + _subterrane_cave_floor_decor = level_3_cave_floor, + _subterrane_cave_ceiling_decor = level_3_cave_ceiling, +}) + + +minetest.register_biome({ + name = "dfcaverns_level3_spore_tree_biome_lower", + y_min = dfcaverns.config.level3_min, + y_max = subsea_level, + heat_point = 60, + humidity_point = 80, + _subterrane_ceiling_decor = level_3_moist_ceiling, + _subterrane_floor_decor = level_3_spore_tree_floor, + _subterrane_fill_node = c_air, + _subterrane_cave_floor_decor = level_3_cave_floor, + _subterrane_cave_ceiling_decor = level_3_cave_ceiling, +}) + +minetest.register_biome({ + name = "dfcaverns_level3_spore_tree_biome_upper", + y_min = subsea_level, + y_max = dfcaverns.config.level2_min, + heat_point = 60, + humidity_point = 80, + _subterrane_ceiling_decor = level_3_moist_ceiling, + _subterrane_floor_decor = level_3_spore_tree_floor, + _subterrane_fill_node = c_air, + _subterrane_cave_floor_decor = level_3_cave_floor, + _subterrane_cave_ceiling_decor = level_3_cave_ceiling, +}) + +minetest.register_biome({ + name = "dfcaverns_level3_tunnel_tube_biome_lower", + y_min = dfcaverns.config.level3_min, + heat_point = 40, + humidity_point = 10, + y_max = subsea_level, + _subterrane_ceiling_decor = level_3_moist_ceiling, + _subterrane_floor_decor = level_3_tunnel_tube_floor, + _subterrane_fill_node = c_air, + _subterrane_cave_floor_decor = level_3_cave_floor, + _subterrane_cave_ceiling_decor = level_3_cave_ceiling, +}) + +minetest.register_biome({ + name = "dfcaverns_level3_tunnel_tube_biome_upper", + y_min = subsea_level, + y_max = dfcaverns.config.level2_min, + heat_point = 40, + humidity_point = 10, + _subterrane_ceiling_decor = level_3_moist_ceiling, + _subterrane_floor_decor = level_3_tunnel_tube_floor, + _subterrane_fill_node = c_air, + _subterrane_cave_floor_decor = level_3_cave_floor, + _subterrane_cave_ceiling_decor = level_3_cave_ceiling, +}) + + +minetest.register_biome({ + name = "dfcaverns_level3_dry_biome_lower", + y_min = dfcaverns.config.level3_min, + y_max = subsea_level, + heat_point = 20, + humidity_point = 110, + _subterrane_ceiling_decor = level_3_dry_ceiling, + _subterrane_floor_decor = level_3_dry_floor, + _subterrane_fill_node = c_air, +}) + +minetest.register_biome({ + name = "dfcaverns_level3_dry_biome_upper", + y_min = subsea_level, + y_max = dfcaverns.config.level2_min, + heat_point = 20, + humidity_point = 110, + _subterrane_ceiling_decor = level_3_dry_ceiling, + _subterrane_floor_decor = level_3_dry_floor, + _subterrane_fill_node = c_air, +}) \ No newline at end of file