aestivalserver-mods/illuna_aestival/src/mapgen.lua

133 lines
3.6 KiB
Lua
Executable File

local mod = "illuna_aestival:"
local path = minetest.get_modpath("illuna_aestival")
local dpath = minetest.get_modpath("default") .. "/schematics/"
path = path .. "/schematics/"
local add_node = function(a, b, c, d, e, f, g, h, i, j)
if j ~= 1 then return end
minetest.register_decoration({
deco_type = "simple",
place_on = a,
sidelen = 80,
fill_ratio = b,
biomes = c,
y_min = d,
y_max = e,
decoration = f,
height_max = g,
spawn_by = h,
num_spawn_by = i,
rotation = "random",
})
end
add_node({"ethereal:mesa_dirt"}, 0.035, {"mesa"}, 1, 100, {"bakedclay:delphinium", "bakedclay:thistle", "bakedclay:lazarus", "bakedclay:mannagrass"}, nil, nil, nil, 1)
add_node({"bakedclay:red", "bakedclay:orange"}, 0.015, {"mesa"}, 1, 100, {"default:dry_shrub"}, nil, nil, nil, 1)
add_node({"default:sand", "default:desert_sand", "default:dirt_with_dry_grass"}, 0.002, {"desert_ocean", "desert", "mesa_ocean", "mesa", "prairie_ocean", "prairie", "sandstone_ocean", "sandstone", "savannah_ocean", "savannah", "fiery_ocean"}, 5, 120, {"ethereal:dornbush"}, nil, nil, nil, 1)
add_node({"default:dirt_with_dry_grass"}, 0.10, {"mesa"}, 1, 100, {"default:dry_grass_2",
"default:dry_grass_3", "default:dry_grass_4", "default:dry_grass_5"}, nil, nil, nil, 1)
add_node({"ethereal:mesa_dirt"}, 0.10, {"mesa"}, 1, 100, {"default:junglegrass"}, nil, nil, nil, 1)
add_node({"ethereal:grove_dirt","ethereal:jungle_dirt","ethereal:mesa_dirt"}, 0.2, {"grove","junglee","mesa"}, 1, 100, {"ethereal:fern"}, nil, nil, nil, 1)
local add_biome = function(a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p)
if p ~= 1 then return end
minetest.register_biome({
name = a,
node_dust = b,
node_top = c,
depth_top = d,
node_filler = e,
depth_filler = f,
node_stone = g,
node_water_top = h,
depth_water_top = i,
node_water = j,
node_river_water = k,
y_min = l,
y_max = m,
heat_point = n,
humidity_point = o,
})
end
add_biome("mesa", nil, "ethereal:mesa_dirt", 1, "bakedclay:orange", 15,
nil, nil, nil, nil, nil, 3, 92, 28, 100, 1)
add_biome("mesa_ocean", nil, "default:gravel", 1, "default:gravel", 2,
nil, nil, nil, nil, nil, -192, 2, 28, 100, 1)
minetest.register_decoration({
deco_type = "schematic",
place_on = {"ethereal:mesa_dirt"},
sidelen = 80,
fill_ratio = 0.0035,
biomes = mesa,
rotation = "random",
y_min = 6,
y_max = 100,
schematic = path .. "redwood_tree.mts",
flags = "place_center_y, place_center_x, place_center_z",
})
minetest.register_decoration({
deco_type = "schematic",
place_on = {"default:dirt_with_dry_grass"},
sidelen = 16,
noise_params = {
offset = -0.004,
scale = 0.01,
spread = {x = 100, y = 100, z = 100},
seed = 90155,
octaves = 3,
persist = 0.7,
},
biomes = {"mesa"},
y_min = 1,
y_max = 31000,
schematic = dpath .. "/acacia_bush.mts",
flags = "place_center_x, place_center_z",
})
local add_schem = function(a, b, c, d, e, f, g, h)
minetest.register_decoration({
deco_type = "schematic",
place_on = a,
sidelen = 80,
fill_ratio = b,
biomes = c,
y_min = d,
y_max = e,
schematic = f,
rotation = "random",
flags = "place_center_x, place_center_z",
spawn_by = g,
num_spawn_by = h,
})
end
add_schem({"ethereal:mesa_dirt"}, 0.04, {"mesa"}, 1, 100, path .. "douglasie.mts")
dofile(path .. "astroportal.lua")
minetest.register_decoration({
name = "Ancient broken astro portal",
deco_type = "schematic",
place_on = {"default:sand","default:desert_sand","default:silver_sand"},
sidelen = 80,
fill_ratio = 0.00018,
biomes = {"desert","desert_ocean","cold_desert"},
y_max = 2300,
y_min = 1250,
schematic = illuna.astroportal,
place_offset_y = 0,
rotation = "random",
})