From d2b996f71b7710f3bf7bf98bf913a4d813f646d1 Mon Sep 17 00:00:00 2001 From: Gael-de-Sailly Date: Sun, 3 Apr 2016 11:19:43 +0200 Subject: [PATCH] Initial commit --- 30 Biomes.ggb | Bin 0 -> 16115 bytes beach_biomes.lua | 162 +++++++++++++++ decorations.lua | 401 +++++++++++++++++++++++++++++++++++++ depends.txt | 1 + init.lua | 34 ++++ main_biomes.lua | 433 ++++++++++++++++++++++++++++++++++++++++ mod.conf | 1 + sea_biomes.lua | 53 +++++ textures/biomes_mud.png | Bin 0 -> 324 bytes 9 files changed, 1085 insertions(+) create mode 100644 30 Biomes.ggb create mode 100644 beach_biomes.lua create mode 100644 decorations.lua create mode 100644 depends.txt create mode 100644 init.lua create mode 100644 main_biomes.lua create mode 100644 mod.conf create mode 100644 sea_biomes.lua create mode 100644 textures/biomes_mud.png diff --git a/30 Biomes.ggb b/30 Biomes.ggb new file mode 100644 index 0000000000000000000000000000000000000000..1978ba216bade8762800dc28b5708d052725402d GIT binary patch literal 16115 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 W1!*wwf8T=r^T+@J0P(#4X8#MN@ay6L literal 0 HcmV?d00001 diff --git a/beach_biomes.lua b/beach_biomes.lua new file mode 100644 index 0000000..f045af2 --- /dev/null +++ b/beach_biomes.lua @@ -0,0 +1,162 @@ +-- 1 +minetest.register_biome({ + name = "gravel_beach", + node_top = "default:gravel", + depth_top = 1, + node_filler = "default:gravel", + depth_filler = 3, + node_stone = "default:stone", + y_min = -7, + y_max = 6, + heat_point = 19, + humidity_point = 19, +}) + +-- 2 +minetest.register_biome({ + name = "sand_dunes", + node_top = "default:sand", + depth_top = 1, + node_filler = "default:sand", + depth_filler = 3, + node_stone = "default:stone", + y_min = -5, + y_max = 5, + heat_point = 21, + humidity_point = 61, +}) + +-- 3 +minetest.register_biome({ + name = "mangrove", + node_top = "default:dirt", + depth_top = 1, + node_filler = "default:dirt", + depth_filler = 4, + node_stone = "default:stone", + y_min = -4, + y_max = 0, + heat_point = 96, + humidity_point = 106, +}) + +-- 4 +minetest.register_biome({ + name = "desert_dunes", + node_top = "default:sand", + depth_top = 1, + node_filler = "default:sand", + depth_filler = 2, + node_stone = "default:stone", + y_min = -5, + y_max = 6, + heat_point = 70, + humidity_point = 6, +}) + +-- 5 +minetest.register_biome({ + name = "hot_sand_dunes", + node_top = "default:sand", + depth_top = 1, + node_filler = "default:sand", + depth_filler = 3, + node_stone = "default:stone", + y_min = -5, + y_max = 5, + heat_point = 106, + humidity_point = 49, +}) + +-- 6 +minetest.register_biome({ + name = "tundra_dunes", + node_dust = "default:snow", + node_top = "default:sand", + depth_top = 2, + node_filler = "default:gravel", + depth_filler = 1, + node_stone = "default:stone", + y_min = -5, + y_max = 2, + heat_point = 5, + humidity_point = 21, +}) + +-- Glacier 2 without snow +minetest.register_biome({ + name = "glacier_2_shore", + node_dust = "default:snowblock", + node_top = "default:ice", + depth_top = 4, + node_stone = "default:stone", + node_water_top = "default:ice", + depth_water_top = 6, + node_river_water = "default:ice", + y_min = -4, + y_max = 0, + heat_point = -19, + humidity_point = 40, +}) + +-- Glacier 3 without snow +minetest.register_biome({ + name = "glacier_3_shore", + node_dust = "default:snowblock", + node_top = "default:ice", + depth_top = 12, + node_stone = "default:stone", + node_water_top = "default:ice", + depth_water_top = 6, + node_river_water = "default:ice", + y_min = -4, + y_max = 0, + heat_point = -27, + humidity_point = 80, +}) + +-- Swamp without grass +minetest.register_biome({ + name = "swamp_shore", + node_top = "default:dirt", + depth_top = 1, + node_filler = "default:dirt", + depth_filler = 3, + node_stone = "default:stone", + y_min = -3, + y_max = 0, + heat_point = 30, + humidity_point = 114, +}) + +-- Icy swamp without snow +minetest.register_biome({ + name = "icy_swamp_shore", + node_dust = "default:snow", + node_top = "default:dirt", + depth_top = 3, + node_filler = "default:dirt", + depth_filler = 3, + node_stone = "default:stone", + node_water_top = "default:ice", + depth_water_top = 1, + node_river_water = "default:ice", + y_min = -4, + y_max = 0, + heat_point = -10, + humidity_point = 107, +}) + +-- Hot swamp without grass +minetest.register_biome({ + name = "hot_swamp_shore", + node_top = "default:dirt", + depth_top = 1, + node_filler = "default:dirt", + depth_filler = 4, + node_stone = "default:stone", + y_min = -3, + y_max = 0, + heat_point = 83, + humidity_point = 116, +}) diff --git a/decorations.lua b/decorations.lua new file mode 100644 index 0000000..d7e8f3f --- /dev/null +++ b/decorations.lua @@ -0,0 +1,401 @@ +-- Mud in swamps +minetest.register_ore({ + ore_type = "blob", + ore = "biomes:mud", + wherein = {"default:dirt", "default:dirt_with_grass"}, + clust_scarcity = 12*12*12, + clust_size = 10, + y_min = -8, + y_max = 31000, + noise_threshold = 0.0, + noise_params = { + offset = 0.5, + scale = 0.5, + spread = {x=4, y=4, z=4}, + seed = 1662, + octaves = 3, + persist = 0.7 + }, + biomes = {"swamp", "hot_swamp", "swamp_shore", "hot_swamp_shore"}, +}) + +-- Ice in cold swamps +minetest.register_ore({ + ore_type = "blob", + ore = "default:ice", + wherein = {"default:dirt", "default:dirt_with_snow"}, + clust_scarcity = 8*8*8, + clust_size = 6, + y_min = -8, + y_max = 31000, + noise_threshold = 0.0, + noise_params = { + offset = 0.5, + scale = 1, + spread = {x=4, y=4, z=4}, + seed = 1662, + octaves = 3, + persist = 0.7 + }, + biomes = {"icy_swamp", "icy_swamp_shore"}, +}) + +-- Jungle grass +minetest.register_decoration({ + deco_type = "simple", + place_on = {"default:dirt_with_grass", "biomes:mud"}, + sidelen = 16, + noise_params = { + offset = 0.15, + scale = -0.1, + spread = {x = 200, y = 200, z = 200}, + seed = 329, + octaves = 3, + persist = 0.6 + }, + biomes = {"rainforest", "desert_stone_grasslands", "semi-tropical_forest", "hot_swamp"}, + y_min = 1, + y_max = 31000, + decoration = "default:junglegrass", +}) + +for length = 5, 1, -1 do + -- Dense grass on grasslands + minetest.register_decoration({ + deco_type = "simple", + place_on = {"default:dirt_with_grass"}, + sidelen = 16, + noise_params = { + offset = 0.12 - 0.02 * length, + scale = 0.05, + spread = {x = 200, y = 200, z = 200}, + seed = 329, + octaves = 3, + persist = 0.6 + }, + biomes = {"stone_grasslands", "sandstone_grasslands"}, + y_min = 1, + y_max = 31000, + decoration = "default:grass_"..length, + }) + + -- Grass (mostly on forests) + minetest.register_decoration({ + deco_type = "simple", + place_on = {"default:dirt_with_grass"}, + sidelen = 16, + noise_params = { + offset = 0.03 - 0.01 * length, + scale = 0.05, + spread = {x = 200, y = 200, z = 200}, + seed = 329, + octaves = 3, + persist = 0.6 + }, + biomes = {"coniferous_forest", "deciduous_forest", "mixed_forest", "cold_deciduous_forest", "low_deciduous_forest", "hot_deciduous_forest", "bushes", "hot_pine_forest", "desert_stone_grasslands"}, + y_min = 1, + y_max = 31000, + decoration = "default:grass_"..length, + }) + + -- Dry grass + minetest.register_decoration({ + deco_type = "simple", + place_on = {"default:dirt_with_dry_grass"}, + sidelen = 16, + noise_params = { + offset = 0.06 - 0.01 * length, + scale = 0.05, + spread = {x = 200, y = 200, z = 200}, + seed = 329, + octaves = 3, + persist = 0.6 + }, + biomes = {"savanna", "red_savanna", "scrub"}, + y_min = 1, + y_max = 31000, + decoration = "default:dry_grass_"..length, + }) + + -- Rare grass + minetest.register_decoration({ + deco_type = "simple", + place_on = {"default:dirt_with_grass", "default:dirt_with_dry_grass"}, + sidelen = 16, + noise_params = { + offset = -0.01 * length, + scale = 0.03 + 0.005 * length, + spread = {x = 200, y = 200, z = 200}, + seed = 329, + octaves = 1, + persist = 1 + }, + biomes = {"scrub", "tundra", "semi-tropical_forest"}, + y_min = 1, + y_max = 31000, + decoration = "default:grass_"..length, + }) + + -- Rare dry grass + minetest.register_decoration({ + deco_type = "simple", + place_on = {"default:dirt_with_dry_grass", "default:dirt_with_grass"}, + sidelen = 16, + noise_params = { + offset = -0.01 * length, + scale = 0.03 + 0.005 * length, + spread = {x = 200, y = 200, z = 200}, + seed = 329, + octaves = 1, + persist = 1 + }, + biomes = {"bushes", "sandstone_grasslands"}, + y_min = 1, + y_max = 31000, + decoration = "default:dry_grass_"..length, + }) +end + +-- Apple tree +minetest.register_decoration({ + deco_type = "schematic", + place_on = {"default:dirt_with_grass"}, + sidelen = 16, + noise_params = { + offset = 0.036, + scale = 0.022, + spread = {x = 250, y = 250, z = 250}, + seed = 2, + octaves = 3, + persist = 0.66 + }, + biomes = {"deciduous_forest", "cold_deciduous_forest", "low_deciduous_forest", "hot_deciduous_forest"}, + y_min = 1, + y_max = 31000, + schematic = minetest.get_modpath("default").."/schematics/apple_tree.mts", + flags = "place_center_x, place_center_z", +}) + +-- Rarer apple tree +minetest.register_decoration({ + deco_type = "schematic", + place_on = {"default:dirt_with_grass"}, + sidelen = 16, + noise_params = { + offset = 0.02, + scale = 0.02, + spread = {x = 250, y = 250, z = 250}, + seed = 45, + octaves = 3, + persist = 0.66 + }, + biomes = {"semi-tropical_forest", "mixed_forest"}, + y_min = 1, + y_max = 31000, + schematic = minetest.get_modpath("default").."/schematics/apple_tree.mts", + flags = "place_center_x, place_center_z", +}) + +-- Jungle tree +minetest.register_decoration({ + deco_type = "schematic", + place_on = {"default:dirt_with_grass", "default:dirt"}, + sidelen = 16, + noise_params = { + offset = 0.09, + scale = -0.04, + spread = {x = 250, y = 250, z = 250}, + seed = 2, + octaves = 3, + persist = 0.66 + }, + biomes = {"rainforest", "mangrove"}, + y_min = 0, + y_max = 31000, + schematic = minetest.get_modpath("default").."/schematics/jungle_tree.mts", + flags = "place_center_x, place_center_z", + rotation = "random", +}) + +-- Rarer jungle tree +minetest.register_decoration({ + deco_type = "schematic", + place_on = {"default:dirt_with_grass", "default:dirt"}, + sidelen = 16, + noise_params = { + offset = 0.03, + scale = -0.02, + spread = {x = 250, y = 250, z = 250}, + seed = 2, + octaves = 3, + persist = 0.66 + }, + biomes = {"semi-tropical_forest"}, + y_min = 0, + y_max = 31000, + schematic = minetest.get_modpath("default").."/schematics/jungle_tree.mts", + flags = "place_center_x, place_center_z", + rotation = "random", +}) + +-- Pine tree +minetest.register_decoration({ + deco_type = "schematic", + place_on = {"default:dirt_with_snow", "default:dirt_with_grass"}, + sidelen = 16, + noise_params = { + offset = 0.036, + scale = 0.022, + spread = {x = 250, y = 250, z = 250}, + seed = 2, + octaves = 3, + persist = 0.66 + }, + biomes = {"taiga", "coniferous_forest"}, + y_min = 2, + y_max = 31000, + schematic = minetest.get_modpath("default").."/schematics/pine_tree.mts", + flags = "place_center_x, place_center_z", +}) + +-- Rarer pine tree +minetest.register_decoration({ + deco_type = "schematic", + place_on = {"default:dirt_with_snow", "default:dirt_with_grass"}, + sidelen = 16, + noise_params = { + offset = 0.020, + scale = -0.020, + spread = {x = 250, y = 250, z = 250}, + seed = 45, + octaves = 3, + persist = 0.66 + }, + biomes = {"mixed_forest"}, + y_min = 2, + y_max = 31000, + schematic = minetest.get_modpath("default").."/schematics/pine_tree.mts", + flags = "place_center_x, place_center_z", +}) + +-- Acacia tree +minetest.register_decoration({ + deco_type = "schematic", + place_on = {"default:dirt_with_dry_grass"}, + sidelen = 16, + noise_params = { + offset = 0, + scale = 0.002, + spread = {x = 250, y = 250, z = 250}, + seed = 2, + octaves = 3, + persist = 0.66 + }, + biomes = {"savanna", "red_savanna"}, + y_min = 1, + y_max = 31000, + schematic = minetest.get_modpath("default").."/schematics/acacia_tree.mts", + flags = "place_center_x, place_center_z", + rotation = "random", +}) + +-- Aspen tree +minetest.register_decoration({ + deco_type = "schematic", + place_on = {"default:dirt_with_grass"}, + sidelen = 16, + noise_params = { + offset = 0.0, + scale = -0.015, + spread = {x = 250, y = 250, z = 250}, + seed = 2, + octaves = 3, + persist = 0.66 + }, + biomes = {"cold_deciduous_forest", "mixed_forest"}, + y_min = 1, + y_max = 31000, + schematic = minetest.get_modpath("default").."/schematics/aspen_tree.mts", + flags = "place_center_x, place_center_z", + rotation = "random", +}) + +-- Papyrus +minetest.register_decoration({ + deco_type = "schematic", + place_on = {"default:dirt"}, + sidelen = 16, + noise_params = { + offset = -0.1, + scale = 0.25, + spread = {x = 200, y = 200, z = 200}, + seed = 354, + octaves = 3, + persist = 0.7 + }, + biomes = {"swamp_shore", "hot_swamp_shore", "mangrove"}, + y_min = 0, + y_max = 0, + schematic = minetest.get_modpath("default").."/schematics/papyrus.mts", +}) + +-- Cactus +minetest.register_decoration({ + deco_type = "simple", + place_on = {"default:desert_sand", "default:sand"}, + sidelen = 16, + noise_params = { + offset = -0.0003, + scale = 0.0009, + spread = {x = 200, y = 200, z = 200}, + seed = 230, + octaves = 3, + persist = 0.6 + }, + biomes = {"desert", "sandstone_desert"}, + y_min = 5, + y_max = 31000, + decoration = "default:cactus", + height = 2, + height_max = 5, +}) + +-- Large cactus +minetest.register_decoration({ + deco_type = "simple", + place_on = {"default:desert_sand"}, + sidelen = 16, + noise_params = { + offset = -0.0001, + scale = 0.0003, + spread = {x = 200, y = 200, z = 200}, + seed = 230, + octaves = 3, + persist = 0.6 + }, + biomes = {"desert"}, + y_min = 5, + y_max = 31000, + decoration = "default:cactus", + height = 2, + height_max = 5, +}) + +-- Dry shrub +minetest.register_decoration({ + deco_type = "simple", + place_on = {"default:desert_sand", "default:dirt_with_snow"}, + sidelen = 16, + noise_params = { + offset = 0, + scale = 0.02, + spread = {x = 200, y = 200, z = 200}, + seed = 7448, + octaves = 3, + persist = 0.6 + }, + biomes = {"gravel_desert", "tundra", "dry_tundra", "sandstone_desert", "desert", "savanna", "red_savanna", "scrub"}, + y_min = 2, + y_max = 31000, + decoration = "default:dry_shrub", +}) diff --git a/depends.txt b/depends.txt new file mode 100644 index 0000000..4ad96d5 --- /dev/null +++ b/depends.txt @@ -0,0 +1 @@ +default diff --git a/init.lua b/init.lua new file mode 100644 index 0000000..29dc304 --- /dev/null +++ b/init.lua @@ -0,0 +1,34 @@ +local path = minetest.get_modpath("biomes") + +minetest.clear_registered_biomes() +minetest.clear_registered_decorations() + +minetest.register_node("biomes:mud", { + description = "Mud", + tiles = {"biomes_mud.png"}, + liquid_viscosity = 8, + liquidtype = "source", + liquid_renewable = false, + liquid_alternative_source = "biomes:mud", + liquid_alternative_flowing = "biomes:mud", + liquid_range = 0, + post_effect_color = {r=115, g=61, b=31, a=255}, + drowning = 1, + walkable = false, + groups = {crumbly = 2}, + sounds = default.node_sound_dirt_defaults(), +}) + +dofile(path .. "/main_biomes.lua") +dofile(path .. "/beach_biomes.lua") +dofile(path .. "/sea_biomes.lua") +dofile(path .. "/decorations.lua") + +minetest.register_biome({ + name = "underground", + node_stone = "default:stone", + y_min = -113, + y_max = -31000, + heat_point = 50, + humidity_point = 50, +}) diff --git a/main_biomes.lua b/main_biomes.lua new file mode 100644 index 0000000..30c3400 --- /dev/null +++ b/main_biomes.lua @@ -0,0 +1,433 @@ +-- 30 main biomes + +-- 1 +minetest.register_biome({ + name = "glacier_1", + node_dust = "default:snowblock", + node_top = "default:ice", + depth_top = 2, + node_stone = "default:stone", + node_water_top = "default:ice", + depth_water_top = 2, + node_river_water = "default:ice", + y_min = -6, + y_max = 31000, + heat_point = -11, + humidity_point = 20, +}) + +-- 2 +minetest.register_biome({ + name = "glacier_2", + node_dust = "default:snowblock", + node_top = "default:snowblock", + depth_top = 3, + node_filler = "default:ice", + depth_filler = 4, + node_stone = "default:stone", + node_water_top = "default:ice", + depth_water_top = 6, + node_river_water = "default:ice", + y_min = 1, + y_max = 31000, + heat_point = -19, + humidity_point = 40, +}) + +-- 3 +minetest.register_biome({ + name = "glacier_3", + node_dust = "default:snowblock", + node_top = "default:snowblock", + depth_top = 5, + node_filler = "default:ice", + depth_filler = 12, + node_stone = "default:stone", + node_water_top = "default:ice", + depth_water_top = 10, + node_river_water = "default:ice", + y_min = 1, + y_max = 31000, + heat_point = -27, + humidity_point = 80, +}) + +-- 4 +minetest.register_biome({ + name = "taiga", + node_dust = "default:snow", + node_top = "default:dirt_with_snow", + depth_top = 1, + node_filler = "default:dirt", + depth_filler = 5, + node_stone = "default:stone", + y_min = 4, + y_max = 31000, + heat_point = 11, + humidity_point = 67, +}) + +-- 5 +minetest.register_biome({ + name = "tundra", + node_top = "default:dirt_with_snow", + depth_top = 1, + node_filler = "default:dirt", + depth_filler = 2, + node_stone = "default:stone", + y_min = 3, + y_max = 31000, + heat_point = 4, + humidity_point = 32, +}) + +-- 6 +minetest.register_biome({ + name = "coniferous_forest", + node_top = "default:dirt_with_grass", + depth_top = 1, + node_filler = "default:dirt", + depth_filler = 2, + node_stone = "default:stone", + y_min = 5, + y_max = 31000, + heat_point = 22, + humidity_point = 71, +}) + +-- 7 +minetest.register_biome({ + name = "cold_gravel_desert", + node_dust = "default:snow", + node_top = "default:gravel", + depth_top = 1, + node_filler = "default:gravel", + depth_filler = 1, + node_stone = "default:stone", + y_min = -6, + y_max = 31000, + heat_point = -2, + humidity_point = 2, +}) + +-- 8 +minetest.register_biome({ + name = "gravel_desert", + node_top = "default:gravel", + depth_top = 1, + node_filler = "default:gravel", + depth_filler = 2, + node_stone = "default:stone", + y_min = 2, + y_max = 31000, + heat_point = 20, + humidity_point = -2, +}) + +-- 9 +minetest.register_biome({ + name = "dry_tundra", + node_top = "default:dirt_with_snow", + depth_top = 1, + node_filler = "default:dirt", + depth_filler = 2, + node_stone = "default:stone", + y_min = 2, + y_max = 31000, + heat_point = 4, + humidity_point = 12, +}) + +-- 10 +minetest.register_biome({ + name = "cold_desert", + node_stone = "default:stone", + y_min = 3, + y_max = 31000, + heat_point = 32, + humidity_point = -3, +}) + +-- 11 +minetest.register_biome({ + name = "swamp", + node_top = "default:dirt_with_grass", + depth_top = 1, + node_filler = "default:dirt", + depth_filler = 3, + node_stone = "default:stone", + y_min = 1, + y_max = 31000, + heat_point = 30, + humidity_point = 114, +}) + +-- 12 +minetest.register_biome({ + name = "icy_swamp", + node_dust = "default:snow", + node_top = "default:dirt_with_snow", + depth_top = 3, + node_filler = "default:dirt", + depth_filler = 3, + node_stone = "default:stone", + node_water_top = "default:ice", + depth_water_top = 1, + node_river_water = "default:ice", + y_min = 1, + y_max = 31000, + heat_point = -10, + humidity_point = 107, +}) + +-- 13 +minetest.register_biome({ + name = "stone_grasslands", + node_top = "default:dirt_with_grass", + depth_top = 1, + node_filler = "default:dirt", + depth_filler = 1, + node_stone = "default:stone", + y_min = 4, + y_max = 31000, + heat_point = 29, + humidity_point = 22, +}) + +-- 14 +minetest.register_biome({ + name = "mixed_forest", + node_top = "default:dirt_with_grass", + depth_top = 1, + node_filler = "default:dirt", + depth_filler = 2, + node_stone = "default:stone", + y_min = 5, + y_max = 31000, + heat_point = 24, + humidity_point = 56, +}) + +-- 15 +minetest.register_biome({ + name = "cold_deciduous_forest", + node_top = "default:dirt_with_grass", + depth_top = 1, + node_filler = "default:dirt", + depth_filler = 2, + node_stone = "default:stone", + y_min = 4, + y_max = 31000, + heat_point = 31, + humidity_point = 48, +}) + +-- 16 +minetest.register_biome({ + name = "deciduous_forest", + node_top = "default:dirt_with_grass", + depth_top = 1, + node_filler = "default:dirt", + depth_filler = 3, + node_stone = "default:stone", + y_min = 5, + y_max = 31000, + heat_point = 45, + humidity_point = 65, +}) + +-- 17 +minetest.register_biome({ + name = "bushes", + node_top = "default:dirt_with_grass", + depth_top = 1, + node_filler = "default:dirt", + depth_filler = 1, + node_stone = "default:stone", + y_min = 7, + y_max = 31000, + heat_point = 43, + humidity_point = 30, +}) + +-- 18 +minetest.register_biome({ + name = "scrub", + node_top = "default:dirt_with_dry_grass", + depth_top = 1, + node_filler = "default:dirt", + depth_filler = 1, + node_stone = "default:stone", + y_min = 8, + y_max = 31000, + heat_point = 57, + humidity_point = 25, +}) + +-- 19 +minetest.register_biome({ + name = "hot_pine_forest", + node_top = "default:dirt_with_grass", + depth_top = 1, + node_filler = "default:dirt", + depth_filler = 1, + node_stone = "default:stone", + y_min = 6, + y_max = 31000, + heat_point = 65, + humidity_point = 35, +}) + +-- 20 +minetest.register_biome({ + name = "desert", + node_top = "default:desert_sand", + depth_top = 1, + node_filler = "default:desert_sand", + depth_filler = 3, + node_stone = "default:desert_stone", + y_min = 7, + y_max = 31000, + heat_point = 89, + humidity_point = 9, +}) + +-- 21 +minetest.register_biome({ + name = "sandstone_grasslands", + node_top = "default:dirt_with_grass", + depth_top = 1, + node_filler = "default:dirt", + depth_filler = 2, + node_stone = "default:sandstone", + y_min = 3, + y_max = 31000, + heat_point = 55, + humidity_point = 15, +}) + +-- 22 +minetest.register_biome({ + name = "savanna", + node_top = "default:dirt_with_dry_grass", + depth_top = 1, + node_filler = "default:dirt", + depth_filler = 1, + node_stone = "default:stone", + y_min = 6, + y_max = 31000, + heat_point = 80, + humidity_point = 24, +}) + +-- 23 +minetest.register_biome({ + name = "desert_stone_grasslands", + node_top = "default:dirt_with_grass", + depth_top = 1, + node_filler = "default:dirt", + depth_filler = 1, + node_stone = "default:desert_stone", + y_min = 4, + y_max = 31000, + heat_point = 90, + humidity_point = 41, +}) + +-- 24 +minetest.register_biome({ + name = "red_savanna", + node_top = "default:dirt_with_dry_grass", + depth_top = 1, + node_filler = "default:dirt", + depth_filler = 1, + node_stone = "default:desert_stone", + y_min = 5, + y_max = 31000, + heat_point = 90, + humidity_point = 31, +}) + +-- 25 +minetest.register_biome({ + name = "semi-tropical_forest", + node_top = "default:dirt_with_grass", + depth_top = 1, + node_filler = "default:dirt", + depth_filler = 3, + node_stone = "default:stone", + y_min = 4, + y_max = 31000, + heat_point = 72, + humidity_point = 61, +}) + +-- 26 +minetest.register_biome({ + name = "rainforest", + node_top = "default:dirt_with_grass", + depth_top = 1, + node_filler = "default:dirt", + depth_filler = 4, + node_stone = "default:stone", + y_min = 1, + y_max = 31000, + heat_point = 89, + humidity_point = 76, +}) + +-- 27 +minetest.register_biome({ + name = "sandstone_desert", + node_top = "default:desert_sand", + depth_top = 1, + node_filler = "default:desert_sand", + depth_filler = 1, + node_stone = "default:sandstone", + y_min = 6, + y_max = 31000, + heat_point = 60, + humidity_point = 0, +}) + +-- 28 +minetest.register_biome({ + name = "low_deciduous_forest", + node_top = "default:dirt_with_grass", + depth_top = 1, + node_filler = "default:dirt", + depth_filler = 2, + node_stone = "default:stone", + y_min = 6, + y_max = 31000, + heat_point = 40, + humidity_point = 40, +}) + +-- 29 +minetest.register_biome({ + name = "hot_deciduous_forest", + node_top = "default:dirt_with_grass", + depth_top = 1, + node_filler = "default:dirt", + depth_filler = 2, + node_stone = "default:stone", + y_min = 5, + y_max = 31000, + heat_point = 61, + humidity_point = 58, +}) + +-- 30 +minetest.register_biome({ + name = "hot_swamp", + node_top = "default:dirt_with_grass", + depth_top = 1, + node_filler = "default:dirt", + depth_filler = 4, + node_stone = "default:stone", + y_min = 1, + y_max = 31000, + heat_point = 83, + humidity_point = 116, +}) diff --git a/mod.conf b/mod.conf new file mode 100644 index 0000000..0028f11 --- /dev/null +++ b/mod.conf @@ -0,0 +1 @@ +name = biomes diff --git a/sea_biomes.lua b/sea_biomes.lua new file mode 100644 index 0000000..71684e8 --- /dev/null +++ b/sea_biomes.lua @@ -0,0 +1,53 @@ +-- 1 +minetest.register_biome({ + name = "pack_ice", + node_dust = "default:snow", + node_top = "default:gravel", + depth_top = 1, + node_stone = "default:stone", + node_water_top = "default:ice", + depth_water_top = 5, + node_river_water = "default:ice", + y_min = -112, + y_max = -6, + heat_point = -24, + humidity_point = 41, +}) + +-- 2 +minetest.register_biome({ + name = "cold_sea", + node_top = "default:gravel", + depth_top = 2, + node_stone = "default:stone", + y_min = -112, + y_max = -6, + heat_point = 20, + humidity_point = 47, +}) + +-- 3 +minetest.register_biome({ + name = "tempered_sea", + node_top = "default:sand", + depth_top = 2, + node_stone = "default:stone", + y_min = -112, + y_max = -6, + heat_point = 41, + humidity_point = 48, +}) + +-- 4 +minetest.register_biome({ + name = "hot_sea", + node_top = "default:sand", + depth_top = 1, + node_filler = "default:sand", + depth_filler = 2, + node_stone = "default:stone", + y_min = -112, + y_max = -6, + heat_point = 89, + humidity_point = 51, +}) diff --git a/textures/biomes_mud.png b/textures/biomes_mud.png new file mode 100644 index 0000000000000000000000000000000000000000..f1fefad32aebf4bfc2092410b06a37cbc4dc21c6 GIT binary patch literal 324 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!63?wyl`GbL!aez;VYm^E@ycT?=T^vIsF7x(#3%M9_FwOnZ^FaONUw`Yo z7?aq5Q<}%CKROk5W)*g8C{+livEH=KTy^dIpY7Xt1MVwCXs)ss)Cjs^snM|Z(LH^? zr5D>z3aa%_wAkV=tGbTe?dOYq*NeQW#6Cax{Qftu_!PO*&pd?ny(&18rA}6d9-px* znvrkzZgd)zvBp5_eR?v P=w1d-S3j3^P6