VoxeLibre/mods/MAPGEN/mcl_biomes/init.lua

261 lines
5.5 KiB
Lua
Raw Normal View History

--
2017-02-23 00:15:47 +01:00
-- Register biomes for mapgens other than v6
-- EXPERIMENTAL!
--
2017-02-23 00:15:47 +01:00
local function register_classic_superflat_biome()
-- Classic Superflat: bedrock (not part of biome), 2 dirt, 1 grass block
minetest.register_biome({
name = "flat",
node_top = "mcl_core:dirt_with_grass",
depth_top = 1,
node_filler = "mcl_core:dirt",
2017-03-21 03:28:40 +01:00
depth_filler = 3,
y_min = -512,
y_max = 512,
2017-02-23 00:15:47 +01:00
heat_point = 50,
humidity_point = 50,
})
end
2017-02-23 00:15:47 +01:00
-- All mapgens except mgv6, flat and singlenode
local function register_biomes()
minetest.register_biome({
name = "ice_plains",
node_dust = "mcl_core:snow",
2017-05-15 21:09:06 +02:00
node_top = "mcl_core:dirt_with_grass_snow",
depth_top = 1,
node_filler = "mcl_core:dirt",
depth_filler = 3,
node_riverbed = "mcl_core:dirt",
depth_riverbed = 2,
y_min = 1,
y_max = 31000,
heat_point = 5,
humidity_point = 50,
})
minetest.register_biome({
name = "ice_plains2",
2017-05-15 21:09:06 +02:00
node_dust = "mcl_core:snowblock",
node_top = "mcl_core:dirt_with_grass_snow",
depth_top = 1,
node_filler = "mcl_core:dirt",
depth_filler = 3,
node_riverbed = "mcl_core:dirt",
depth_riverbed = 2,
y_min = 1,
y_max = 31000,
heat_point = 0,
humidity_point = 50,
})
minetest.register_biome({
name = "plains",
node_top = "mcl_core:dirt_with_grass",
depth_top = 1,
node_filler = "mcl_core:dirt",
depth_filler = 3,
node_riverbed = "mcl_core:sand",
depth_riverbed = 2,
y_min = 1,
y_max = 31000,
heat_point = 40,
humidity_point = 50,
})
minetest.register_biome({
name = "beach",
node_top = "mcl_core:sand",
depth_top = 1,
node_filler = "mcl_core:sand",
depth_filler = 3,
node_riverbed = "mcl_core:sand",
depth_riverbed = 2,
y_min = 1,
y_max = 5,
heat_point = 40,
humidity_point = 50,
})
minetest.register_biome({
name = "desert",
node_top = "mcl_core:sand",
depth_top = 1,
node_filler = "mcl_core:sand",
depth_filler = 3,
node_riverbed = "mcl_core:sand",
depth_riverbed = 2,
2017-03-05 01:57:04 +01:00
node_stone = "mcl_core:sandstone",
y_min = 1,
y_max = 31000,
heat_point = 100,
humidity_point = 50,
})
minetest.register_biome({
name = "mesa",
node_top = "mcl_core:redsand",
depth_top = 1,
node_filler = "mcl_core:hardened_clay",
depth_filler = 3,
node_riverbed = "mcl_core:redsand",
depth_riverbed = 2,
2017-03-05 01:57:04 +01:00
node_stone = "mcl_core:hardened_clay",
y_min = 1,
y_max = 5,
heat_point = 100,
humidity_point = 50,
})
minetest.register_biome({
name = "mesa2",
node_top = "mcl_colorblocks:hardened_clay",
depth_top = 1,
node_filler = "mcl_colorblocks:hardened_clay_orange",
depth_filler = 1,
node_riverbed = "mcl_core:redsand",
depth_riverbed = 2,
2017-03-05 01:57:04 +01:00
node_stone = "mcl_core:hardened_clay",
y_min = 1,
y_max = 5,
heat_point = 100,
humidity_point = 50,
})
minetest.register_biome({
name = "underground",
y_min = -31000,
y_max = -113,
heat_point = 50,
humidity_point = 50,
})
end
-- All mapgens except mgv6
local function register_grass_decoration(offset, scale)
minetest.register_decoration({
deco_type = "simple",
place_on = {"mcl_core: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 = {"plains"},
y_min = 1,
y_max = 31000,
decoration = "mcl_flowers:tallgrass",
})
end
local function register_decorations()
-- Cactus
minetest.register_decoration({
deco_type = "simple",
2017-06-12 22:05:16 +02:00
place_on = {"mcl_core:sand", "mcl_core:redsand"},
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"},
y_min = 5,
y_max = 31000,
decoration = "mcl_core:cactus",
height = 1,
height_max = 3,
})
-- Papyrus
minetest.register_decoration({
deco_type = "schematic",
place_on = {"mcl_core:dirt", "mcl_core:dirt_with_grass"},
sidelen = 16,
noise_params = {
offset = -0.3,
scale = 0.7,
spread = {x = 200, y = 200, z = 200},
seed = 354,
octaves = 3,
persist = 0.7
},
biomes = {"plains", "beach", "desert"},
y_min = 0,
y_max = 0,
decoration = "mcl_core:reeds",
height = 1,
height_max = 3,
})
-- Grasses
register_grass_decoration(-0.03, 0.09)
register_grass_decoration(-0.015, 0.075)
register_grass_decoration(0, 0.06)
register_grass_decoration(0.015, 0.045)
register_grass_decoration(0.03, 0.03)
register_grass_decoration(0.01, 0.05)
register_grass_decoration(0.03, 0.03)
register_grass_decoration(0.05, 0.01)
register_grass_decoration(0.07, -0.01)
register_grass_decoration(0.09, -0.03)
-- Dead bushes
minetest.register_decoration({
deco_type = "simple",
place_on = {"mcl_core:sand", "mcl_core:redsand"},
sidelen = 16,
noise_params = {
offset = 0,
scale = 0.02,
spread = {x = 200, y = 200, z = 200},
seed = 329,
octaves = 3,
persist = 0.6
},
biomes = {"desert"},
y_min = 2,
y_max = 31000,
decoration = "mcl_core:deadbush",
height = 1,
})
end
--
-- Detect mapgen to select functions
--
local mg_name = minetest.get_mapgen_setting("mg_name")
2017-02-23 00:15:47 +01:00
if mg_name ~= "v6" and mg_name ~= "flat" then
2017-03-21 03:28:40 +01:00
minetest.clear_registered_biomes()
minetest.clear_registered_decorations()
minetest.clear_registered_schematics()
register_biomes()
register_decorations()
2017-02-23 00:15:47 +01:00
elseif mg_name == "flat" then
-- Implementation of Minecraft's Superflat mapgen, classic style
2017-02-23 00:31:31 +01:00
minetest.clear_registered_biomes()
minetest.clear_registered_decorations()
minetest.clear_registered_schematics()
2017-02-23 00:15:47 +01:00
register_classic_superflat_biome()
end