2 Add granual biome settings

This commit is contained in:
Juraj Vajda 2023-02-20 11:24:04 -05:00
parent db4a38233d
commit 2f79be8a51
33 changed files with 5103 additions and 3468 deletions

View File

@ -9,6 +9,7 @@ It also adds structures, dungeons with loot chests, and custom skyboxes based on
## Features ## Features
* granual biome settings
* custom sounds for some blocks, biomes * custom sounds for some blocks, biomes
* custom textures * custom textures
* custom biomes and cavern biomes * custom biomes and cavern biomes

141
api.lua
View File

@ -933,7 +933,146 @@ Everness = {
} }
}, },
} }
} },
settings = {
biomes = {
everness_coral_forest = {
enabled = minetest.settings:get_bool('everness_coral_forest', true),
y_max = tonumber(minetest.settings:get('everness_coral_forest_y_max')) or 31000,
y_min = tonumber(minetest.settings:get('everness_coral_forest_y_min')) or 6,
},
everness_coral_forest_dunes = {
enabled = minetest.settings:get_bool('everness_coral_forest_dunes', true),
y_max = tonumber(minetest.settings:get('everness_coral_forest_dunes_y_max')) or 5,
y_min = tonumber(minetest.settings:get('everness_coral_forest_dunes_y_min')) or 4,
},
everness_coral_forest_ocean = {
enabled = minetest.settings:get_bool('everness_coral_forest_ocean', true),
y_max = tonumber(minetest.settings:get('everness_coral_forest_ocean_y_max')) or 3,
y_min = tonumber(minetest.settings:get('everness_coral_forest_ocean_y_min')) or -255,
},
everness_coral_forest_under = {
enabled = minetest.settings:get_bool('everness_coral_forest_under', true),
y_max = tonumber(minetest.settings:get('everness_coral_forest_under_y_max')) or -256,
y_min = tonumber(minetest.settings:get('everness_coral_forest_under_y_min')) or -31000,
},
everness_frosted_icesheet = {
enabled = minetest.settings:get_bool('everness_frosted_icesheet', true),
y_max = tonumber(minetest.settings:get('everness_frosted_icesheet_y_max')) or 31000,
y_min = tonumber(minetest.settings:get('everness_frosted_icesheet_y_min')) or -8,
},
everness_frosted_icesheet_ocean = {
enabled = minetest.settings:get_bool('everness_frosted_icesheet_ocean', true),
y_max = tonumber(minetest.settings:get('everness_frosted_icesheet_ocean_y_max')) or -9,
y_min = tonumber(minetest.settings:get('everness_frosted_icesheet_ocean_y_min')) or -255,
},
everness_frosted_icesheet_under = {
enabled = minetest.settings:get_bool('everness_frosted_icesheet_under', true),
y_max = tonumber(minetest.settings:get('everness_frosted_icesheet_under_y_max')) or -256,
y_min = tonumber(minetest.settings:get('everness_frosted_icesheet_under_y_min')) or -31000,
},
everness_cursed_lands = {
enabled = minetest.settings:get_bool('everness_cursed_lands', true),
y_max = tonumber(minetest.settings:get('everness_cursed_lands_y_max')) or 31000,
y_min = tonumber(minetest.settings:get('everness_cursed_lands_y_min')) or 6,
},
everness_cursed_lands_dunes = {
enabled = minetest.settings:get_bool('everness_cursed_lands_dunes', true),
y_max = tonumber(minetest.settings:get('everness_cursed_lands_dunes_y_max')) or 5,
y_min = tonumber(minetest.settings:get('everness_cursed_lands_dunes_y_min')) or 1,
},
everness_cursed_lands_swamp = {
enabled = minetest.settings:get_bool('everness_cursed_lands_swamp', true),
y_max = tonumber(minetest.settings:get('everness_cursed_lands_swamp_y_max')) or 0,
y_min = tonumber(minetest.settings:get('everness_cursed_lands_swamp_y_min')) or -1,
},
everness_cursed_lands_ocean = {
enabled = minetest.settings:get_bool('everness_cursed_lands_ocean', true),
y_max = tonumber(minetest.settings:get('everness_cursed_lands_ocean_y_max')) or -2,
y_min = tonumber(minetest.settings:get('everness_cursed_lands_ocean_y_min')) or -255,
},
everness_cursed_lands_under = {
enabled = minetest.settings:get_bool('everness_cursed_lands_under', true),
y_max = tonumber(minetest.settings:get('everness_cursed_lands_under_y_max')) or -256,
y_min = tonumber(minetest.settings:get('everness_cursed_lands_under_y_min')) or -31000,
},
everness_crystal_forest = {
enabled = minetest.settings:get_bool('everness_crystal_forest', true),
y_max = tonumber(minetest.settings:get('everness_crystal_forest_y_max')) or 31000,
y_min = tonumber(minetest.settings:get('everness_crystal_forest_y_min')) or 6,
},
everness_crystal_forest_dunes = {
enabled = minetest.settings:get_bool('everness_crystal_forest_dunes', true),
y_max = tonumber(minetest.settings:get('everness_crystal_forest_dunes_y_max')) or 5,
y_min = tonumber(minetest.settings:get('everness_crystal_forest_dunes_y_min')) or 1,
},
everness_crystal_forest_shore = {
enabled = minetest.settings:get_bool('everness_crystal_forest_shore', true),
y_max = tonumber(minetest.settings:get('everness_crystal_forest_shore_y_max')) or 0,
y_min = tonumber(minetest.settings:get('everness_crystal_forest_shore_y_min')) or -1,
},
everness_crystal_forest_ocean = {
enabled = minetest.settings:get_bool('everness_crystal_forest_ocean', true),
y_max = tonumber(minetest.settings:get('everness_crystal_forest_ocean_y_max')) or -2,
y_min = tonumber(minetest.settings:get('everness_crystal_forest_ocean_y_min')) or -255,
},
everness_crystal_forest_under = {
enabled = minetest.settings:get_bool('everness_crystal_forest_under', true),
y_max = tonumber(minetest.settings:get('everness_crystal_forest_under_y_max')) or -256,
y_min = tonumber(minetest.settings:get('everness_crystal_forest_under_y_min')) or -31000,
},
everness_bamboo_forest = {
enabled = minetest.settings:get_bool('everness_bamboo_forest', true),
y_max = tonumber(minetest.settings:get('everness_bamboo_forest_y_max')) or 31000,
y_min = tonumber(minetest.settings:get('everness_bamboo_forest_y_min')) or 1,
},
everness_bamboo_forest_under = {
enabled = minetest.settings:get_bool('everness_bamboo_forest_under', true),
y_max = tonumber(minetest.settings:get('everness_bamboo_forest_under_y_max')) or -256,
y_min = tonumber(minetest.settings:get('everness_bamboo_forest_under_y_min')) or -31000,
},
everness_forsaken_desert = {
enabled = minetest.settings:get_bool('everness_forsaken_desert', true),
y_max = tonumber(minetest.settings:get('everness_forsaken_desert_y_max')) or 31000,
y_min = tonumber(minetest.settings:get('everness_forsaken_desert_y_min')) or 4,
},
everness_forsaken_desert_ocean = {
enabled = minetest.settings:get_bool('everness_forsaken_desert_ocean', true),
y_max = tonumber(minetest.settings:get('everness_forsaken_desert_ocean_y_max')) or 3,
y_min = tonumber(minetest.settings:get('everness_forsaken_desert_ocean_y_min')) or -8,
},
everness_forsaken_desert_under = {
enabled = minetest.settings:get_bool('everness_forsaken_desert_under', true),
y_max = tonumber(minetest.settings:get('everness_forsaken_desert_under_y_max')) or -256,
y_min = tonumber(minetest.settings:get('everness_forsaken_desert_under_y_min')) or -31000,
},
everness_baobab_savanna = {
enabled = minetest.settings:get_bool('everness_baobab_savanna', true),
y_max = tonumber(minetest.settings:get('everness_baobab_savanna_y_max')) or 31000,
y_min = tonumber(minetest.settings:get('everness_baobab_savanna_y_min')) or 1,
},
everness_forsaken_tundra = {
enabled = minetest.settings:get_bool('everness_forsaken_tundra', true),
y_max = tonumber(minetest.settings:get('everness_forsaken_tundra_y_max')) or 31000,
y_min = tonumber(minetest.settings:get('everness_forsaken_tundra_y_min')) or 2,
},
everness_forsaken_tundra_beach = {
enabled = minetest.settings:get_bool('everness_forsaken_tundra_beach', true),
y_max = tonumber(minetest.settings:get('everness_forsaken_tundra_beach_y_max')) or 1,
y_min = tonumber(minetest.settings:get('everness_forsaken_tundra_beach_y_min')) or -3,
},
everness_forsaken_tundra_ocean = {
enabled = minetest.settings:get_bool('everness_forsaken_tundra_ocean', true),
y_max = tonumber(minetest.settings:get('everness_forsaken_tundra_ocean_y_max')) or -4,
y_min = tonumber(minetest.settings:get('everness_forsaken_tundra_ocean_y_min')) or -255,
},
everness_forsaken_tundra_under = {
enabled = minetest.settings:get_bool('everness_forsaken_tundra_under', true),
y_max = tonumber(minetest.settings:get('everness_forsaken_tundra_under_y_max')) or -256,
y_min = tonumber(minetest.settings:get('everness_forsaken_tundra_under_y_min')) or -31000,
},
}
},
} }
function Everness.grow_cactus(self, pos, node, params) function Everness.grow_cactus(self, pos, node, params)

123
init.lua
View File

@ -23,17 +23,127 @@ local mod_start_time = minetest.get_us_time()
dofile(path .. '/api.lua') dofile(path .. '/api.lua')
dofile(path .. '/nodes.lua') dofile(path .. '/nodes.lua')
dofile(path .. '/nodes.lua') dofile(path .. '/bamboo.lua')
dofile(path .. '/functions.lua')
dofile(path .. '/trees.lua')
dofile(path .. '/vines.lua')
dofile(path .. '/mapgen.lua')
if Everness.settings.biomes.everness_bamboo_forest_under.enabled then
dofile(path .. '/mapgen_bamboo_forest_under.lua')
end
if Everness.settings.biomes.everness_bamboo_forest.enabled then
dofile(path .. '/mapgen_bamboo_forest.lua')
end
if Everness.settings.biomes.everness_baobab_savanna.enabled then
dofile(path .. '/mapgen_baobab_savanna.lua')
end
if Everness.settings.biomes.everness_coral_forest_dunes.enabled then
dofile(path .. '/mapgen_coral_forest_dunes.lua')
end
if Everness.settings.biomes.everness_coral_forest_ocean.enabled then
dofile(path .. '/mapgen_coral_forest_ocean.lua')
end
if Everness.settings.biomes.everness_coral_forest_under.enabled then
dofile(path .. '/mapgen_coral_forest_under.lua')
end
if Everness.settings.biomes.everness_coral_forest.enabled then
dofile(path .. '/mapgen_coral_forest.lua')
end
if Everness.settings.biomes.everness_crystal_forest_dunes.enabled then
dofile(path .. '/mapgen_crystal_forest_dunes.lua')
end
if Everness.settings.biomes.everness_crystal_forest_ocean.enabled then
dofile(path .. '/mapgen_crystal_forest_ocean.lua')
end
if Everness.settings.biomes.everness_crystal_forest_shore.enabled then
dofile(path .. '/mapgen_crystal_forest_shore.lua')
end
if Everness.settings.biomes.everness_crystal_forest_under.enabled then
dofile(path .. '/mapgen_crystal_forest_under.lua')
end
if Everness.settings.biomes.everness_crystal_forest.enabled then
dofile(path .. '/mapgen_crystal_forest.lua')
end
if Everness.settings.biomes.everness_cursed_lands_dunes.enabled then
dofile(path .. '/mapgen_cursed_lands_dunes.lua')
end
if Everness.settings.biomes.everness_cursed_lands_ocean.enabled then
dofile(path .. '/mapgen_cursed_lands_ocean.lua')
end
if Everness.settings.biomes.everness_cursed_lands_swamp.enabled then
dofile(path .. '/mapgen_cursed_lands_swamp.lua')
end
if Everness.settings.biomes.everness_cursed_lands_under.enabled then
dofile(path .. '/mapgen_cursed_lands_under.lua')
end
if Everness.settings.biomes.everness_cursed_lands.enabled then
dofile(path .. '/mapgen_cursed_lands.lua')
end
if Everness.settings.biomes.everness_forsaken_desert_ocean.enabled then
dofile(path .. '/mapgen_forsaken_desert_ocean.lua')
end
if Everness.settings.biomes.everness_forsaken_desert_under.enabled then
dofile(path .. '/mapgen_forsaken_desert_under.lua')
end
if Everness.settings.biomes.everness_forsaken_desert.enabled then
dofile(path .. '/mapgen_forsaken_desert.lua')
end
if Everness.settings.biomes.everness_forsaken_tundra_beach.enabled then
dofile(path .. '/mapgen_forsaken_tundra_beach.lua')
end
if Everness.settings.biomes.everness_forsaken_tundra_ocean.enabled then
dofile(path .. '/mapgen_forsaken_tundra_ocean.lua')
end
if Everness.settings.biomes.everness_forsaken_tundra_under.enabled then
dofile(path .. '/mapgen_forsaken_tundra_under.lua')
end
if Everness.settings.biomes.everness_forsaken_tundra.enabled then
dofile(path .. '/mapgen_forsaken_tundra.lua')
end
if Everness.settings.biomes.everness_frosted_icesheet_ocean.enabled then
dofile(path .. '/mapgen_frosted_icesheet_ocean.lua')
end
if Everness.settings.biomes.everness_frosted_icesheet_under.enabled then
dofile(path .. '/mapgen_frosted_icesheet_under.lua')
end
if Everness.settings.biomes.everness_frosted_icesheet.enabled then
dofile(path .. '/mapgen_frosted_icesheet.lua')
end
dofile(path .. '/mapgen_after.lua')
if minetest.get_modpath('xpanes') and minetest.global_exists('xpanes') then if minetest.get_modpath('xpanes') and minetest.global_exists('xpanes') then
dofile(path .. '/panes.lua') dofile(path .. '/panes.lua')
end end
dofile(path .. '/bamboo.lua')
dofile(path .. '/functions.lua')
dofile(path .. '/trees.lua')
dofile(path .. '/mapgen.lua')
if minetest.get_modpath('stairs') and minetest.global_exists('stairs') then if minetest.get_modpath('stairs') and minetest.global_exists('stairs') then
dofile(path .. '/stairs.lua') dofile(path .. '/stairs.lua')
end end
@ -48,7 +158,6 @@ if minetest.get_modpath('doors') and minetest.global_exists('doors') then
dofile(path .. '/doors.lua') dofile(path .. '/doors.lua')
end end
dofile(path .. '/vines.lua')
dofile(path .. '/tools.lua') dofile(path .. '/tools.lua')
dofile(path .. '/craftitems.lua') dofile(path .. '/craftitems.lua')
dofile(path .. '/crafting.lua') dofile(path .. '/crafting.lua')

3460
mapgen.lua

File diff suppressed because it is too large Load Diff

406
mapgen_after.lua Normal file
View File

@ -0,0 +1,406 @@
--[[
Everness. Never ending discovery in Everness mapgen.
Copyright (C) 2023 SaKeL <juraj.vajda@gmail.com>
This library is free software; you can redistribute it and/or
modify it under the terms of the GNU Lesser General Public
License as published by the Free Software Foundation; either
version 2.1 of the License, or (at your option) any later version.
This library is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
Lesser General Public License for more details.
You should have received a copy of the GNU Lesser General Public
License along with this library; if not, write to juraj.vajda@gmail.com
--]]
-- Get the content IDs for the nodes used.
local c_air = minetest.get_content_id('air')
local c_dirt_with_grass_1 = minetest.get_content_id('everness:dirt_with_grass_1')
local c_dirt_with_rainforest_litter = minetest.get_content_id('default:dirt_with_rainforest_litter')
local c_dirt_with_cursed_grass = minetest.get_content_id('everness:dirt_with_cursed_grass')
local c_dirt_with_crystal_grass = minetest.get_content_id('everness:dirt_with_crystal_grass')
local c_crystal_sand = minetest.get_content_id('everness:crystal_sand')
local c_dry_ocean_dirt = minetest.get_content_id('everness:dry_ocean_dirt')
local c_dirt_with_snow = minetest.get_content_id('default:dirt_with_snow')
local c_dirt_with_coniferous_litter = minetest.get_content_id('default:dirt_with_coniferous_litter')
local c_forsaken_desert_sand = minetest.get_content_id('everness:forsaken_desert_sand')
local c_forsaken_desert_chiseled_stone = minetest.get_content_id('everness:forsaken_desert_chiseled_stone')
local c_forsaken_desert_brick = minetest.get_content_id('everness:forsaken_desert_brick')
local c_forsaken_desert_engraved_stone = minetest.get_content_id('everness:forsaken_desert_engraved_stone')
local deco_ids_baobab = {
minetest.get_decoration_id('everness:baobab_savanna_baobab_tree_1'),
minetest.get_decoration_id('everness:baobab_savanna_baobab_tree_2')
}
local deco_id_coral_bones_tree = minetest.get_decoration_id('everness:coral_forest_coral_bones_tree')
minetest.set_gen_notify('decoration', deco_ids_baobab)
minetest.set_gen_notify('decoration', { deco_id_coral_bones_tree })
-- Localise data buffer table outside the loop, to be re-used for all
-- mapchunks, therefore minimising memory use.
local data = {}
minetest.register_on_generated(function(minp, maxp, blockseed)
local gennotify = minetest.get_mapgen_object('gennotify')
local chance = 15
local disp = 16
local rotations = { '0', '90', '180', '270' }
local rand = PcgRandom(blockseed)
local vm, emin, emax = minetest.get_mapgen_object('voxelmanip')
local area = VoxelArea:new({ MinEdge = emin, MaxEdge = emax })
-- Get the content ID data from the voxelmanip in the form of a flat array.
-- Set the buffer parameter to use and reuse 'data' for this.
vm:get_data(data)
local sidelength = maxp.x - minp.x + 1
local x_disp = rand:next(0, disp)
local z_disp = rand:next(0, disp)
if maxp.y > 0 then
--
-- Baobab Tree - fix light
--
for _, deco_id in ipairs(deco_ids_baobab) do
for _, pos in ipairs(gennotify['decoration#' .. deco_id] or {}) do
minetest.fix_light(vector.offset(pos, -1, -1, -1), vector.offset(pos, 24, 39, 24))
end
end
--
-- Coral bone tree - fix light
--
for _, pos in ipairs(gennotify['decoration#' .. deco_id_coral_bones_tree] or {}) do
minetest.fix_light(vector.offset(pos, -1, -1, -1), vector.offset(pos, 14, 35, 14))
end
--
-- Bamboo
--
local bamboos_pos = minetest.find_nodes_in_area_under_air(minp, maxp, 'everness:bamboo_3')
for _, pos in ipairs(bamboos_pos) do
local node_below = minetest.get_node(vector.new(pos.x, pos.y - 1, pos.z))
-- get height of the generated bamboo
local bamboo_height = 0
local height_offset = 1
local bamboo_below = node_below
while minetest.get_item_group(bamboo_below.name, 'bamboo') > 0 do
if bamboo_height > 1 then
bamboo_below = minetest.get_node(vector.new(pos.x, pos.y - height_offset, pos.z))
end
height_offset = height_offset + 1
bamboo_height = bamboo_height + 1
end
-- add top bamboo nodes with leaves based on their generated heigth
for i = 1, 3 do
local node_name = 'everness:bamboo_4'
if i == 2 and bamboo_height > 4 then
node_name = 'everness:bamboo_5'
elseif i == 3 then
node_name = 'everness:bamboo_5'
end
minetest.swap_node(
vector.new(pos.x, pos.y + (i - 1), pos.z),
{
name = node_name,
param2 = node_below.param2
}
)
end
end
for y = minp.y, maxp.y do
local vi = area:index(minp.x + sidelength / 2 + x_disp, y, minp.z + sidelength / 2 + z_disp)
if data[vi + area.ystride] == c_air
and (
data[vi] == c_dirt_with_grass_1
or data[vi] == c_dirt_with_rainforest_litter
or data[vi] == c_dirt_with_cursed_grass
or data[vi] == c_dirt_with_crystal_grass
or data[vi] == c_crystal_sand
or data[vi] == c_forsaken_desert_sand
or data[vi] == c_dry_ocean_dirt
or data[vi] == c_dirt_with_snow
or data[vi] == c_dirt_with_coniferous_litter
)
then
local rotation = rotations[rand:next(1, #rotations)]
local s_pos = area:position(vi)
local biome_data = minetest.get_biome_data(s_pos)
if not biome_data then
return
end
local biome_name = minetest.get_biome_name(biome_data.biome)
if not biome_name then
return
end
if biome_name == 'everness_bamboo_forest' and rand:next(0, 100) < chance then
local schem = minetest.get_modpath('everness') .. '/schematics/everness_japanese_shrine.mts'
--
-- Japanese Shrine
--
local schem_pos = vector.new(s_pos.x, s_pos.y, s_pos.z)
minetest.place_schematic_on_vmanip(
vm,
schem_pos,
schem,
rotation,
nil,
true,
'place_center_x, place_center_z'
)
minetest.log('action', '[Everness] Japanese Shrine was placed at ' .. schem_pos:to_string())
elseif biome_name == 'rainforest' and rand:next(0, 100) < chance then
local schem = minetest.get_modpath('everness') .. '/schematics/everness_jungle_temple.mts'
--
-- Jungle Temple
--
-- add Y displacement
local schem_pos = vector.new(s_pos.x, s_pos.y - 3, s_pos.z)
minetest.place_schematic_on_vmanip(
vm,
schem_pos,
schem,
rotation,
nil,
true,
'place_center_x, place_center_z'
)
minetest.log('action', '[Everness] Jungle Temple was placed at ' .. schem_pos:to_string())
elseif biome_name == 'everness_cursed_lands' and rand:next(0, 100) < chance then
local schem = minetest.get_modpath('everness') .. '/schematics/everness_haunted_house.mts'
--
-- Haunted House
--
-- add Y displacement
local schem_pos = vector.new(s_pos.x, s_pos.y - 1, s_pos.z)
minetest.place_schematic_on_vmanip(
vm,
schem_pos,
schem,
rotation,
nil,
true,
'place_center_x, place_center_z'
)
minetest.log('action', '[Everness] Haunted House was placed at ' .. schem_pos:to_string())
elseif biome_name == 'everness_crystal_forest' and rand:next(0, 100) < chance then
local schem = minetest.get_modpath('everness') .. '/schematics/everness_quartz_temple.mts'
--
-- Quartz Temple
--
-- add Y displacement
local schem_pos = vector.new(s_pos.x, s_pos.y, s_pos.z)
minetest.place_schematic_on_vmanip(
vm,
schem_pos,
schem,
rotation,
nil,
true,
'place_center_x, place_center_z'
)
minetest.log('action', '[Everness] Quartz Temple was placed at ' .. schem_pos:to_string())
elseif (biome_name == 'everness_forsaken_desert' or biome_name == 'everness_forsaken_desert_ocean')
and rand:next(0, 100) < chance
then
local schem = minetest.get_modpath('everness') .. '/schematics/everness_forsaken_desert_temple.mts'
--
-- Forsaken Desert Temple
--
-- add Y displacement
local schem_pos = vector.new(s_pos.x, s_pos.y, s_pos.z)
minetest.place_schematic_on_vmanip(
vm,
schem_pos,
schem,
rotation,
nil,
true,
'place_center_x, place_center_z'
)
minetest.log('action', '[Everness] Forsaken Desert Temple was placed at ' .. schem_pos:to_string())
elseif (biome_name == 'coniferous_forest' or biome_name == 'taiga')
and rand:next(0, 100) < 100
then
local schem = minetest.get_modpath('everness') .. '/schematics/everness_giant_sequoia_tree.mts'
--
-- Giant Sequoia
--
-- add Y displacement
local schem_pos = vector.new(s_pos.x, s_pos.y, s_pos.z)
minetest.emerge_area(
vector.new(s_pos.x - 12, s_pos.y, s_pos.z - 12),
vector.new(s_pos.x + 12, s_pos.y + 75, s_pos.z + 12),
function(blockpos, action, calls_remaining, param)
Everness:emerge_area(blockpos, action, calls_remaining, param)
end,
{
callback = function()
local positions = minetest.find_nodes_in_area_under_air(
vector.new(s_pos.x - 6, s_pos.y - 1, s_pos.z - 6),
vector.new(s_pos.x + 6, s_pos.y + 1, s_pos.z + 6),
{
'default:dirt_with_snow',
'default:dirt_with_coniferous_litter',
'default:snow'
})
if #positions < 137 then
-- not enough space
return
end
minetest.place_schematic(
schem_pos,
schem,
rotation,
nil,
true,
'place_center_x, place_center_z'
)
minetest.log('action', '[Everness] Giant Sequoia was placed at ' .. schem_pos:to_string())
end
}
)
end
end
end
vm:write_to_map(true)
minetest.fix_light(minp, maxp)
else
-- Under
for y = minp.y, maxp.y do
local vi = area:index(minp.x + sidelength / 2 + x_disp, y, minp.z + sidelength / 2 + z_disp)
if data[vi + area.ystride] == c_air
and (
data[vi] == c_dirt_with_grass_1
or data[vi] == c_forsaken_desert_sand
or data[vi] == c_forsaken_desert_chiseled_stone
or data[vi] == c_forsaken_desert_brick
or data[vi] == c_forsaken_desert_engraved_stone
)
then
local rotation = rotations[rand:next(1, #rotations)]
local s_pos = area:position(vi)
local biome_data = minetest.get_biome_data(s_pos)
if not biome_data then
return
end
local biome_name = minetest.get_biome_name(biome_data.biome)
if not biome_name then
return
end
if biome_name == 'everness_forsaken_desert_under' and rand:next(0, 100) < chance then
local schem = minetest.get_modpath('everness') .. '/schematics/everness_forsaken_desert_temple_2.mts'
--
-- Forsaken Desert Temple 2
--
-- add Y displacement
local schem_pos = vector.new(s_pos.x, s_pos.y, s_pos.z)
-- find floor big enough
local positions = minetest.find_nodes_in_area_under_air(
vector.new(s_pos.x - 7, s_pos.y - 1, s_pos.z - 7),
vector.new(s_pos.x + 7, s_pos.y + 1, s_pos.z + 7),
{
'everness:forsaken_desert_sand',
'everness:forsaken_desert_chiseled_stone',
'everness:forsaken_desert_brick',
'everness:forsaken_desert_engraved_stone',
'default:stone',
'default:sand',
'default:gravel',
'default:stone_with_coal',
'default:stone_with_iron',
'default:stone_with_tin',
'default:stone_with_gold',
'default:stone_with_mese',
'default:stone_with_diamond',
'everness:cave_barrel_cactus',
'everness:venus_trap',
'everness:illumi_root',
})
if #positions < 49 then
-- not enough space
return
end
-- enough air to place structure ?
local air_positions = minetest.find_nodes_in_area(
vector.new(s_pos.x - 7, s_pos.y, s_pos.z - 7),
vector.new(s_pos.x + 7, s_pos.y + 17, s_pos.z + 7),
'air', true)
if air_positions.air and #air_positions.air > (16 * 15 * 16) / 2 then
minetest.place_schematic_on_vmanip(
vm,
schem_pos,
schem,
rotation,
nil,
true,
'place_center_x, place_center_z'
)
minetest.log('action', '[Everness] Forsaken Desert Temple 2 was placed at ' .. schem_pos:to_string())
end
end
end
end
vm:write_to_map(true)
minetest.fix_light(minp, maxp)
end
end)

228
mapgen_bamboo_forest.lua Normal file
View File

@ -0,0 +1,228 @@
--[[
Everness. Never ending discovery in Everness mapgen.
Copyright (C) 2023 SaKeL <juraj.vajda@gmail.com>
This library is free software; you can redistribute it and/or
modify it under the terms of the GNU Lesser General Public
License as published by the Free Software Foundation; either
version 2.1 of the License, or (at your option) any later version.
This library is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
Lesser General Public License for more details.
You should have received a copy of the GNU Lesser General Public
License along with this library; if not, write to juraj.vajda@gmail.com
--]]
--
-- Register biomes
--
local y_max = Everness.settings.biomes.everness_bamboo_forest.y_max
local y_min = Everness.settings.biomes.everness_bamboo_forest.y_min
-- Bamboo Forest
minetest.register_biome({
name = 'everness_bamboo_forest',
node_top = 'everness:dirt_with_grass_1',
depth_top = 1,
node_filler = 'everness:dirt_1',
depth_filler = 1,
node_riverbed = 'default:sand',
depth_riverbed = 2,
node_dungeon = 'default:cobble',
node_dungeon_alt = 'default:mossycobble',
node_dungeon_stair = 'stairs:stair_cobble',
y_max = y_max,
y_min = y_min,
heat_point = 80,
humidity_point = 60,
})
--
-- Register decorations
--
minetest.register_decoration({
name = 'everness:bamboo_forest_small_bamboo',
deco_type = 'schematic',
place_on = { 'everness:dirt_with_grass_1' },
sidelen = 80,
fill_ratio = 0.1,
biomes = { 'everness_bamboo_forest' },
y_max = y_max,
y_min = y_min,
schematic = minetest.get_modpath('everness') .. '/schematics/everness_small_bamboo.mts',
flags = 'place_center_x, place_center_z',
rotation = 'random',
})
minetest.register_decoration({
name = 'everness:bamboo_forest_large_bamboo',
deco_type = 'schematic',
place_on = { 'everness:dirt_with_grass_1' },
sidelen = 80,
fill_ratio = 0.1,
biomes = { 'everness_bamboo_forest' },
y_max = y_max,
y_min = y_min,
schematic = minetest.get_modpath('everness') .. '/schematics/everness_large_bamboo.mts',
flags = 'place_center_x, place_center_z',
rotation = 'random',
})
-- Jungle tree and log
minetest.register_decoration({
name = 'everness:bamboo_forest_jungle_tree',
deco_type = 'schematic',
place_on = { 'everness:dirt_with_grass_1' },
sidelen = 16,
noise_params = {
offset = 0.0015,
scale = 0.0021,
spread = { x = 250, y = 250, z = 250 },
seed = 2,
octaves = 3,
persist = 0.66
},
biomes = { 'everness_bamboo_forest' },
y_max = y_max,
y_min = y_min,
schematic = minetest.get_modpath('default') .. '/schematics/jungle_tree.mts',
flags = 'place_center_x, place_center_z',
rotation = 'random',
})
minetest.register_decoration({
name = 'everness:bamboo_forest_jungle_log',
deco_type = 'schematic',
place_on = { 'everness:dirt_with_grass_1' },
place_offset_y = 1,
sidelen = 16,
noise_params = {
offset = 0.0015,
scale = 0.0021,
spread = { x = 250, y = 250, z = 250 },
seed = 2,
octaves = 3,
persist = 0.66
},
biomes = { 'everness_bamboo_forest' },
y_max = y_max,
y_min = y_min,
schematic = minetest.get_modpath('default') .. '/schematics/jungle_log.mts',
flags = 'place_center_x',
rotation = 'random',
spawn_by = 'everness:dirt_with_grass_1',
num_spawn_by = 8,
})
local function register_grass_decoration(offset, scale, length)
minetest.register_decoration({
name = 'everness:bamboo_forest_grass_' .. length,
deco_type = 'simple',
place_on = { 'everness:dirt_with_grass_1' },
sidelen = 16,
noise_params = {
offset = offset,
scale = scale,
spread = { x = 200, y = 200, z = 200 },
seed = 329,
octaves = 3,
persist = 0.6
},
biomes = { 'everness_bamboo_forest' },
y_max = y_max,
y_min = y_min,
decoration = 'default:grass_' .. length,
})
end
local function register_flower(seed, flower_name)
minetest.register_decoration({
name = 'everness:bamboo_forest_' .. flower_name,
deco_type = 'simple',
place_on = { 'everness:dirt_with_grass_1' },
sidelen = 16,
noise_params = {
offset = -0.02,
scale = 0.04,
spread = { x = 200, y = 200, z = 200 },
seed = seed,
octaves = 3,
persist = 0.6
},
biomes = { 'everness_bamboo_forest' },
y_max = y_max,
y_min = y_min,
decoration = 'flowers:' .. flower_name,
})
end
-- Bush
minetest.register_decoration({
name = 'everness:bamboo_forest_bush',
deco_type = 'schematic',
place_on = { 'everness:dirt_with_grass_1' },
sidelen = 16,
noise_params = {
offset = -0.004,
scale = 0.01,
spread = { x = 100, y = 100, z = 100 },
seed = 137,
octaves = 3,
persist = 0.7,
},
biomes = { 'everness_bamboo_forest' },
y_max = y_max,
y_min = y_min,
schematic = minetest.get_modpath('default') .. '/schematics/bush.mts',
flags = 'place_center_x, place_center_z',
})
-- Blueberry bush
minetest.register_decoration({
name = 'everness:bamboo_forest_blueberry_bush',
deco_type = 'schematic',
place_on = { 'everness:dirt_with_grass_1' },
sidelen = 16,
noise_params = {
offset = -0.004,
scale = 0.01,
spread = { x = 100, y = 100, z = 100 },
seed = 697,
octaves = 3,
persist = 0.7,
},
biomes = { 'everness_bamboo_forest' },
y_max = y_max,
y_min = y_min,
place_offset_y = 1,
schematic = minetest.get_modpath('default') .. '/schematics/blueberry_bush.mts',
flags = 'place_center_x, place_center_z',
})
-- Grasses
register_grass_decoration(-0.03, 0.09, 5)
register_grass_decoration(-0.015, 0.075, 4)
register_grass_decoration(0, 0.06, 3)
register_grass_decoration(0.015, 0.045, 2)
register_grass_decoration(0.03, 0.03, 1)
-- Flowers
register_flower(436, 'rose')
register_flower(19822, 'tulip')
register_flower(1220999, 'dandelion_yellow')
register_flower(800081, 'chrysanthemum_green')
register_flower(36662, 'geranium')
register_flower(1133, 'viola')
register_flower(73133, 'dandelion_white')
register_flower(42, 'tulip_black')

View File

@ -0,0 +1,174 @@
--[[
Everness. Never ending discovery in Everness mapgen.
Copyright (C) 2023 SaKeL <juraj.vajda@gmail.com>
This library is free software; you can redistribute it and/or
modify it under the terms of the GNU Lesser General Public
License as published by the Free Software Foundation; either
version 2.1 of the License, or (at your option) any later version.
This library is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
Lesser General Public License for more details.
You should have received a copy of the GNU Lesser General Public
License along with this library; if not, write to juraj.vajda@gmail.com
--]]
--
-- Register biomes
--
local y_max = Everness.settings.biomes.everness_bamboo_forest_under.y_max
local y_min = Everness.settings.biomes.everness_bamboo_forest_under.y_min
-- Bamboo Forest Under
minetest.register_biome({
name = 'everness_bamboo_forest_under',
node_cave_liquid = { 'default:water_source', 'default:lava_source' },
node_dungeon = 'default:cobble',
node_dungeon_alt = 'default:mossycobble',
node_dungeon_stair = 'stairs:stair_cobble',
y_max = y_max,
y_min = y_min,
heat_point = 80,
humidity_point = 60,
})
--
-- Register decorations
--
minetest.register_decoration({
name = 'everness:bamboo_forest_under_floors',
deco_type = 'simple',
place_on = { 'default:stone' },
sidelen = 16,
fill_ratio = 10,
biomes = { 'everness_bamboo_forest_under' },
y_max = y_max,
y_min = y_min,
flags = 'all_floors',
decoration = {
'everness:moss_block',
'default:clay'
},
})
minetest.register_decoration({
name = 'everness:bamboo_forest_under_ceiling',
deco_type = 'simple',
place_on = { 'default:stone' },
sidelen = 16,
fill_ratio = 0.4,
biomes = { 'everness_bamboo_forest_under' },
y_max = y_max,
y_min = y_min,
flags = 'all_ceilings',
decoration = { 'everness:moss_block' },
})
minetest.register_decoration({
name = 'everness:bamboo_forest_under_forsythia_bush',
deco_type = 'simple',
place_on = { 'everness:moss_block' },
sidelen = 16,
noise_params = {
offset = 0,
scale = 0.002,
spread = { x = 250, y = 250, z = 250 },
seed = 2,
octaves = 3,
persist = 0.66
},
biomes = { 'everness_bamboo_forest_under' },
y_max = y_max - 500 > y_min and y_max - 500 or y_max,
y_min = y_min,
flags = 'all_floors',
decoration = { 'everness:forsythia_bush' },
})
minetest.register_decoration({
name = 'everness:bamboo_forest_under_vines',
deco_type = 'simple',
place_on = { 'everness:moss_block' },
sidelen = 16,
fill_ratio = 0.05,
decoration = {
'everness:vine_cave',
'everness:vine_cave_with_mese_leaves'
},
biomes = { 'everness_bamboo_forest_under' },
y_max = y_max,
y_min = y_min,
flags = 'all_ceilings',
spawn_by = 'air',
num_spawn_by = 8
})
minetest.register_decoration({
name = 'everness:bamboo_forest_under_plants',
deco_type = 'simple',
place_on = { 'everness:moss_block' },
param2 = 8,
sidelen = 16,
noise_params = {
offset = 0,
scale = 0.02,
spread = { x = 200, y = 200, z = 200 },
seed = 329,
octaves = 3,
persist = 0.6
},
biomes = { 'everness_bamboo_forest_under' },
y_max = y_max,
y_min = y_min,
decoration = { 'everness:cave_flower' },
flags = 'all_floors'
})
minetest.register_decoration({
name = 'everness:bamboo_forest_under_plants_2',
deco_type = 'simple',
place_on = { 'everness:moss_block' },
param2 = 8,
sidelen = 16,
noise_params = {
offset = 0,
scale = 0.02,
spread = { x = 200, y = 200, z = 200 },
seed = 329,
octaves = 3,
persist = 0.6
},
biomes = { 'everness_bamboo_forest_under' },
y_max = y_max - 1000 > y_min and y_max - 1000 or y_max,
y_min = y_min,
decoration = { 'everness:cave_flower_with_particles' },
flags = 'all_floors'
})
minetest.register_decoration({
name = 'everness:bamboo_forest_under_blue_vine_lantern',
deco_type = 'simple',
place_on = {
'everness:moss_block',
'default:clay'
},
sidelen = 16,
noise_params = {
offset = 0,
scale = 0.002,
spread = { x = 250, y = 250, z = 250 },
seed = 2,
octaves = 3,
persist = 0.66
},
biomes = { 'everness_bamboo_forest_under' },
y_max = y_max - 1500 > y_min and y_max - 1500 or y_max,
y_min = y_min,
decoration = { 'everness:blue_vine_lantern' },
flags = 'all_floors',
})

143
mapgen_baobab_savanna.lua Normal file
View File

@ -0,0 +1,143 @@
--[[
Everness. Never ending discovery in Everness mapgen.
Copyright (C) 2023 SaKeL <juraj.vajda@gmail.com>
This library is free software; you can redistribute it and/or
modify it under the terms of the GNU Lesser General Public
License as published by the Free Software Foundation; either
version 2.1 of the License, or (at your option) any later version.
This library is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
Lesser General Public License for more details.
You should have received a copy of the GNU Lesser General Public
License along with this library; if not, write to juraj.vajda@gmail.com
--]]
--
-- Register biomes
--
local y_max = Everness.settings.biomes.everness_baobab_savanna.y_max
local y_min = Everness.settings.biomes.everness_baobab_savanna.y_min
-- Baobab Savanna
minetest.register_biome({
name = 'everness_baobab_savanna',
node_top = 'default:dry_dirt_with_dry_grass',
depth_top = 1,
node_filler = 'default:dry_dirt',
depth_filler = 1,
node_riverbed = 'default:sand',
depth_riverbed = 2,
node_dungeon = 'default:cobble',
node_dungeon_alt = 'default:mossycobble',
node_dungeon_stair = 'stairs:stair_cobble',
y_max = y_max,
y_min = y_min,
heat_point = 80,
humidity_point = 30,
})
--
-- Register decorations
--
-- Savanna bare dirt patches.
-- Must come before all savanna decorations that are placed on dry grass.
-- Noise is similar to long dry grass noise, but scale inverted, to appear
-- where long dry grass is least dense and shortest.
minetest.register_decoration({
name = 'everness:baobab_savanna_dry_dirt_with_dry_grass',
deco_type = 'simple',
place_on = { 'default:dry_dirt_with_dry_grass' },
sidelen = 4,
noise_params = {
offset = -1.5,
scale = -1.5,
spread = { x = 200, y = 200, z = 200 },
seed = 329,
octaves = 4,
persist = 1.0
},
biomes = { 'everness_baobab_savanna' },
y_max = y_max,
y_min = y_min,
decoration = 'default:dry_dirt',
place_offset_y = -1,
flags = 'force_placement',
})
minetest.register_decoration({
name = 'everness:baobab_savanna_baobab_tree_1',
deco_type = 'schematic',
place_on = { 'default:dry_dirt_with_dry_grass', 'default:dry_dirt' },
spawn_by = { 'default:dry_dirt_with_dry_grass', 'default:dry_dirt' },
num_spawn_by = 8,
sidelen = 16,
noise_params = {
offset = 0,
scale = 0.002,
spread = { x = 250, y = 250, z = 250 },
seed = 2,
octaves = 3,
persist = 0.66
},
biomes = { 'everness_baobab_savanna' },
y_max = y_max,
y_min = y_min,
schematic = minetest.get_modpath('everness') .. '/schematics/everness_baobab_tree.mts',
flags = 'place_center_x, place_center_z',
rotation = 'random',
})
minetest.register_decoration({
name = 'everness:baobab_savanna_baobab_tree_2',
deco_type = 'schematic',
place_on = { 'default:dry_dirt_with_dry_grass', 'default:dry_dirt' },
spawn_by = { 'default:dry_dirt_with_dry_grass', 'default:dry_dirt' },
num_spawn_by = 8,
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 = { 'everness_baobab_savanna' },
y_max = y_max,
y_min = y_min,
schematic = minetest.get_modpath('everness') .. '/schematics/everness_baobab_tree.mts',
flags = 'place_center_x, place_center_z',
rotation = 'random',
})
minetest.register_decoration({
name = 'everness:baobab_savanna_acacia_log',
deco_type = 'schematic',
place_on = { 'default:dry_dirt_with_dry_grass' },
place_offset_y = 1,
sidelen = 16,
noise_params = {
offset = 0,
scale = 0.001,
spread = { x = 250, y = 250, z = 250 },
seed = 2,
octaves = 3,
persist = 0.66
},
biomes = { 'everness_baobab_savanna' },
y_max = y_max,
y_min = y_min,
schematic = minetest.get_modpath('default') .. '/schematics/acacia_log.mts',
flags = 'place_center_x',
rotation = 'random',
spawn_by = 'default:dry_dirt_with_dry_grass',
num_spawn_by = 8,
})

215
mapgen_coral_forest.lua Normal file
View File

@ -0,0 +1,215 @@
--[[
Everness. Never ending discovery in Everness mapgen.
Copyright (C) 2023 SaKeL <juraj.vajda@gmail.com>
This library is free software; you can redistribute it and/or
modify it under the terms of the GNU Lesser General Public
License as published by the Free Software Foundation; either
version 2.1 of the License, or (at your option) any later version.
This library is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
Lesser General Public License for more details.
You should have received a copy of the GNU Lesser General Public
License along with this library; if not, write to juraj.vajda@gmail.com
--]]
--
-- Register biomes
--
local y_max = Everness.settings.biomes.everness_coral_forest.y_max
local y_min = Everness.settings.biomes.everness_coral_forest.y_min
-- Coral Forest
minetest.register_biome({
name = 'everness_coral_forest',
node_top = 'everness:dirt_with_coral_grass',
depth_top = 1,
node_filler = 'everness:coral_dirt',
depth_filler = 1,
node_riverbed = 'everness:coral_dirt',
depth_riverbed = 2,
node_dungeon = 'everness:coral_desert_cobble',
node_dungeon_alt = 'everness:coral_desert_mossy_cobble',
node_dungeon_stair = 'stairs:stair_coral_desert_cobble',
y_max = y_max,
y_min = y_min,
heat_point = 60,
humidity_point = 50,
})
--
-- Register ores
--
-- Blob ore.
-- These before scatter ores to avoid other ores in blobs.
-- Coral Desert Stone
minetest.register_ore({
ore_type = 'blob',
ore = 'everness:coral_desert_stone',
wherein = { 'default:stone' },
clust_scarcity = 16 * 16 * 16,
clust_size = 5,
y_max = y_max,
y_min = y_min,
noise_threshold = 0.0,
noise_params = {
offset = 0.5,
scale = 0.2,
spread = { x = 5, y = 5, z = 5 },
seed = -316,
octaves = 1,
persist = 0.0
},
biomes = { 'everness_coral_forest' }
})
--
-- Register decorations
--
-- Coral Forest
local chunksize = tonumber(minetest.get_mapgen_setting('chunksize'))
if chunksize >= 5 then
minetest.register_decoration({
name = 'everness:coral_forest_coral_tree',
deco_type = 'schematic',
place_on = { 'everness:dirt_with_coral_grass' },
place_offset_y = 0,
sidelen = 16,
noise_params = {
offset = 0.0015,
scale = 0.0021,
spread = { x = 250, y = 250, z = 250 },
seed = 2,
octaves = 3,
persist = 0.66
},
biomes = { 'everness_coral_forest' },
y_max = y_max,
y_min = y_min,
schematic = minetest.get_modpath('everness') .. '/schematics/everness_coral_tree.mts',
flags = 'place_center_x, place_center_z',
rotation = 'random',
spawn_by = 'everness:dirt_with_coral_grass',
num_spawn_by = 8,
})
end
minetest.register_decoration({
name = 'everness:coral_forest_coral_bones_tree',
deco_type = 'schematic',
place_on = { 'everness:dirt_with_coral_grass' },
sidelen = 16,
place_offset_y = -1,
noise_params = {
offset = -0.004,
scale = 0.01,
spread = { x = 100, y = 100, z = 100 },
seed = 137,
octaves = 3,
persist = 0.7,
},
biomes = { 'everness_coral_forest' },
y_max = y_max,
y_min = y_min,
schematic = minetest.get_modpath('everness') .. '/schematics/everness_coral_bones_tree.mts',
flags = 'place_center_x, place_center_z',
rotation = 'random',
})
minetest.register_decoration({
name = 'everness:coral_forest_coral_burdock',
deco_type = 'simple',
place_on = { 'everness:dirt_with_coral_grass' },
sidelen = 16,
noise_params = {
offset = 0,
scale = 0.006,
spread = { x = 250, y = 250, z = 250 },
seed = 2,
octaves = 3,
persist = 0.66
},
biomes = { 'everness_coral_forest' },
y_max = y_max,
y_min = y_min,
decoration = { 'everness:coral_burdock_1', 'everness:coral_burdock_2' },
spawn_by = 'everness:coral_tree'
})
minetest.register_decoration({
name = 'everness:coral_forest_coral_bush',
deco_type = 'simple',
place_on = { 'everness:dirt_with_coral_grass', 'everness:coral_sand', 'everness:coral_white_sand' },
sidelen = 16,
noise_params = {
offset = -0.02,
scale = 0.04,
spread = { x = 200, y = 200, z = 200 },
seed = 436,
octaves = 3,
persist = 0.6
},
biomes = { 'everness_coral_forest' },
y_max = y_max,
y_min = y_min,
decoration = 'everness:coral_bush'
})
minetest.register_decoration({
name = 'everness:coral_forest_coral_shrub',
deco_type = 'simple',
place_on = { 'everness:dirt_with_coral_grass', 'everness:coral_sand', 'everness:coral_white_sand' },
sidelen = 16,
noise_params = {
offset = -0.02,
scale = 0.04,
spread = { x = 200, y = 200, z = 200 },
seed = 1220999,
octaves = 3,
persist = 0.6
},
biomes = { 'everness_coral_forest' },
y_max = y_max,
y_min = y_min,
decoration = 'everness:coral_shrub'
})
local function register_coral_grass_decoration(offset, scale, length)
minetest.register_decoration({
name = 'everness:coral_forest_coral_grass_' .. length,
deco_type = 'simple',
place_on = { 'everness:dirt_with_coral_grass' },
sidelen = 16,
noise_params = {
offset = offset,
scale = scale,
spread = { x = 200, y = 200, z = 200 },
seed = 329,
octaves = 3,
persist = 0.6
},
biomes = { 'everness_coral_forest' },
y_max = y_max,
y_min = y_min,
decoration = 'everness:coral_grass_' .. length,
})
end
-- Grasses
register_coral_grass_decoration(-0.03, 0.09, 5)
register_coral_grass_decoration(-0.015, 0.075, 4)
register_coral_grass_decoration(0, 0.06, 3)
register_coral_grass_decoration(0.015, 0.045, 2)
register_coral_grass_decoration(0.03, 0.03, 1)

View File

@ -0,0 +1,143 @@
--[[
Everness. Never ending discovery in Everness mapgen.
Copyright (C) 2023 SaKeL <juraj.vajda@gmail.com>
This library is free software; you can redistribute it and/or
modify it under the terms of the GNU Lesser General Public
License as published by the Free Software Foundation; either
version 2.1 of the License, or (at your option) any later version.
This library is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
Lesser General Public License for more details.
You should have received a copy of the GNU Lesser General Public
License along with this library; if not, write to juraj.vajda@gmail.com
--]]
--
-- Register biomes
--
local y_max = Everness.settings.biomes.everness_coral_forest_dunes.y_max
local y_min = Everness.settings.biomes.everness_coral_forest_dunes.y_min
-- Coral Forest Dunes
minetest.register_biome({
name = 'everness_coral_forest_dunes',
node_top = 'everness:coral_sand',
depth_top = 1,
node_filler = 'everness:coral_sand',
depth_filler = 3,
node_riverbed = 'everness:coral_sand',
depth_riverbed = 2,
node_dungeon = 'everness:coral_desert_cobble',
node_dungeon_alt = 'everness:coral_desert_mossy_cobble',
node_dungeon_stair = 'stairs:stair_coral_desert_cobble',
vertical_blend = 1,
y_max = y_max,
y_min = y_min,
heat_point = 60,
humidity_point = 50,
})
--
-- Register ores
--
-- Blob ore.
-- These before scatter ores to avoid other ores in blobs.
-- Coral Desert Stone
minetest.register_ore({
ore_type = 'blob',
ore = 'everness:coral_desert_stone',
wherein = { 'default:stone' },
clust_scarcity = 16 * 16 * 16,
clust_size = 5,
y_max = y_max,
y_min = y_min,
noise_threshold = 0.0,
noise_params = {
offset = 0.5,
scale = 0.2,
spread = { x = 5, y = 5, z = 5 },
seed = -316,
octaves = 1,
persist = 0.0
},
biomes = { 'everness_coral_forest_dunes' }
})
--
-- Register decorations
--
-- Coral Forest Dunes
minetest.register_decoration({
name = 'everness:coral_forest_dunes_coral_volcano',
deco_type = 'schematic',
place_on = { 'everness:coral_sand' },
place_offset_y = -1,
sidelen = 16,
noise_params = {
offset = -0.012,
scale = 0.024,
spread = { x = 100, y = 100, z = 100 },
seed = 230,
octaves = 3,
persist = 0.6
},
biomes = { 'everness_coral_forest_dunes' },
y_max = y_max,
y_min = y_min,
schematic = minetest.get_modpath('x_clay')
and minetest.get_modpath('everness') .. '/schematics/everness_coral_volcano_x_clay.mts'
or minetest.get_modpath('everness') .. '/schematics/everness_coral_volcano.mts',
flags = 'place_center_x, place_center_z',
rotation = 'random',
spawn_by = 'everness:coral_sand',
num_spawn_by = 8,
})
minetest.register_decoration({
name = 'everness:coral_forest_dunes_coral_bush',
deco_type = 'simple',
place_on = { 'everness:dirt_with_coral_grass', 'everness:coral_sand', 'everness:coral_white_sand' },
sidelen = 16,
noise_params = {
offset = -0.02,
scale = 0.04,
spread = { x = 200, y = 200, z = 200 },
seed = 436,
octaves = 3,
persist = 0.6
},
biomes = { 'everness_coral_forest_dunes' },
y_max = y_max,
y_min = y_min,
decoration = 'everness:coral_bush'
})
minetest.register_decoration({
name = 'everness:coral_forest_dunes_coral_shrub',
deco_type = 'simple',
place_on = { 'everness:dirt_with_coral_grass', 'everness:coral_sand', 'everness:coral_white_sand' },
sidelen = 16,
noise_params = {
offset = -0.02,
scale = 0.04,
spread = { x = 200, y = 200, z = 200 },
seed = 1220999,
octaves = 3,
persist = 0.6
},
biomes = { 'everness_coral_forest_dunes' },
y_max = y_max,
y_min = y_min,
decoration = 'everness:coral_shrub'
})

View File

@ -0,0 +1,98 @@
--[[
Everness. Never ending discovery in Everness mapgen.
Copyright (C) 2023 SaKeL <juraj.vajda@gmail.com>
This library is free software; you can redistribute it and/or
modify it under the terms of the GNU Lesser General Public
License as published by the Free Software Foundation; either
version 2.1 of the License, or (at your option) any later version.
This library is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
Lesser General Public License for more details.
You should have received a copy of the GNU Lesser General Public
License along with this library; if not, write to juraj.vajda@gmail.com
--]]
--
-- Register biomes
--
local y_max = Everness.settings.biomes.everness_coral_forest_ocean.y_max
local y_min = Everness.settings.biomes.everness_coral_forest_ocean.y_min
-- Coral Forest Ocean
minetest.register_biome({
name = 'everness_coral_forest_ocean',
node_top = 'everness:coral_white_sand',
depth_top = 1,
node_filler = 'everness:coral_white_sand',
depth_filler = 3,
node_riverbed = 'everness:coral_white_sand',
depth_riverbed = 2,
node_cave_liquid = 'default:water_source',
node_dungeon = 'everness:coral_desert_cobble',
node_dungeon_alt = 'everness:coral_desert_mossy_cobble',
node_dungeon_stair = 'stairs:stair_coral_desert_cobble',
y_max = y_max,
y_min = y_min,
heat_point = 60,
humidity_point = 50,
})
-- Blob ore.
-- These before scatter ores to avoid other ores in blobs.
-- Coral Desert Stone
minetest.register_ore({
ore_type = 'blob',
ore = 'everness:coral_desert_stone',
wherein = { 'default:stone' },
clust_scarcity = 16 * 16 * 16,
clust_size = 5,
y_max = y_max,
y_min = y_min,
noise_threshold = 0.0,
noise_params = {
offset = 0.5,
scale = 0.2,
spread = { x = 5, y = 5, z = 5 },
seed = -316,
octaves = 1,
persist = 0.0
},
biomes = { 'everness_coral_forest_ocean' }
})
--
-- Register decorations
--
-- Coral Forest Under
-- Coral reef
minetest.register_decoration({
name = 'everness:coral_forest_ocean_corals',
deco_type = 'simple',
place_on = { 'everness:coral_white_sand' },
place_offset_y = -1,
sidelen = 4,
noise_params = {
offset = -4,
scale = 4,
spread = { x = 50, y = 50, z = 50 },
seed = 7013,
octaves = 3,
persist = 0.7,
},
biomes = { 'everness_coral_forest_ocean' },
y_max = y_max - 5 > y_min and y_max - 5 or y_max,
y_min = y_max - 11 > y_min and y_max - 11 or y_min,
flags = 'force_placement',
decoration = { 'everness:coral_corals', 'everness:coral_jellyfish' },
})

View File

@ -0,0 +1,214 @@
--[[
Everness. Never ending discovery in Everness mapgen.
Copyright (C) 2023 SaKeL <juraj.vajda@gmail.com>
This library is free software; you can redistribute it and/or
modify it under the terms of the GNU Lesser General Public
License as published by the Free Software Foundation; either
version 2.1 of the License, or (at your option) any later version.
This library is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
Lesser General Public License for more details.
You should have received a copy of the GNU Lesser General Public
License along with this library; if not, write to juraj.vajda@gmail.com
--]]
--
-- Register biomes
--
local y_max = Everness.settings.biomes.everness_coral_forest_under.y_max
local y_min = Everness.settings.biomes.everness_coral_forest_under.y_min
-- Coral Forest Under
minetest.register_biome({
name = 'everness_coral_forest_under',
node_cave_liquid = { 'default:water_source', 'default:lava_source' },
node_dungeon = 'everness:coral_desert_cobble',
node_dungeon_alt = 'everness:coral_desert_mossy_cobble',
node_dungeon_stair = 'stairs:stair_coral_desert_cobble',
y_max = y_max,
y_min = y_min,
heat_point = 60,
humidity_point = 50,
})
--
-- Register ores
--
-- Blob ore.
-- These before scatter ores to avoid other ores in blobs.
-- Coral Desert Stone
minetest.register_ore({
ore_type = 'blob',
ore = 'everness:coral_desert_stone',
wherein = { 'default:stone' },
clust_scarcity = 16 * 16 * 16,
clust_size = 5,
y_max = y_max,
y_min = y_min,
noise_threshold = 0.0,
noise_params = {
offset = 0.5,
scale = 0.2,
spread = { x = 5, y = 5, z = 5 },
seed = -316,
octaves = 1,
persist = 0.0
},
biomes = { 'everness_coral_forest_under' }
})
--
-- Register decorations
--
-- Coral Forest Under
minetest.register_decoration({
name = 'everness:coral_forest_under_desert_stone_with_moss_floors',
deco_type = 'simple',
place_on = { 'default:stone' },
place_offset_y = -1,
sidelen = 16,
fill_ratio = 10,
biomes = { 'everness_coral_forest_under' },
y_max = y_max,
y_min = y_min,
flags = 'all_floors, force_placement',
decoration = {
'everness:coral_desert_stone_with_moss'
},
})
minetest.register_decoration({
name = 'everness:coral_forest_under_mold_stone_ceilings',
deco_type = 'simple',
place_on = { 'default:stone' },
sidelen = 16,
fill_ratio = 0.4,
biomes = { 'everness_coral_forest_under' },
y_max = y_max,
y_min = y_min,
flags = 'all_ceilings',
decoration = {
'everness:moss_block'
},
})
minetest.register_decoration({
name = 'everness:coral_forest_under_coral_tree_bioluminescent',
deco_type = 'schematic',
place_on = { 'everness:coral_desert_stone_with_moss' },
place_offset_y = 1,
sidelen = 16,
noise_params = {
offset = 0,
scale = 0.002,
spread = { x = 250, y = 250, z = 250 },
seed = 2,
octaves = 3,
persist = 0.66
},
biomes = { 'everness_coral_forest_under' },
y_max = y_max - 1500 > y_min and y_max - 1500 or y_max,
y_min = y_min,
schematic = minetest.get_modpath('everness') .. '/schematics/everness_coral_tree_bioluminescent.mts',
flags = 'place_center_x, place_center_z, all_floors, force_placement',
rotation = 'random',
spawn_by = 'everness:coral_desert_stone_with_moss',
num_spawn_by = 8,
})
minetest.register_decoration({
name = 'everness:coral_forest_under_coral_plant_bioluminescent',
deco_type = 'simple',
place_on = { 'everness:coral_desert_stone_with_moss' },
param2 = 8,
sidelen = 16,
noise_params = {
offset = 0,
scale = 0.02,
spread = { x = 200, y = 200, z = 200 },
seed = 329,
octaves = 3,
persist = 0.6
},
biomes = { 'everness_coral_forest_under' },
y_max = y_max,
y_min = y_min,
decoration = 'everness:coral_plant_bioluminescent',
flags = 'all_floors'
})
minetest.register_decoration({
name = 'everness:coral_forest_under_lumecorn',
deco_type = 'simple',
place_on = { 'everness:coral_desert_stone_with_moss' },
sidelen = 16,
noise_params = {
offset = -0.004,
scale = 0.01,
spread = { x = 100, y = 100, z = 100 },
seed = 137,
octaves = 3,
persist = 0.7,
},
biomes = { 'everness_coral_forest_under' },
y_max = y_max - 1000 > y_min and y_max - 1000 or y_max,
y_min = y_min,
decoration = 'everness:lumecorn',
flags = 'all_floors',
})
minetest.register_decoration({
name = 'everness:coral_forest_under_vines',
deco_type = 'simple',
place_on = { 'everness:moss_block' },
sidelen = 16,
fill_ratio = 0.05,
biomes = { 'everness_coral_forest_under' },
param2 = 8,
decoration = {
'everness:lumabus_vine_1',
'everness:lumabus_vine_2',
'everness:flowered_vine_1',
'everness:flowered_vine_2'
},
y_max = y_max,
y_min = y_min,
flags = 'all_ceilings',
spawn_by = 'air',
num_spawn_by = 8
})
minetest.register_decoration({
name = 'everness:coral_forest_under_plants',
deco_type = 'simple',
place_on = { 'everness:coral_desert_stone_with_moss' },
sidelen = 16,
noise_params = {
offset = 0,
scale = 0.02,
spread = { x = 200, y = 200, z = 200 },
seed = 329,
octaves = 3,
persist = 0.6
},
biomes = { 'everness_coral_forest_under' },
y_max = y_max - 500 > y_min and y_max - 500 or y_max,
y_min = y_min,
decoration = {
'everness:coral_grass_orange',
'everness:globulagus',
'everness:coral_grass_tall',
},
flags = 'all_floors',
})

158
mapgen_crystal_forest.lua Normal file
View File

@ -0,0 +1,158 @@
--[[
Everness. Never ending discovery in Everness mapgen.
Copyright (C) 2023 SaKeL <juraj.vajda@gmail.com>
This library is free software; you can redistribute it and/or
modify it under the terms of the GNU Lesser General Public
License as published by the Free Software Foundation; either
version 2.1 of the License, or (at your option) any later version.
This library is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
Lesser General Public License for more details.
You should have received a copy of the GNU Lesser General Public
License along with this library; if not, write to juraj.vajda@gmail.com
--]]
--
-- Register biomes
--
local y_max = Everness.settings.biomes.everness_crystal_forest.y_max
local y_min = Everness.settings.biomes.everness_crystal_forest.y_min
-- Crystal Forest
minetest.register_biome({
name = 'everness_crystal_forest',
node_top = 'everness:dirt_with_crystal_grass',
depth_top = 1,
node_filler = 'everness:crystal_dirt',
depth_filler = 1,
node_riverbed = 'everness:crystal_dirt',
depth_riverbed = 2,
node_dungeon = 'default:cobble',
node_dungeon_alt = 'default:mossycobble',
node_dungeon_stair = 'stairs:stair_cobble',
y_max = y_max,
y_min = y_min,
heat_point = 35,
humidity_point = 50,
})
--
-- Register decorations
--
minetest.register_decoration({
name = 'everness:crystal_forest_crystal_mushrooms',
deco_type = 'simple',
place_on = { 'everness:dirt_with_crystal_grass' },
sidelen = 16,
noise_params = {
offset = 0,
scale = 0.006,
spread = { x = 250, y = 250, z = 250 },
seed = 2,
octaves = 3,
persist = 0.66
},
biomes = { 'everness_crystal_forest' },
y_max = y_max,
y_min = y_min,
decoration = 'everness:crystal_mushrooms',
})
minetest.register_decoration({
name = 'everness:crystal_forest_crystal_tree',
deco_type = 'schematic',
place_on = { 'everness:dirt_with_crystal_grass' },
place_offset_y = 0,
sidelen = 16,
noise_params = {
offset = 0,
scale = 0.002,
spread = { x = 250, y = 250, z = 250 },
seed = 2,
octaves = 3,
persist = 0.66
},
biomes = { 'everness_crystal_forest' },
y_max = y_max,
y_min = y_min,
schematic = minetest.get_modpath('everness') .. '/schematics/everness_crystal_tree.mts',
flags = 'place_center_x, place_center_z',
rotation = 'random',
})
minetest.register_decoration({
name = 'everness:crystal_forest_crystal_tree_large',
deco_type = 'schematic',
place_on = { 'everness:dirt_with_crystal_grass' },
place_offset_y = 0,
sidelen = 16,
noise_params = {
offset = 0,
scale = 0.001,
spread = { x = 250, y = 250, z = 250 },
seed = 2,
octaves = 3,
persist = 0.66
},
biomes = { 'everness_crystal_forest' },
y_max = y_max,
y_min = y_min,
schematic = minetest.get_modpath('everness') .. '/schematics/everness_crystal_tree_large.mts',
flags = 'place_center_x, place_center_z',
rotation = 'random',
})
local function register_crystal_grass_decoration(offset, scale, length)
minetest.register_decoration({
name = 'everness:crystal_forest_crystal_grass_' .. length,
deco_type = 'simple',
place_on = { 'everness:dirt_with_crystal_grass' },
sidelen = 16,
noise_params = {
offset = offset,
scale = scale,
spread = { x = 200, y = 200, z = 200 },
seed = 329,
octaves = 3,
persist = 0.6
},
biomes = { 'everness_crystal_forest' },
y_max = y_max,
y_min = y_min,
decoration = 'everness:crystal_grass_' .. length,
})
end
-- Crystal Grasses
register_crystal_grass_decoration(-0.03, 0.09, 3)
register_crystal_grass_decoration(-0.015, 0.075, 2)
register_crystal_grass_decoration(0, 0.06, 1)
minetest.register_decoration({
name = 'everness:crystal_forest_crystal_bush',
deco_type = 'schematic',
place_on = { 'everness:dirt_with_crystal_grass' },
sidelen = 16,
place_offset_y = 1,
noise_params = {
offset = -0.004,
scale = 0.01,
spread = { x = 100, y = 100, z = 100 },
seed = 137,
octaves = 3,
persist = 0.7,
},
biomes = { 'everness_crystal_forest' },
y_max = y_max,
y_min = y_min,
schematic = minetest.get_modpath('everness') .. '/schematics/everness_crystal_bush.mts',
flags = 'place_center_x, place_center_z',
})

View File

@ -0,0 +1,91 @@
--[[
Everness. Never ending discovery in Everness mapgen.
Copyright (C) 2023 SaKeL <juraj.vajda@gmail.com>
This library is free software; you can redistribute it and/or
modify it under the terms of the GNU Lesser General Public
License as published by the Free Software Foundation; either
version 2.1 of the License, or (at your option) any later version.
This library is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
Lesser General Public License for more details.
You should have received a copy of the GNU Lesser General Public
License along with this library; if not, write to juraj.vajda@gmail.com
--]]
--
-- Register biomes
--
local y_max = Everness.settings.biomes.everness_crystal_forest_dunes.y_max
local y_min = Everness.settings.biomes.everness_crystal_forest_dunes.y_min
-- Crystal Forest Dunes
minetest.register_biome({
name = 'everness_crystal_forest_dunes',
node_top = 'everness:crystal_sand',
depth_top = 1,
node_filler = 'everness:crystal_sand',
depth_filler = 3,
node_riverbed = 'everness:crystal_sand',
depth_riverbed = 2,
node_dungeon = 'default:cobble',
node_dungeon_alt = 'default:mossycobble',
node_dungeon_stair = 'stairs:stair_cobble',
vertical_blend = 1,
y_max = y_max,
y_min = y_min,
heat_point = 35,
humidity_point = 50,
})
--
-- Register decorations
--
minetest.register_decoration({
name = 'everness:crystal_forest_dunes_ruins_1',
deco_type = 'schematic',
place_on = { 'everness:crystal_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 = { 'everness_crystal_forest_dunes' },
y_max = y_max,
y_min = y_min,
schematic = minetest.get_modpath('everness') .. '/schematics/everness_crystal_forest_ruins_1.mts',
flags = 'place_center_x, place_center_z',
rotation = 'random',
})
minetest.register_decoration({
name = 'everness:crystal_forest_dunes_ruins_2',
deco_type = 'schematic',
place_on = { 'everness:crystal_sand' },
place_offset_y = 0,
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 = { 'everness_crystal_forest_dunes' },
y_max = y_max,
y_min = y_min,
schematic = minetest.get_modpath('everness') .. '/schematics/everness_crystal_forest_ruins_2.mts',
flags = 'place_center_x, place_center_z',
rotation = 'random',
})

View File

@ -0,0 +1,74 @@
--[[
Everness. Never ending discovery in Everness mapgen.
Copyright (C) 2023 SaKeL <juraj.vajda@gmail.com>
This library is free software; you can redistribute it and/or
modify it under the terms of the GNU Lesser General Public
License as published by the Free Software Foundation; either
version 2.1 of the License, or (at your option) any later version.
This library is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
Lesser General Public License for more details.
You should have received a copy of the GNU Lesser General Public
License along with this library; if not, write to juraj.vajda@gmail.com
--]]
--
-- Register biomes
--
local y_max = Everness.settings.biomes.everness_crystal_forest_ocean.y_max
local y_min = Everness.settings.biomes.everness_crystal_forest_ocean.y_min
-- Crystal Forest Ocean
minetest.register_biome({
name = 'everness_crystal_forest_ocean',
node_top = 'everness:crystal_sand',
depth_top = 1,
node_filler = 'everness:crystal_sand',
depth_filler = 3,
node_riverbed = 'everness:crystal_sand',
depth_riverbed = 2,
node_cave_liquid = 'default:water_source',
node_dungeon = 'default:cobble',
node_dungeon_alt = 'default:mossycobble',
node_dungeon_stair = 'stairs:stair_cobble',
y_max = y_max,
y_min = y_min,
heat_point = 35,
humidity_point = 50,
})
--
-- Register decorations
--
-- Coral reef
minetest.register_decoration({
name = 'everness:crystal_forest_ocean_corals',
deco_type = 'simple',
place_on = { 'everness:crystal_sand' },
place_offset_y = -1,
sidelen = 4,
noise_params = {
offset = -4,
scale = 4,
spread = { x = 50, y = 50, z = 50 },
seed = 7013,
octaves = 3,
persist = 0.7,
},
biomes = { 'everness_crystal_forest_ocean' },
y_max = y_max,
y_min = y_max - 10 > y_min and y_max - 10 or y_min,
flags = 'force_placement',
decoration = {
'everness:crystal_coral_dark',
'everness:crystal_coral_light'
},
})

View File

@ -0,0 +1,70 @@
--[[
Everness. Never ending discovery in Everness mapgen.
Copyright (C) 2023 SaKeL <juraj.vajda@gmail.com>
This library is free software; you can redistribute it and/or
modify it under the terms of the GNU Lesser General Public
License as published by the Free Software Foundation; either
version 2.1 of the License, or (at your option) any later version.
This library is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
Lesser General Public License for more details.
You should have received a copy of the GNU Lesser General Public
License along with this library; if not, write to juraj.vajda@gmail.com
--]]
--
-- Register biomes
--
local y_max = Everness.settings.biomes.everness_crystal_forest_shore.y_max
local y_min = Everness.settings.biomes.everness_crystal_forest_shore.y_min
-- Crystal Forest Shore
minetest.register_biome({
name = 'everness_crystal_forest_shore',
node_top = 'everness:crystal_sand',
depth_top = 1,
node_filler = 'everness:crystal_sand',
depth_filler = 3,
node_riverbed = 'everness:crystal_sand',
depth_riverbed = 2,
node_cave_liquid = 'default:water_source',
node_dungeon = 'default:cobble',
node_dungeon_alt = 'default:mossycobble',
node_dungeon_stair = 'stairs:stair_cobble',
y_max = y_max,
y_min = y_min,
heat_point = 35,
humidity_point = 50,
})
--
-- Register decorations
--
minetest.register_decoration({
name = 'everness:crystal_forest_shore_crystal_waterlily',
deco_type = 'simple',
place_on = { 'everness:crystal_sand' },
sidelen = 16,
noise_params = {
offset = -0.12,
scale = 0.3,
spread = { x = 200, y = 200, z = 200 },
seed = 33,
octaves = 3,
persist = 0.7
},
biomes = { 'everness_crystal_forest_shore' },
y_max = y_max,
y_min = y_max,
decoration = 'everness:crystal_waterlily',
param2 = 0,
param2_max = 3,
place_offset_y = 1,
})

View File

@ -0,0 +1,222 @@
--[[
Everness. Never ending discovery in Everness mapgen.
Copyright (C) 2023 SaKeL <juraj.vajda@gmail.com>
This library is free software; you can redistribute it and/or
modify it under the terms of the GNU Lesser General Public
License as published by the Free Software Foundation; either
version 2.1 of the License, or (at your option) any later version.
This library is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
Lesser General Public License for more details.
You should have received a copy of the GNU Lesser General Public
License along with this library; if not, write to juraj.vajda@gmail.com
--]]
--
-- Register biomes
--
local y_max = Everness.settings.biomes.everness_crystal_forest_under.y_max
local y_min = Everness.settings.biomes.everness_crystal_forest_under.y_min
-- Crystal Forest Under
minetest.register_biome({
name = 'everness_crystal_forest_under',
node_cave_liquid = { 'default:water_source', 'default:lava_source' },
node_dungeon = 'default:cobble',
node_dungeon_alt = 'default:mossycobble',
node_dungeon_stair = 'stairs:stair_cobble',
y_max = y_max,
y_min = y_min,
heat_point = 35,
humidity_point = 50,
})
--
-- Register decorations
--
minetest.register_decoration({
name = 'everness:crystal_forest_under_floors',
deco_type = 'simple',
place_on = { 'default:stone' },
sidelen = 16,
place_offset_y = -1,
fill_ratio = 10,
biomes = { 'everness_crystal_forest_under' },
y_max = y_max,
y_min = y_min,
decoration = {
'everness:crystal_cave_dirt_with_moss',
'everness:crystal_moss_block'
},
flags = 'all_floors, force_placement'
})
minetest.register_decoration({
name = 'everness:crystal_forest_under_ceilings',
deco_type = 'simple',
place_on = { 'default:stone' },
sidelen = 16,
fill_ratio = 0.4,
biomes = { 'everness_crystal_forest_under' },
y_max = y_max,
y_min = y_min,
flags = 'all_ceilings',
decoration = {
'everness:crystal_moss_block'
},
})
minetest.register_decoration({
name = 'everness:crystal_forest_under_vines',
deco_type = 'simple',
place_on = { 'everness:crystal_moss_block' },
sidelen = 16,
fill_ratio = 0.05,
biomes = { 'everness_crystal_forest_under' },
param2 = 8,
decoration = {
'everness:twisted_vine_1',
'everness:twisted_vine_2',
'everness:golden_vine_1',
'everness:golden_vine_2'
},
y_max = y_max,
y_min = y_min,
flags = 'all_ceilings',
spawn_by = 'air',
num_spawn_by = 8
})
minetest.register_decoration({
name = 'everness:crystal_forest_under_crystal_purple_cluster',
deco_type = 'schematic',
place_on = {
'everness:crystal_cave_dirt_with_moss',
'everness:crystal_moss_block'
},
place_offset_y = -7,
sidelen = 16,
noise_params = {
offset = 0,
scale = 0.002,
spread = { x = 250, y = 250, z = 250 },
seed = 2,
octaves = 3,
persist = 0.66
},
biomes = { 'everness_crystal_forest_under' },
y_max = y_max - 1500 > y_min and y_max - 1500 or y_max,
y_min = y_min,
schematic = minetest.get_modpath('everness') .. '/schematics/everness_crystal_purple_cluster.mts',
flags = 'place_center_x, place_center_z, all_floors, force_placement',
rotation = 'random',
spawn_by = {
'everness:crystal_cave_dirt_with_moss',
'everness:crystal_moss_block'
},
num_spawn_by = 8,
})
minetest.register_decoration({
name = 'everness:crystal_forest_under_crystal_orange_cluster',
deco_type = 'schematic',
place_on = {
'everness:crystal_cave_dirt_with_moss',
'everness:crystal_moss_block'
},
sidelen = 16,
place_offset_y = 1,
noise_params = {
offset = 0,
scale = 0.002,
spread = { x = 250, y = 250, z = 250 },
seed = 2,
octaves = 3,
persist = 0.66
},
biomes = { 'everness_crystal_forest_under' },
y_max = y_max - 1000 > y_min and y_max - 1000 or y_max,
y_min = y_min,
schematic = minetest.get_modpath('everness') .. '/schematics/everness_crystal_orange_cluster.mts',
flags = 'place_center_x, place_center_z, all_floors',
rotation = 'random',
spawn_by = {
'everness:crystal_cave_dirt_with_moss',
'everness:crystal_moss_block'
},
num_spawn_by = 8,
})
minetest.register_decoration({
name = 'everness:crystal_forest_under_crystal_cyan',
deco_type = 'simple',
place_on = {
'everness:crystal_cave_dirt_with_moss',
'everness:crystal_moss_block'
},
sidelen = 16,
noise_params = {
offset = 0,
scale = 0.02,
spread = { x = 200, y = 200, z = 200 },
seed = 329,
octaves = 3,
persist = 0.6
},
biomes = { 'everness_crystal_forest_under' },
y_max = y_max,
y_min = y_min,
decoration = 'everness:crystal_cyan',
flags = 'all_floors',
param2 = 1
})
minetest.register_decoration({
name = 'everness:crystal_forest_under_twisted_crystal_grass',
deco_type = 'simple',
place_on = {
'everness:crystal_cave_dirt_with_moss',
'everness:crystal_moss_block'
},
sidelen = 16,
noise_params = {
offset = 0,
scale = 0.2,
spread = { x = 100, y = 100, z = 100 },
seed = 801,
octaves = 3,
persist = 0.7
},
biomes = { 'everness_crystal_forest_under' },
y_max = y_max - 500 > y_min and y_max - 500 or y_max,
y_min = y_min,
decoration = 'everness:twisted_crystal_grass',
flags = 'all_floors'
})
minetest.register_decoration({
name = 'everness:crystal_forest_under_crystal_cyan_ceiling',
deco_type = 'simple',
place_on = { 'default:stone' },
sidelen = 16,
noise_params = {
offset = 0,
scale = 0.02,
spread = { x = 200, y = 200, z = 200 },
seed = 329,
octaves = 3,
persist = 0.6
},
biomes = { 'everness_crystal_forest_under' },
y_max = y_max,
y_min = y_min,
decoration = 'everness:crystal_cyan',
flags = 'all_ceilings',
})

186
mapgen_cursed_lands.lua Normal file
View File

@ -0,0 +1,186 @@
--[[
Everness. Never ending discovery in Everness mapgen.
Copyright (C) 2023 SaKeL <juraj.vajda@gmail.com>
This library is free software; you can redistribute it and/or
modify it under the terms of the GNU Lesser General Public
License as published by the Free Software Foundation; either
version 2.1 of the License, or (at your option) any later version.
This library is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
Lesser General Public License for more details.
You should have received a copy of the GNU Lesser General Public
License along with this library; if not, write to juraj.vajda@gmail.com
--]]
--
-- Register biomes
--
local y_max = Everness.settings.biomes.everness_cursed_lands.y_max
local y_min = Everness.settings.biomes.everness_cursed_lands.y_min
-- Cursed Lands
minetest.register_biome({
name = 'everness_cursed_lands',
node_top = 'everness:dirt_with_cursed_grass',
depth_top = 1,
node_filler = 'everness:cursed_dirt',
depth_filler = 1,
node_riverbed = 'everness:cursed_dirt',
depth_riverbed = 2,
node_dungeon = 'default:cobble',
node_dungeon_alt = 'default:mossycobble',
node_dungeon_stair = 'stairs:stair_cobble',
y_max = y_max,
y_min = y_min,
heat_point = 45,
humidity_point = 85,
})
--
-- Register decorations
--
minetest.register_decoration({
name = 'everness:cursed_lands_cemetery',
deco_type = 'schematic',
place_on = { 'everness:dirt_with_cursed_grass' },
sidelen = 8,
noise_params = {
offset = -0.0003,
scale = 0.0009,
spread = { x = 200, y = 200, z = 200 },
seed = 230,
octaves = 3,
persist = 0.6
},
biomes = { 'everness_cursed_lands' },
y_max = y_max,
y_min = y_min,
schematic = minetest.get_modpath('everness') .. '/schematics/everness_cemetery.mts',
flags = 'place_center_x, place_center_z',
rotation = 'random',
})
minetest.register_decoration({
name = 'everness:cursed_lands_ruins_1',
deco_type = 'schematic',
place_on = { 'everness:dirt_with_cursed_grass' },
sidelen = 8,
noise_params = {
offset = -0.0003,
scale = 0.0009,
spread = { x = 200, y = 200, z = 200 },
seed = 230,
octaves = 3,
persist = 0.6
},
biomes = { 'everness_cursed_lands' },
y_max = y_max,
y_min = y_min,
schematic = minetest.get_modpath('everness') .. '/schematics/everness_ruins_1.mts',
flags = 'place_center_x, place_center_z',
rotation = 'random',
})
local function register_red_castor_decoration(offset, scale, length)
minetest.register_decoration({
name = 'everness:cursed_lands_red_castor_' .. length,
deco_type = 'simple',
place_on = { 'everness:dirt_with_cursed_grass' },
sidelen = 16,
noise_params = {
offset = offset,
scale = scale,
spread = { x = 200, y = 200, z = 200 },
seed = 329,
octaves = 3,
persist = 0.6
},
biomes = { 'everness_cursed_lands' },
y_max = y_max,
y_min = y_min,
decoration = 'everness:red_castor_' .. length,
})
end
-- Red Castor Grasses
register_red_castor_decoration(-0.03, 0.09, 4)
register_red_castor_decoration(-0.015, 0.075, 3)
register_red_castor_decoration(0, 0.06, 2)
register_red_castor_decoration(0.015, 0.045, 1)
minetest.register_decoration({
name = 'everness:cursed_lands_cursed_mud',
deco_type = 'simple',
place_on = { 'everness:dirt_with_cursed_grass', 'everness:cursed_dirt', 'everness:cursed_sand' },
place_offset_y = -1,
sidelen = 4,
noise_params = {
offset = -4,
scale = 4,
spread = { x = 50, y = 50, z = 50 },
seed = 7013,
octaves = 3,
persist = 0.7,
},
biomes = { 'everness_cursed_lands' },
y_max = y_max,
y_min = y_min,
flags = 'force_placement',
decoration = { 'everness:cursed_mud' },
})
minetest.register_decoration({
name = 'everness:cursed_lands_dry_tree',
deco_type = 'schematic',
place_on = {
'everness:dirt_with_cursed_grass',
'everness:cursed_dirt',
'everness:cursed_sand',
'everness:cursed_stone'
},
place_offset_y = 0,
sidelen = 16,
noise_params = {
offset = 0.0015,
scale = 0.0021,
spread = { x = 250, y = 250, z = 250 },
seed = 2,
octaves = 3,
persist = 0.66
},
biomes = { 'everness_cursed_lands' },
y_max = y_max,
y_min = y_min,
schematic = minetest.get_modpath('everness') .. '/schematics/everness_dry_tree.mts',
flags = 'place_center_x, place_center_z',
rotation = 'random',
})
minetest.register_decoration({
name = 'everness:cursed_lands_cursed_bush',
deco_type = 'schematic',
place_on = { 'everness:dirt_with_cursed_grass' },
sidelen = 16,
place_offset_y = 1,
noise_params = {
offset = -0.004,
scale = 0.01,
spread = { x = 100, y = 100, z = 100 },
seed = 137,
octaves = 3,
persist = 0.7,
},
biomes = { 'everness_cursed_lands' },
y_max = y_max,
y_min = y_min,
schematic = minetest.get_modpath('everness') .. '/schematics/everness_cursed_bush.mts',
flags = 'place_center_x, place_center_z',
})

View File

@ -0,0 +1,75 @@
--[[
Everness. Never ending discovery in Everness mapgen.
Copyright (C) 2023 SaKeL <juraj.vajda@gmail.com>
This library is free software; you can redistribute it and/or
modify it under the terms of the GNU Lesser General Public
License as published by the Free Software Foundation; either
version 2.1 of the License, or (at your option) any later version.
This library is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
Lesser General Public License for more details.
You should have received a copy of the GNU Lesser General Public
License along with this library; if not, write to juraj.vajda@gmail.com
--]]
--
-- Register biomes
--
local y_max = Everness.settings.biomes.everness_cursed_lands_dunes.y_max
local y_min = Everness.settings.biomes.everness_cursed_lands_dunes.y_min
-- Cursed Lands Dunes
minetest.register_biome({
name = 'everness_cursed_lands_dunes',
node_top = 'everness:cursed_sand',
depth_top = 1,
node_filler = 'everness:cursed_sand',
depth_filler = 3,
node_riverbed = 'everness:cursed_sand',
depth_riverbed = 2,
node_dungeon = 'default:cobble',
node_dungeon_alt = 'default:mossycobble',
node_dungeon_stair = 'stairs:stair_cobble',
vertical_blend = 1,
y_max = y_max,
y_min = y_min,
heat_point = 45,
humidity_point = 85,
})
--
-- Register decorations
--
minetest.register_decoration({
name = 'everness:cursed_lands_dunes_dry_tree',
deco_type = 'schematic',
place_on = {
'everness:dirt_with_cursed_grass',
'everness:cursed_dirt',
'everness:cursed_sand',
'everness:cursed_stone'
},
place_offset_y = 0,
sidelen = 16,
noise_params = {
offset = 0.0015,
scale = 0.0021,
spread = { x = 250, y = 250, z = 250 },
seed = 2,
octaves = 3,
persist = 0.66
},
biomes = { 'everness_cursed_lands_dunes' },
y_max = y_max,
y_min = y_min,
schematic = minetest.get_modpath('everness') .. '/schematics/everness_dry_tree.mts',
flags = 'place_center_x, place_center_z',
rotation = 'random',
})

View File

@ -0,0 +1,100 @@
--[[
Everness. Never ending discovery in Everness mapgen.
Copyright (C) 2023 SaKeL <juraj.vajda@gmail.com>
This library is free software; you can redistribute it and/or
modify it under the terms of the GNU Lesser General Public
License as published by the Free Software Foundation; either
version 2.1 of the License, or (at your option) any later version.
This library is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
Lesser General Public License for more details.
You should have received a copy of the GNU Lesser General Public
License along with this library; if not, write to juraj.vajda@gmail.com
--]]
--
-- Register biomes
--
local y_max = Everness.settings.biomes.everness_cursed_lands_ocean.y_max
local y_min = Everness.settings.biomes.everness_cursed_lands_ocean.y_min
-- Cursed Lands Ocean
minetest.register_biome({
name = 'everness_cursed_lands_ocean',
node_top = 'everness:cursed_stone',
depth_top = 1,
node_filler = 'everness:cursed_stone',
depth_filler = 3,
node_riverbed = 'everness:cursed_stone',
depth_riverbed = 2,
node_cave_liquid = 'default:water_source',
node_dungeon = 'default:cobble',
node_dungeon_alt = 'default:mossycobble',
node_dungeon_stair = 'stairs:stair_cobble',
y_max = y_max,
y_min = y_min,
heat_point = 45,
humidity_point = 85,
})
--
-- Register decorations
--
minetest.register_decoration({
name = 'everness:cursed_lands_ocean_dry_tree',
deco_type = 'schematic',
place_on = {
'everness:dirt_with_cursed_grass',
'everness:cursed_dirt',
'everness:cursed_sand',
'everness:cursed_stone'
},
place_offset_y = 0,
sidelen = 16,
noise_params = {
offset = 0.0015,
scale = 0.0021,
spread = { x = 250, y = 250, z = 250 },
seed = 2,
octaves = 3,
persist = 0.66
},
biomes = { 'everness_cursed_lands_ocean' },
y_max = y_max,
y_min = y_max - (y_max + 1),
schematic = minetest.get_modpath('everness') .. '/schematics/everness_dry_tree.mts',
flags = 'place_center_x, place_center_z',
rotation = 'random',
})
-- Spine Kelp
minetest.register_decoration({
name = 'everness:sand_with_spine_kelp',
deco_type = 'simple',
place_on = { 'everness:cursed_stone' },
place_offset_y = -1,
sidelen = 16,
noise_params = {
offset = -0.04,
scale = 0.1,
spread = { x = 200, y = 200, z = 200 },
seed = 87112,
octaves = 3,
persist = 0.7
},
biomes = { 'everness_cursed_lands_ocean' },
y_max = y_max - (y_max + 5),
y_min = y_max - (y_max + 10),
flags = 'force_placement',
decoration = 'everness:sand_with_spine_kelp',
param2 = 48,
param2_max = 96,
})

View File

@ -0,0 +1,91 @@
--[[
Everness. Never ending discovery in Everness mapgen.
Copyright (C) 2023 SaKeL <juraj.vajda@gmail.com>
This library is free software; you can redistribute it and/or
modify it under the terms of the GNU Lesser General Public
License as published by the Free Software Foundation; either
version 2.1 of the License, or (at your option) any later version.
This library is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
Lesser General Public License for more details.
You should have received a copy of the GNU Lesser General Public
License along with this library; if not, write to juraj.vajda@gmail.com
--]]
--
-- Register biomes
--
local y_max = Everness.settings.biomes.everness_cursed_lands_swamp.y_max
local y_min = Everness.settings.biomes.everness_cursed_lands_swamp.y_min
-- Cursed Lands Swamp
minetest.register_biome({
name = 'everness_cursed_lands_swamp',
node_top = 'everness:cursed_stone',
depth_top = 1,
node_filler = 'everness:cursed_stone',
depth_filler = 3,
node_riverbed = 'everness:cursed_stone',
depth_riverbed = 2,
node_dungeon = 'default:cobble',
node_dungeon_alt = 'default:mossycobble',
node_dungeon_stair = 'stairs:stair_cobble',
y_max = y_max,
y_min = y_min,
heat_point = 45,
humidity_point = 85,
})
--
-- Register decorations
--
minetest.register_decoration({
name = 'everness:cursed_lands_swamp_dry_tree',
deco_type = 'schematic',
place_on = { 'everness:cursed_stone' },
place_offset_y = 0,
sidelen = 16,
-- Noise tuned to place swamp trees where papyrus is absent
noise_params = {
offset = 0.0,
scale = -0.1,
spread = { x = 200, y = 200, z = 200 },
seed = 354,
octaves = 1,
persist = 0.5
},
biomes = { 'everness_cursed_lands_swamp' },
y_max = y_min,
y_min = y_min,
schematic = minetest.get_modpath('everness') .. '/schematics/everness_dry_tree.mts',
flags = 'place_center_x, place_center_z',
rotation = 'random',
})
minetest.register_decoration({
name = 'everness:cursed_lands_swamp_marsh_grass',
deco_type = 'schematic',
place_on = { 'everness:cursed_stone' },
place_offset_y = 1,
sidelen = 16,
-- Noise tuned to place where papyrus is absent
noise_params = {
offset = 0.0,
scale = -0.1,
spread = { x = 200, y = 200, z = 200 },
seed = 354,
octaves = 1,
persist = 0.5
},
biomes = { 'everness_cursed_lands_swamp' },
y_max = y_max,
y_min = y_max,
schematic = minetest.get_modpath('everness') .. '/schematics/everness_marsh_grass.mts',
})

View File

@ -0,0 +1,242 @@
--[[
Everness. Never ending discovery in Everness mapgen.
Copyright (C) 2023 SaKeL <juraj.vajda@gmail.com>
This library is free software; you can redistribute it and/or
modify it under the terms of the GNU Lesser General Public
License as published by the Free Software Foundation; either
version 2.1 of the License, or (at your option) any later version.
This library is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
Lesser General Public License for more details.
You should have received a copy of the GNU Lesser General Public
License along with this library; if not, write to juraj.vajda@gmail.com
--]]
--
-- Register biomes
--
local y_max = Everness.settings.biomes.everness_cursed_lands_under.y_max
local y_min = Everness.settings.biomes.everness_cursed_lands_under.y_min
-- Cursed Lands Under
minetest.register_biome({
name = 'everness_cursed_lands_under',
node_cave_liquid = { 'default:water_source', 'default:lava_source' },
node_dungeon = 'default:cobble',
node_dungeon_alt = 'default:mossycobble',
node_dungeon_stair = 'stairs:stair_cobble',
y_max = y_max,
y_min = y_min,
heat_point = 45,
humidity_point = 85,
})
--
-- Register decorations
--
minetest.register_decoration({
name = 'everness:cursed_lands_under_soul_sandstone_floors',
deco_type = 'simple',
place_on = { 'default:stone' },
place_offset_y = -1,
sidelen = 16,
fill_ratio = 10,
biomes = { 'everness_cursed_lands_under' },
y_max = y_max,
y_min = y_min,
flags = 'all_floors, force_placement',
decoration = {
'everness:soul_sandstone_veined'
},
})
minetest.register_decoration({
name = 'everness:cursed_lands_under_mold_stone_ceilings',
deco_type = 'simple',
place_on = { 'default:stone' },
sidelen = 16,
fill_ratio = 0.4,
biomes = { 'everness_cursed_lands_under' },
y_max = y_max,
y_min = y_min,
flags = 'all_ceilings',
decoration = {
'everness:moss_block'
},
})
minetest.register_decoration({
name = 'everness:cursed_lands_under_skull_with_candle',
deco_type = 'simple',
place_on = { 'everness:soul_sandstone_veined' },
sidelen = 16,
noise_params = {
offset = -0.004,
scale = 0.01,
spread = { x = 100, y = 100, z = 100 },
seed = 137,
octaves = 3,
persist = 0.7,
},
biomes = { 'everness_cursed_lands_under' },
y_max = y_max - 1000 > y_min and y_max - 1000 or y_max,
y_min = y_min,
decoration = 'everness:skull_with_candle',
flags = 'all_floors',
param2_max = 3
})
minetest.register_decoration({
name = 'everness:cursed_lands_under_vines',
deco_type = 'simple',
place_on = { 'everness:moss_block' },
sidelen = 16,
fill_ratio = 0.05,
biomes = { 'everness_cursed_lands_under' },
param2 = 8,
decoration = {
'everness:eye_vine_1',
'everness:eye_vine_2',
'everness:ivis_vine_1',
'everness:ivis_vine_2'
},
y_max = y_max,
y_min = y_min,
flags = 'all_ceilings',
spawn_by = 'air',
num_spawn_by = 8
})
minetest.register_decoration({
name = 'everness:cursed_lands_under_pumpkin_lantern',
deco_type = 'simple',
place_on = { 'everness:soul_sandstone_veined' },
sidelen = 16,
noise_params = {
offset = 0,
scale = 0.002,
spread = { x = 250, y = 250, z = 250 },
seed = 2,
octaves = 3,
persist = 0.66
},
biomes = { 'everness_cursed_lands_under' },
y_max = y_max - 500 > y_min and y_max - 500 or y_max,
y_min = y_min,
decoration = { 'everness:cursed_pumpkin_lantern' },
flags = 'all_floors',
param2_max = 3
})
minetest.register_decoration({
name = 'everness:cursed_lands_under_cursed_dream_tree',
deco_type = 'schematic',
place_on = { 'everness:soul_sandstone_veined' },
place_offset_y = 1,
sidelen = 16,
noise_params = {
offset = 0,
scale = 0.002,
spread = { x = 250, y = 250, z = 250 },
seed = 2,
octaves = 3,
persist = 0.66
},
biomes = { 'everness_cursed_lands_under' },
y_max = y_max - 1500 > y_min and y_max - 1500 or y_max,
y_min = y_min,
schematic = minetest.get_modpath('everness') .. '/schematics/everness_cursed_dream_tree.mts',
flags = 'place_center_x, place_center_z, all_floors, force_placement',
rotation = 'random',
spawn_by = 'everness:soul_sandstone_veined',
num_spawn_by = 8,
})
minetest.register_decoration({
name = 'everness:cursed_lands_under_plants',
deco_type = 'simple',
place_on = { 'everness:soul_sandstone_veined' },
sidelen = 16,
noise_params = {
offset = 0,
scale = 0.02,
spread = { x = 200, y = 200, z = 200 },
seed = 329,
octaves = 3,
persist = 0.6
},
biomes = { 'everness_cursed_lands_under' },
y_max = y_max,
y_min = y_min,
decoration = {
'everness:egg_plant',
'everness:ngrass_2',
},
flags = 'all_floors',
})
minetest.register_decoration({
name = 'everness:cursed_lands_under_ivis_moss',
deco_type = 'simple',
place_on = { 'everness:soul_sandstone_veined' },
sidelen = 16,
noise_params = {
offset = 0,
scale = 0.02,
spread = { x = 200, y = 200, z = 200 },
seed = 329,
octaves = 3,
persist = 0.6
},
biomes = { 'everness_cursed_lands_under' },
y_max = y_max,
y_min = y_min,
decoration = {
'everness:ivis_moss',
},
flags = 'all_floors',
param2 = 3
})
minetest.register_decoration({
name = 'everness:cursed_lands_under_ngrass_1',
deco_type = 'simple',
place_on = { 'everness:soul_sandstone_veined' },
sidelen = 16,
noise_params = {
offset = 0,
scale = 0.02,
spread = { x = 200, y = 200, z = 200 },
seed = 329,
octaves = 3,
persist = 0.6
},
biomes = { 'everness_cursed_lands_under' },
y_max = y_max,
y_min = y_min,
decoration = {
'everness:ngrass_1',
},
flags = 'all_floors',
param2 = 2
})
minetest.register_decoration({
name = 'everness:cursed_lands_under_cobweb_floors',
deco_type = 'simple',
place_on = { 'everness:soul_sandstone_veined' },
sidelen = 16,
fill_ratio = 0.02,
biomes = { 'everness_cursed_lands_under' },
y_max = y_max,
y_min = y_min,
decoration = { 'everness:cobweb' },
flags = 'all_floors'
})

197
mapgen_forsaken_desert.lua Normal file
View File

@ -0,0 +1,197 @@
--[[
Everness. Never ending discovery in Everness mapgen.
Copyright (C) 2023 SaKeL <juraj.vajda@gmail.com>
This library is free software; you can redistribute it and/or
modify it under the terms of the GNU Lesser General Public
License as published by the Free Software Foundation; either
version 2.1 of the License, or (at your option) any later version.
This library is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
Lesser General Public License for more details.
You should have received a copy of the GNU Lesser General Public
License along with this library; if not, write to juraj.vajda@gmail.com
--]]
--
-- Register biomes
--
local y_max = Everness.settings.biomes.everness_forsaken_desert.y_max
local y_min = Everness.settings.biomes.everness_forsaken_desert.y_min
-- Forsaken Desert
minetest.register_biome({
name = 'everness_forsaken_desert',
node_top = 'everness:forsaken_desert_sand',
depth_top = 1,
node_stone = 'everness:forsaken_desert_stone',
node_filler = 'everness:forsaken_desert_sand',
depth_filler = 1,
node_riverbed = 'everness:forsaken_desert_sand',
depth_riverbed = 2,
node_dungeon = 'everness:forsaken_desert_brick',
node_dungeon_alt = 'everness:forsaken_desert_brick_red',
node_dungeon_stair = 'stairs:stair_forsaken_desert_brick',
y_max = y_max,
y_min = y_min,
heat_point = 100,
humidity_point = 30,
})
--
-- Register ores
--
-- Stratum ores.
-- These obviously first.
minetest.register_ore({
ore_type = 'stratum',
ore = 'everness:forsaken_desert_cobble',
wherein = { 'everness:forsaken_desert_stone' },
clust_scarcity = 1,
y_max = (y_max - y_max) + 46,
y_min = (y_max - y_max) + 4,
noise_params = {
offset = 28,
scale = 16,
spread = { x = 128, y = 128, z = 128 },
seed = 90122,
octaves = 1,
},
stratum_thickness = 4,
biomes = { 'everness_forsaken_desert' },
})
minetest.register_ore({
ore_type = 'stratum',
ore = 'everness:forsaken_desert_cobble',
wherein = { 'everness:forsaken_desert_stone' },
clust_scarcity = 1,
y_max = (y_max - y_max) + 42,
y_min = (y_max - y_max) + 6,
noise_params = {
offset = 24,
scale = 16,
spread = { x = 128, y = 128, z = 128 },
seed = 90122,
octaves = 1,
},
stratum_thickness = 2,
biomes = { 'everness_forsaken_desert' },
})
--
-- Register decorations
--
minetest.register_decoration({
name = 'everness:forsaken_desert_sand_plants_1',
deco_type = 'simple',
place_on = { 'everness:forsaken_desert_sand' },
sidelen = 16,
noise_params = {
offset = 0,
scale = 0.02,
spread = { x = 200, y = 200, z = 200 },
seed = 329,
octaves = 3,
persist = 0.6
},
biomes = { 'everness_forsaken_desert' },
y_max = y_max,
y_min = y_min,
decoration = { 'everness:forsaken_desert_plant_1' },
param2 = 11,
})
minetest.register_decoration({
name = 'everness:forsaken_desert_sand_plants_2',
deco_type = 'simple',
place_on = { 'everness:forsaken_desert_sand' },
sidelen = 16,
noise_params = {
offset = 0,
scale = 0.02,
spread = { x = 200, y = 200, z = 200 },
seed = 329,
octaves = 3,
persist = 0.6
},
biomes = { 'everness_forsaken_desert' },
y_max = y_max,
y_min = y_min,
decoration = {
'everness:forsaken_desert_plant_2',
'everness:forsaken_desert_plant_3'
},
param2 = 8,
})
minetest.register_decoration({
name = 'everness:forsaken_desert_termite_nest',
deco_type = 'schematic',
place_on = { 'everness:forsaken_desert_sand' },
sidelen = 16,
noise_params = {
offset = -0.004,
scale = 0.01,
spread = { x = 100, y = 100, z = 100 },
seed = 137,
octaves = 3,
persist = 0.7,
},
biomes = { 'everness_forsaken_desert' },
y_max = y_max,
y_min = y_min,
schematic = minetest.get_modpath('everness') .. '/schematics/everness_termite_nest.mts',
flags = 'place_center_x, place_center_z',
rotation = 'random',
})
minetest.register_decoration({
name = 'everness:forsaken_desert_hollow_tree',
deco_type = 'schematic',
place_on = { 'everness:forsaken_desert_sand' },
sidelen = 16,
noise_params = {
offset = 0,
scale = 0.002,
spread = { x = 250, y = 250, z = 250 },
seed = 2,
octaves = 3,
persist = 0.66
},
biomes = { 'everness_forsaken_desert' },
y_max = y_max,
y_min = y_min,
schematic = minetest.get_modpath('everness') .. '/schematics/everness_hollow_tree.mts',
flags = 'place_center_x, place_center_z',
rotation = 'random',
})
minetest.register_decoration({
name = 'everness:forsaken_desert_hollow_tree_large',
deco_type = 'schematic',
place_on = { 'everness:forsaken_desert_sand' },
sidelen = 16,
noise_params = {
offset = 0,
scale = 0.001,
spread = { x = 250, y = 250, z = 250 },
seed = 2,
octaves = 3,
persist = 0.66
},
biomes = { 'everness_forsaken_desert' },
y_max = y_max,
y_min = y_min,
schematic = minetest.get_modpath('everness') .. '/schematics/everness_hollow_tree_large.mts',
flags = 'place_center_x, place_center_z',
rotation = 'random',
})

View File

@ -0,0 +1,51 @@
--[[
Everness. Never ending discovery in Everness mapgen.
Copyright (C) 2023 SaKeL <juraj.vajda@gmail.com>
This library is free software; you can redistribute it and/or
modify it under the terms of the GNU Lesser General Public
License as published by the Free Software Foundation; either
version 2.1 of the License, or (at your option) any later version.
This library is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
Lesser General Public License for more details.
You should have received a copy of the GNU Lesser General Public
License along with this library; if not, write to juraj.vajda@gmail.com
--]]
--
-- Register biomes
--
local y_max = Everness.settings.biomes.everness_forsaken_desert_ocean.y_max
local y_min = Everness.settings.biomes.everness_forsaken_desert_ocean.y_min
-- Forsaken Desert Ocean
minetest.register_biome({
name = 'everness_forsaken_desert_ocean',
node_top = 'everness:dry_ocean_dirt',
depth_top = 1,
node_stone = 'everness:forsaken_desert_stone',
node_filler = 'everness:dry_ocean_dirt',
depth_filler = 3,
node_water_top = 'everness:dry_ocean_dirt',
depth_water_top = 10,
node_river_water = 'everness:dry_ocean_dirt',
node_riverbed = 'everness:dry_ocean_dirt',
depth_riverbed = 2,
node_dungeon = 'everness:forsaken_desert_brick',
node_dungeon_alt = 'everness:forsaken_desert_brick_red',
node_dungeon_stair = 'stairs:stair_forsaken_desert_brick',
y_max = y_max,
y_min = y_min,
heat_point = 100,
humidity_point = 30,
})
--
-- Register decorations
--

View File

@ -0,0 +1,197 @@
--[[
Everness. Never ending discovery in Everness mapgen.
Copyright (C) 2023 SaKeL <juraj.vajda@gmail.com>
This library is free software; you can redistribute it and/or
modify it under the terms of the GNU Lesser General Public
License as published by the Free Software Foundation; either
version 2.1 of the License, or (at your option) any later version.
This library is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
Lesser General Public License for more details.
You should have received a copy of the GNU Lesser General Public
License along with this library; if not, write to juraj.vajda@gmail.com
--]]
--
-- Register biomes
--
local y_max = Everness.settings.biomes.everness_forsaken_desert_under.y_max
local y_min = Everness.settings.biomes.everness_forsaken_desert_under.y_min
-- Forsaken Desert Under
minetest.register_biome({
name = 'everness_forsaken_desert_under',
node_cave_liquid = { 'default:water_source', 'default:lava_source' },
node_dungeon = 'default:cobble',
node_dungeon_alt = 'default:mossycobble',
node_dungeon_stair = 'stairs:stair_cobble',
y_max = y_max,
y_min = y_min,
heat_point = 100,
humidity_point = 30,
})
--
-- Register decorations
--
minetest.register_decoration({
name = 'everness:forsaken_desert_under_floors',
deco_type = 'simple',
place_on = { 'default:stone' },
sidelen = 16,
place_offset_y = -1,
fill_ratio = 10,
biomes = { 'everness_forsaken_desert_under' },
y_max = y_max,
y_min = y_min,
flags = 'all_floors, force_placement',
decoration = {
'everness:forsaken_desert_sand'
},
})
minetest.register_decoration({
name = 'everness:forsaken_desert_under_floors_chiseled',
deco_type = 'simple',
place_on = { 'everness:forsaken_desert_sand' },
sidelen = 16,
place_offset_y = -1,
fill_ratio = 0.2,
biomes = { 'everness_forsaken_desert_under' },
y_max = y_max - 500 > y_min and y_max - 500 or y_max,
y_min = y_min,
decoration = {
'everness:forsaken_desert_chiseled_stone',
'everness:forsaken_desert_brick',
'everness:forsaken_desert_brick_red',
'everness:forsaken_desert_engraved_stone',
'everness:forsaken_desert_cobble_red',
'everness:forsaken_desert_cobble',
},
flags = 'all_floors, force_placement'
})
minetest.register_decoration({
name = 'everness:forsaken_desert_under_ceilings',
deco_type = 'simple',
place_on = { 'everness:forsaken_desert_sand' },
sidelen = 16,
fill_ratio = 0.4,
biomes = { 'everness_forsaken_desert_under' },
y_max = y_max,
y_min = y_min,
flags = 'all_ceilings',
decoration = {
'everness:moss_block'
},
})
minetest.register_decoration({
name = 'everness:forsaken_desert_under_cactus_blue',
deco_type = 'simple',
place_on = { 'everness:forsaken_desert_sand' },
sidelen = 16,
noise_params = {
offset = -0.004,
scale = 0.01,
spread = { x = 100, y = 100, z = 100 },
seed = 137,
octaves = 3,
persist = 0.7,
},
biomes = { 'everness_forsaken_desert_under' },
y_max = y_max - 500 > y_min and y_max - 500 or y_max,
y_min = y_min,
decoration = 'everness:cactus_blue',
height = 2,
height_max = 6,
flags = 'all_floors'
})
minetest.register_decoration({
name = 'everness:forsaken_desert_under_cave_barrel_cactus',
deco_type = 'simple',
place_on = {
'everness:forsaken_desert_sand',
'everness:forsaken_desert_chiseled_stone',
'everness:forsaken_desert_brick',
'everness:forsaken_desert_engraved_stone'
},
sidelen = 16,
fill_ratio = 0.005,
biomes = { 'everness_forsaken_desert_under' },
y_max = y_max - 250 > y_min and y_max - 250 or y_max,
y_min = y_min,
decoration = {
'everness:cave_barrel_cactus',
'everness:venus_trap'
},
flags = 'all_floors',
param2_max = 3
})
minetest.register_decoration({
name = 'everness:forsaken_desert_under_cave_illumi_root',
deco_type = 'simple',
place_on = {
'everness:forsaken_desert_sand',
'everness:forsaken_desert_chiseled_stone',
'everness:forsaken_desert_brick',
'everness:forsaken_desert_engraved_stone'
},
sidelen = 16,
fill_ratio = 0.005,
biomes = { 'everness_forsaken_desert_under' },
y_max = y_max,
y_min = y_min,
decoration = { 'everness:illumi_root' },
flags = 'all_floors'
})
minetest.register_decoration({
name = 'everness:forsaken_desert_under_vines',
deco_type = 'simple',
place_on = { 'everness:moss_block' },
sidelen = 16,
fill_ratio = 0.05,
biomes = { 'everness_forsaken_desert_under' },
param2 = 8,
decoration = {
'everness:dense_vine_1',
'everness:dense_vine_2'
},
y_max = y_max,
y_min = y_min,
flags = 'all_ceilings',
spawn_by = 'air',
num_spawn_by = 8
})
minetest.register_decoration({
name = 'everness:forsaken_desert_under_hollow_tree',
deco_type = 'simple',
place_on = { 'everness:forsaken_desert_sand' },
sidelen = 16,
noise_params = {
offset = 0,
scale = 0.006,
spread = { x = 250, y = 250, z = 250 },
seed = 2,
octaves = 3,
persist = 0.66
},
biomes = { 'everness_forsaken_desert_under' },
y_max = y_max,
y_min = y_min,
decoration = 'everness:hollow_tree',
height = 3,
height_max = 7,
flags = 'all_floors'
})

250
mapgen_forsaken_tundra.lua Normal file
View File

@ -0,0 +1,250 @@
--[[
Everness. Never ending discovery in Everness mapgen.
Copyright (C) 2023 SaKeL <juraj.vajda@gmail.com>
This library is free software; you can redistribute it and/or
modify it under the terms of the GNU Lesser General Public
License as published by the Free Software Foundation; either
version 2.1 of the License, or (at your option) any later version.
This library is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
Lesser General Public License for more details.
You should have received a copy of the GNU Lesser General Public
License along with this library; if not, write to juraj.vajda@gmail.com
--]]
--
-- Register biomes
--
local y_max = Everness.settings.biomes.everness_forsaken_tundra.y_max
local y_min = Everness.settings.biomes.everness_forsaken_tundra.y_min
-- Forsaken Tundra
minetest.register_biome({
name = 'everness_forsaken_tundra',
node_top = 'everness:forsaken_tundra_dirt',
depth_top = 1,
node_stone = 'everness:forsaken_tundra_stone',
node_filler = 'everness:forsaken_tundra_dirt',
depth_filler = 1,
node_riverbed = 'everness:forsaken_tundra_beach_sand',
depth_riverbed = 2,
node_dungeon = 'everness:forsaken_tundra_cobble',
node_dungeon_alt = 'everness:forsaken_tundra_brick',
node_dungeon_stair = 'stairs:stair_forsaken_tundra_cobble',
y_max = y_max,
y_min = y_min,
heat_point = 10,
humidity_point = 10,
})
--
-- Register ores
--
-- Blob ore.
-- These before scatter ores to avoid other ores in blobs.
minetest.register_ore({
ore_type = 'blob',
ore = 'everness:sulfur_stone',
wherein = { 'default:stone', 'everness:forsaken_tundra_stone' },
clust_scarcity = 16 * 16 * 16,
clust_size = 5,
y_max = y_max,
y_min = y_min,
noise_threshold = 0.0,
noise_params = {
offset = 0.5,
scale = 0.2,
spread = { x = 5, y = 5, z = 5 },
seed = -316,
octaves = 1,
persist = 0.0
},
biomes = {'everness_forsaken_tundra' }
})
--
-- Register decorations
--
minetest.register_decoration({
name = 'everness:forsaken_tundra_volcanic_sulfur',
deco_type = 'simple',
place_on = { 'everness:forsaken_tundra_dirt' },
sidelen = 4,
noise_params = {
offset = -0.7,
scale = 4.0,
spread = { x = 16, y = 16, z = 16 },
seed = 513337,
octaves = 1,
persist = 0.0,
flags = 'absvalue, eased'
},
biomes = { 'everness_forsaken_tundra' },
y_max = y_max,
y_min = y_min,
decoration = { 'everness:volcanic_sulfur' },
place_offset_y = -1,
flags = 'force_placement',
})
minetest.register_decoration({
name = 'everness:forsaken_tundra_sulfur_stone',
deco_type = 'simple',
place_on = {
'everness:forsaken_tundra_dirt',
'everness:volcanic_sulfur'
},
sidelen = 4,
noise_params = {
offset = -4,
scale = 4,
spread = { x = 50, y = 50, z = 50 },
seed = 7013,
octaves = 3,
persist = 0.7,
},
biomes = { 'everness_forsaken_tundra' },
y_max = y_max,
y_min = y_min,
place_offset_y = -1,
flags = 'force_placement',
decoration = { 'everness:sulfur_stone' },
})
minetest.register_decoration({
name = 'everness:forsaken_tundra_volcanic_sulfur_on_top_of_sulfur_stone',
deco_type = 'simple',
place_on = { 'everness:sulfur_stone' },
sidelen = 4,
noise_params = {
offset = -4,
scale = 4,
spread = { x = 50, y = 50, z = 50 },
seed = 7013,
octaves = 3,
persist = 0.7,
},
biomes = { 'everness_forsaken_tundra' },
y_max = y_max,
y_min = y_min,
decoration = { 'everness:volcanic_sulfur' },
})
minetest.register_decoration({
name = 'everness:forsaken_tundra_dirt_with_grass',
deco_type = 'simple',
place_on = {
'everness:forsaken_tundra_dirt',
'everness:volcanic_sulfur'
},
sidelen = 4,
noise_params = {
offset = -0.8,
scale = 2.0,
spread = { x = 100, y = 100, z = 100 },
seed = 53995,
octaves = 3,
persist = 1.0
},
biomes = { 'everness_forsaken_tundra' },
y_max = y_max,
y_min = y_min,
decoration = 'everness:forsaken_tundra_dirt_with_grass',
place_offset_y = -1,
flags = 'force_placement',
})
minetest.register_decoration({
name = 'everness:forsaken_tundra_bloodpore_plant',
deco_type = 'simple',
place_on = { 'everness:forsaken_tundra_dirt_with_grass' },
sidelen = 16,
noise_params = {
offset = -0.03,
scale = 0.09,
spread = { x = 200, y = 200, z = 200 },
seed = 329,
octaves = 3,
persist = 0.6
},
biomes = { 'everness_forsaken_tundra' },
y_max = y_max,
y_min = y_min,
decoration = 'everness:bloodspore_plant',
param2 = 8,
})
minetest.register_decoration({
name = 'everness:forsaken_tundra_bloodspore_plant_on_dirt',
deco_type = 'simple',
place_on = { 'everness:forsaken_tundra_dirt' },
spawn_by = 'everness:forsaken_tundra_dirt_with_grass',
num_spawn_by = 1,
sidelen = 16,
noise_params = {
offset = -0.03,
scale = 0.09,
spread = { x = 200, y = 200, z = 200 },
seed = 329,
octaves = 3,
persist = 0.6
},
biomes = { 'everness_forsaken_tundra' },
y_max = y_max,
y_min = y_min,
decoration = 'everness:bloodspore_plant',
param2 = 8,
})
minetest.register_decoration({
name = 'everness:forsaken_tundra_rocks',
deco_type = 'schematic',
place_on = { 'everness:forsaken_tundra_dirt', 'everness:forsaken_tundra_dirt_with_grass' },
sidelen = 16,
noise_params = {
offset = -0.004,
scale = 0.01,
spread = { x = 100, y = 100, z = 100 },
seed = 137,
octaves = 3,
persist = 0.7,
},
biomes = { 'everness_forsaken_tundra' },
y_max = y_max,
y_min = y_min,
schematic = minetest.get_modpath('everness') .. '/schematics/everness_forsaken_tundra_rocks.mts',
flags = 'place_center_x, place_center_z',
rotation = 'random',
})
minetest.register_decoration({
name = 'everness:forsaken_tundra_sulfur_volcano',
deco_type = 'schematic',
place_on = { 'everness:forsaken_tundra_dirt', 'everness:volcanic_sulfur' },
sidelen = 16,
noise_params = {
offset = 0,
scale = 0.002,
spread = { x = 250, y = 250, z = 250 },
seed = 2,
octaves = 3,
persist = 0.66
},
biomes = { 'everness_forsaken_tundra' },
y_max = y_max,
y_min = y_min,
schematic = minetest.get_modpath('everness') .. '/schematics/everness_sulfur_volcano.mts',
flags = 'place_center_x, place_center_z',
rotation = 'random',
spawn_by = { 'everness:forsaken_tundra_dirt', 'everness:volcanic_sulfur' },
num_spawn_by = 8,
})

View File

@ -0,0 +1,96 @@
--[[
Everness. Never ending discovery in Everness mapgen.
Copyright (C) 2023 SaKeL <juraj.vajda@gmail.com>
This library is free software; you can redistribute it and/or
modify it under the terms of the GNU Lesser General Public
License as published by the Free Software Foundation; either
version 2.1 of the License, or (at your option) any later version.
This library is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
Lesser General Public License for more details.
You should have received a copy of the GNU Lesser General Public
License along with this library; if not, write to juraj.vajda@gmail.com
--]]
--
-- Register biomes
--
local y_max = Everness.settings.biomes.everness_forsaken_tundra_beach.y_max
local y_min = Everness.settings.biomes.everness_forsaken_tundra_beach.y_min
-- Forsaken Tundra Beach
minetest.register_biome({
name = 'everness_forsaken_tundra_beach',
node_top = 'everness:forsaken_tundra_beach_sand',
depth_top = 1,
node_filler = 'everness:forsaken_tundra_beach_sand',
depth_filler = 2,
node_riverbed = 'everness:forsaken_tundra_beach_sand',
depth_riverbed = 2,
node_dungeon = 'everness:forsaken_tundra_cobble',
node_dungeon_alt = 'everness:forsaken_tundra_brick',
node_dungeon_stair = 'stairs:stair_forsaken_tundra_cobble',
vertical_blend = 1,
y_max = y_max,
y_min = y_min,
heat_point = 10,
humidity_point = 10,
})
--
-- Register ores
--
-- Blob ore.
-- These before scatter ores to avoid other ores in blobs.
minetest.register_ore({
ore_type = 'blob',
ore = 'everness:sulfur_stone',
wherein = { 'default:stone', 'everness:forsaken_tundra_stone' },
clust_scarcity = 16 * 16 * 16,
clust_size = 5,
y_max = y_max,
y_min = y_min,
noise_threshold = 0.0,
noise_params = {
offset = 0.5,
scale = 0.2,
spread = { x = 5, y = 5, z = 5 },
seed = -316,
octaves = 1,
persist = 0.0
},
biomes = { 'everness_forsaken_tundra_beach' }
})
--
-- Register decorations
--
minetest.register_decoration({
name = 'everness:forsaken_tundra_beach_sand_with_shells',
deco_type = 'simple',
place_on = { 'everness:forsaken_tundra_beach_sand' },
sidelen = 4,
noise_params = {
offset = -4,
scale = 4,
spread = { x = 50, y = 50, z = 50 },
seed = 7013,
octaves = 3,
persist = 0.7,
},
biomes = { 'everness_forsaken_tundra_beach' },
y_max = y_max,
y_min = y_min,
place_offset_y = -1,
flags = 'force_placement',
decoration = { 'everness:forsaken_tundra_beach_sand_with_shells' },
})

View File

@ -0,0 +1,98 @@
--[[
Everness. Never ending discovery in Everness mapgen.
Copyright (C) 2023 SaKeL <juraj.vajda@gmail.com>
This library is free software; you can redistribute it and/or
modify it under the terms of the GNU Lesser General Public
License as published by the Free Software Foundation; either
version 2.1 of the License, or (at your option) any later version.
This library is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
Lesser General Public License for more details.
You should have received a copy of the GNU Lesser General Public
License along with this library; if not, write to juraj.vajda@gmail.com
--]]
--
-- Register biomes
--
local y_max = Everness.settings.biomes.everness_forsaken_tundra_ocean.y_max
local y_min = Everness.settings.biomes.everness_forsaken_tundra_ocean.y_min
-- Forsaken Tundra Ocean
minetest.register_biome({
name = 'everness_forsaken_tundra_ocean',
node_top = 'everness:forsaken_tundra_beach_sand',
depth_top = 1,
node_stone = 'everness:forsaken_tundra_stone',
node_filler = 'everness:forsaken_tundra_beach_sand',
depth_filler = 3,
node_riverbed = 'everness:forsaken_tundra_beach_sand',
depth_riverbed = 2,
node_cave_liquid = 'default:water_source',
node_dungeon = 'everness:forsaken_tundra_cobble',
node_dungeon_alt = 'everness:forsaken_tundra_brick',
node_dungeon_stair = 'stairs:stair_forsaken_tundra_cobble',
vertical_blend = 1,
y_max = y_max,
y_min = y_min,
heat_point = 10,
humidity_point = 10,
})
--
-- Register ores
--
-- Blob ore.
-- These before scatter ores to avoid other ores in blobs.
minetest.register_ore({
ore_type = 'blob',
ore = 'everness:sulfur_stone',
wherein = { 'default:stone', 'everness:forsaken_tundra_stone' },
clust_scarcity = 16 * 16 * 16,
clust_size = 5,
y_max = y_max,
y_min = y_min,
noise_threshold = 0.0,
noise_params = {
offset = 0.5,
scale = 0.2,
spread = { x = 5, y = 5, z = 5 },
seed = -316,
octaves = 1,
persist = 0.0
},
biomes = { 'everness_forsaken_tundra_ocean' }
})
--
-- Register decorations
--
minetest.register_decoration({
name = 'everness:forsaken_tundra_beach_sand_with_shells',
deco_type = 'simple',
place_on = { 'everness:forsaken_tundra_beach_sand' },
sidelen = 4,
noise_params = {
offset = -4,
scale = 4,
spread = { x = 50, y = 50, z = 50 },
seed = 7013,
octaves = 3,
persist = 0.7,
},
biomes = { 'everness_forsaken_tundra_ocean' },
y_max = y_max,
y_min = y_min,
place_offset_y = -1,
flags = 'force_placement',
decoration = { 'everness:forsaken_tundra_beach_sand_with_shells' },
})

View File

@ -0,0 +1,271 @@
--[[
Everness. Never ending discovery in Everness mapgen.
Copyright (C) 2023 SaKeL <juraj.vajda@gmail.com>
This library is free software; you can redistribute it and/or
modify it under the terms of the GNU Lesser General Public
License as published by the Free Software Foundation; either
version 2.1 of the License, or (at your option) any later version.
This library is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
Lesser General Public License for more details.
You should have received a copy of the GNU Lesser General Public
License along with this library; if not, write to juraj.vajda@gmail.com
--]]
--
-- Register biomes
--
local y_max = Everness.settings.biomes.everness_forsaken_tundra_under.y_max
local y_min = Everness.settings.biomes.everness_forsaken_tundra_under.y_min
-- Forsaken Tundra Under
minetest.register_biome({
name = 'everness_forsaken_tundra_under',
node_cave_liquid = { 'default:water_source', 'default:lava_source' },
node_dungeon = 'everness:forsaken_tundra_cobble',
node_dungeon_alt = 'everness:forsaken_tundra_brick',
node_dungeon_stair = 'stairs:stair_forsaken_tundra_cobble',
y_max = y_max,
y_min = y_min,
heat_point = 10,
humidity_point = 10,
})
--
-- Register ores
--
-- Blob ore.
-- These before scatter ores to avoid other ores in blobs.
minetest.register_ore({
ore_type = 'blob',
ore = 'everness:sulfur_stone',
wherein = { 'default:stone', 'everness:forsaken_tundra_stone' },
clust_scarcity = 16 * 16 * 16,
clust_size = 5,
y_max = y_max,
y_min = y_min,
noise_threshold = 0.0,
noise_params = {
offset = 0.5,
scale = 0.2,
spread = { x = 5, y = 5, z = 5 },
seed = -316,
octaves = 1,
persist = 0.0
},
biomes = { 'everness_forsaken_tundra_under' }
})
--
-- Register decorations
--
minetest.register_decoration({
name = 'everness:forsaken_tundra_under_mold_stone_floors',
deco_type = 'simple',
place_on = { 'default:stone' },
sidelen = 16,
place_offset_y = -1,
fill_ratio = 10,
biomes = { 'everness_forsaken_tundra_under' },
y_max = y_max,
y_min = y_min,
flags = 'all_floors, force_placement',
decoration = {
'everness:mold_stone_with_moss'
},
})
minetest.register_decoration({
name = 'everness:forsaken_tundra_under_mold_stone_ceilings',
deco_type = 'simple',
place_on = { 'default:stone' },
sidelen = 16,
fill_ratio = 0.4,
biomes = { 'everness_forsaken_tundra_under' },
y_max = y_max,
y_min = y_min,
flags = 'all_ceilings',
decoration = {
'everness:moss_block'
},
})
minetest.register_decoration({
name = 'everness:forsaken_tundra_under_obsidian_floors',
deco_type = 'simple',
place_on = { 'default:stone', 'everness:mold_stone_with_moss' },
sidelen = 16,
place_offset_y = -1,
fill_ratio = 0.02,
biomes = { 'everness_forsaken_tundra_under' },
y_max = y_max - 500 > y_min and y_max - 500 or y_max,
y_min = y_min,
decoration = {
'everness:blue_crying_obsidian',
'everness:blue_weeping_obsidian',
'everness:weeping_obsidian'
},
flags = 'all_floors, force_placement'
})
minetest.register_decoration({
name = 'everness:forsaken_tundra_under_obsidian_ceilings',
deco_type = 'simple',
place_on = { 'default:stone', 'everness:moss_block' },
sidelen = 16,
place_offset_y = -1,
fill_ratio = 0.02,
biomes = { 'everness_forsaken_tundra_under' },
y_max = y_max - 500 > y_min and y_max - 500 or y_max,
y_min = y_min,
decoration = {
'everness:blue_crying_obsidian',
'everness:blue_weeping_obsidian',
'everness:weeping_obsidian'
},
flags = 'all_ceilings, force_placement'
})
minetest.register_decoration({
name = 'everness:forsaken_tundra_under_cactus_orange',
deco_type = 'simple',
place_on = { 'everness:mold_stone_with_moss' },
sidelen = 16,
noise_params = {
offset = -0.004,
scale = 0.01,
spread = { x = 100, y = 100, z = 100 },
seed = 137,
octaves = 3,
persist = 0.7,
},
biomes = { 'everness_forsaken_tundra_under' },
y_max = y_max - 500 > y_min and y_max - 500 or y_max,
y_min = y_min,
decoration = 'everness:cactus_orange',
height = 2,
height_max = 6,
flags = 'all_floors'
})
minetest.register_decoration({
name = 'everness:forsaken_tundra_under_bloodspore_plant_small',
deco_type = 'simple',
place_on = { 'everness:mold_stone_with_moss' },
sidelen = 16,
noise_params = {
offset = 0,
scale = 0.02,
spread = { x = 200, y = 200, z = 200 },
seed = 329,
octaves = 3,
persist = 0.6
},
biomes = { 'everness_forsaken_tundra_under' },
y_max = y_max,
y_min = y_min,
decoration = 'everness:bloodspore_plant_small',
param2 = 8,
flags = 'all_floors'
})
minetest.register_decoration({
name = 'everness:forsaken_tundra_under_vines',
deco_type = 'simple',
place_on = { 'everness:moss_block' },
sidelen = 16,
fill_ratio = 0.05,
biomes = { 'everness_forsaken_tundra_under' },
param2 = 8,
decoration = {
'everness:whispering_gourd_vine_1',
'everness:whispering_gourd_vine_2',
'everness:bulb_vine_1',
'everness:bulb_vine_2'
},
y_max = y_max,
y_min = y_min,
flags = 'all_ceilings',
spawn_by = 'air',
num_spawn_by = 8
})
minetest.register_decoration({
name = 'everness:forsaken_tundra_under_glowing_pillar',
deco_type = 'simple',
place_on = { 'everness:mold_stone_with_moss' },
sidelen = 16,
noise_params = {
offset = 0,
scale = 0.002,
spread = { x = 250, y = 250, z = 250 },
seed = 2,
octaves = 3,
persist = 0.66
},
biomes = { 'everness_forsaken_tundra_under' },
y_max = y_max - 1000 > y_min and y_max - 1000 or y_max,
y_min = y_min,
decoration = { 'everness:glowing_pillar' },
flags = 'all_floors',
})
minetest.register_decoration({
name = 'everness:forsaken_tundra_under_willow_tree',
deco_type = 'schematic',
place_on = { 'everness:mold_stone_with_moss' },
place_offset_y = -1,
sidelen = 16,
noise_params = {
offset = 0,
scale = 0.002,
spread = { x = 250, y = 250, z = 250 },
seed = 2,
octaves = 3,
persist = 0.66
},
biomes = { 'everness_forsaken_tundra_under' },
y_max = y_max - 1500 > y_min and y_max - 1500 or y_max,
y_min = y_min,
schematic = minetest.get_modpath('everness') .. '/schematics/everness_willow_tree.mts',
flags = 'place_center_x, place_center_z, all_floors, force_placement',
rotation = 'random',
})
local function register_agave_leaf_decoration(offset, scale, length)
minetest.register_decoration({
name = 'everness:forsaken_tundra_under_agave_leaf_' .. length,
deco_type = 'simple',
place_on = { 'everness:mold_stone_with_moss' },
sidelen = 16,
noise_params = {
offset = offset,
scale = scale,
spread = { x = 200, y = 200, z = 200 },
seed = 329,
octaves = 3,
persist = 0.6
},
param2 = 8,
biomes = { 'everness_forsaken_tundra_under' },
y_max = y_max,
y_min = y_min,
decoration = 'everness:agave_leaf_' .. length,
flags = 'all_floors'
})
end
-- Grasses
register_agave_leaf_decoration(-0.03, 0.09, 3)
register_agave_leaf_decoration(-0.015, 0.075, 2)
register_agave_leaf_decoration(0, 0.06, 1)

124
mapgen_frosted_icesheet.lua Normal file
View File

@ -0,0 +1,124 @@
--[[
Everness. Never ending discovery in Everness mapgen.
Copyright (C) 2023 SaKeL <juraj.vajda@gmail.com>
This library is free software; you can redistribute it and/or
modify it under the terms of the GNU Lesser General Public
License as published by the Free Software Foundation; either
version 2.1 of the License, or (at your option) any later version.
This library is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
Lesser General Public License for more details.
You should have received a copy of the GNU Lesser General Public
License along with this library; if not, write to juraj.vajda@gmail.com
--]]
--
-- Register biomes
--
local y_max = Everness.settings.biomes.everness_frosted_icesheet.y_max
local y_min = Everness.settings.biomes.everness_frosted_icesheet.y_min
-- Frosted Icesheet
minetest.register_biome({
name = 'everness_frosted_icesheet',
node_dust = 'everness:frosted_snowblock',
node_top = 'everness:frosted_snowblock',
depth_top = 1,
node_filler = 'everness:frosted_snowblock',
depth_filler = 3,
node_stone = 'everness:frosted_cave_ice',
node_water_top = 'everness:frosted_ice',
depth_water_top = 2,
node_river_water = 'everness:frosted_ice',
node_riverbed = 'default:gravel',
depth_riverbed = 2,
node_dungeon = 'everness:icecobble',
node_dungeon_alt = 'everness:snowcobble',
node_dungeon_stair = 'stairs:stair_ice',
y_max = y_max,
y_min = y_min,
heat_point = 0,
humidity_point = 93,
})
--
-- Register decorations
--
-- Frosted Icesheet
minetest.register_decoration({
name = 'everness:frosted_icesheet_stalagmite',
deco_type = 'schematic',
schematic = minetest.get_modpath('everness') .. '/schematics/everness_frosted_lands_stalagmite.mts',
place_on = { 'everness:frosted_snowblock' },
place_offset_y = 1,
sidelen = 16,
noise_params = {
offset = 0.0008,
scale = 0.0007,
spread = { x = 250, y = 250, z = 250 },
seed = 2,
octaves = 3,
persist = 0.66
},
biomes = { 'everness_frosted_icesheet' },
y_max = y_max,
y_min = (y_max - y_max) + 4,
flags = 'place_center_x, place_center_z',
spawn_by = 'everness:frosted_snowblock',
num_spawn_by = 8,
})
minetest.register_decoration({
name = 'everness:frosted_icesheet_volcanic_rock',
deco_type = 'schematic',
schematic = minetest.get_modpath('everness') .. '/schematics/everness_frosted_lands_volcanic_rock.mts',
place_on = { 'everness:frosted_snowblock' },
sidelen = 16,
noise_params = {
offset = 0.0008,
scale = 0.0007,
spread = { x = 250, y = 250, z = 250 },
seed = 2,
octaves = 3,
persist = 0.66
},
biomes = { 'everness_frosted_icesheet' },
y_max = y_max,
y_min = (y_max - y_max) + 2,
flags = 'place_center_x, place_center_z',
rotation = 'random',
spawn_by = 'everness:frosted_snowblock',
num_spawn_by = 8,
})
minetest.register_decoration({
name = 'everness:frosted_icesheet_fossils',
deco_type = 'schematic',
schematic = minetest.get_modpath('everness') .. '/schematics/everness_frosted_lands_fossils.mts',
place_on = { 'everness:frosted_snowblock' },
sidelen = 16,
place_offset_y = 1,
noise_params = {
offset = 0.0008,
scale = 0.0007,
spread = { x = 250, y = 250, z = 250 },
seed = 2,
octaves = 3,
persist = 0.66
},
biomes = { 'everness_frosted_icesheet' },
y_max = y_max,
y_min = (y_max - y_max) + 1,
flags = 'place_center_x, place_center_z',
rotation = 'random',
spawn_by = 'everness:frosted_snowblock',
num_spawn_by = 8,
})

View File

@ -0,0 +1,71 @@
--[[
Everness. Never ending discovery in Everness mapgen.
Copyright (C) 2023 SaKeL <juraj.vajda@gmail.com>
This library is free software; you can redistribute it and/or
modify it under the terms of the GNU Lesser General Public
License as published by the Free Software Foundation; either
version 2.1 of the License, or (at your option) any later version.
This library is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
Lesser General Public License for more details.
You should have received a copy of the GNU Lesser General Public
License along with this library; if not, write to juraj.vajda@gmail.com
--]]
--
-- Register biomes
--
local y_max = Everness.settings.biomes.everness_frosted_icesheet_ocean.y_max
local y_min = Everness.settings.biomes.everness_frosted_icesheet_ocean.y_min
-- Frosted Icesheet Ocean
minetest.register_biome({
name = 'everness_frosted_icesheet_ocean',
node_top = 'default:sand',
depth_top = 1,
node_filler = 'default:sand',
depth_filler = 3,
node_water_top = 'everness:frosted_ice',
depth_water_top = 2,
node_cave_liquid = 'default:water_source',
node_dungeon = 'everness:icecobble',
node_dungeon_alt = 'everness:snowcobble',
node_dungeon_stair = 'stairs:stair_ice',
y_max = y_max,
y_min = y_min,
heat_point = 0,
humidity_point = 93,
})
--
-- Register decorations
--
-- Frosted Icesheet Ocean
minetest.register_decoration({
name = 'everness:frosted_icesheet_ocean_corals',
deco_type = 'simple',
place_on = { 'default:sand' },
place_offset_y = -1,
sidelen = 4,
noise_params = {
offset = -4,
scale = 4,
spread = { x = 50, y = 50, z = 50 },
seed = 7013,
octaves = 3,
persist = 0.7,
},
biomes = { 'everness_frosted_icesheet_ocean' },
y_max = y_max - (y_max + 2), -- -2
y_min = y_max - (y_max + 50), -- -50
flags = 'force_placement',
decoration = { 'everness:coral_starfish', 'everness:coral_frosted' },
})

View File

@ -0,0 +1,235 @@
--[[
Everness. Never ending discovery in Everness mapgen.
Copyright (C) 2023 SaKeL <juraj.vajda@gmail.com>
This library is free software; you can redistribute it and/or
modify it under the terms of the GNU Lesser General Public
License as published by the Free Software Foundation; either
version 2.1 of the License, or (at your option) any later version.
This library is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
Lesser General Public License for more details.
You should have received a copy of the GNU Lesser General Public
License along with this library; if not, write to juraj.vajda@gmail.com
--]]
--
-- Register biomes
--
local y_max = Everness.settings.biomes.everness_frosted_icesheet_under.y_max
local y_min = Everness.settings.biomes.everness_frosted_icesheet_under.y_min
-- Frosted Icesheet Under
minetest.register_biome({
name = 'everness_frosted_icesheet_under',
node_cave_liquid = { 'default:water_source', 'default:lava_source' },
node_dungeon = 'everness:icecobble',
node_dungeon_alt = 'everness:snowcobble',
node_dungeon_stair = 'stairs:stair_ice',
y_max = y_max,
y_min = y_min,
heat_point = 0,
humidity_point = 93,
})
--
-- Register ores
--
-- Blob ore.
-- These before scatter ores to avoid other ores in blobs.
minetest.register_ore({
ore_type = 'blob',
ore = 'everness:bone',
wherein = { 'default:stone' },
clust_scarcity = 16 * 16 * 16,
clust_size = 5,
y_max = y_max,
y_min = y_min,
noise_threshold = 0.0,
noise_params = {
offset = 0.5,
scale = 0.2,
spread = { x = 5, y = 5, z = 5 },
seed = -316,
octaves = 1,
persist = 0.0
},
biomes = { 'everness_frosted_icesheet_under' }
})
--
-- Register decorations
--
minetest.register_decoration({
name = 'everness:frosted_icesheet_under_floors',
deco_type = 'simple',
place_on = { 'default:stone' },
place_offset_y = -1,
sidelen = 16,
fill_ratio = 10,
biomes = { 'everness_frosted_icesheet_under' },
y_max = y_max,
y_min = y_min,
flags = 'all_floors, force_placement',
decoration = {
'everness:ancient_emerald_ice',
'everness:dense_emerald_ice',
'everness:emerald_ice',
'everness:frosted_cave_ice_illuminating',
'everness:frosted_ice',
'everness:frosted_ice_translucent',
},
})
minetest.register_decoration({
name = 'everness:frosted_icesheet_under_ceilings',
deco_type = 'simple',
place_on = { 'default:stone' },
sidelen = 16,
fill_ratio = 0.4,
biomes = { 'everness_frosted_icesheet_under' },
y_max = y_max,
y_min = y_min,
flags = 'all_ceilings',
decoration = {
'everness:ancient_emerald_ice',
'everness:dense_emerald_ice',
'everness:emerald_ice',
'everness:frosted_cave_ice_illuminating',
'everness:frosted_ice',
'everness:frosted_ice_translucent',
},
})
minetest.register_decoration({
name = 'everness:frosted_icesheet_under_amaranita_lantern',
deco_type = 'simple',
place_on = {
'everness:ancient_emerald_ice',
'everness:dense_emerald_ice',
'everness:emerald_ice',
'everness:frosted_cave_ice_illuminating',
'everness:frosted_ice',
'everness:frosted_ice_translucent',
},
sidelen = 16,
noise_params = {
offset = -0.004,
scale = 0.01,
spread = { x = 100, y = 100, z = 100 },
seed = 137,
octaves = 3,
persist = 0.7,
},
biomes = { 'everness_frosted_icesheet_under' },
y_max = y_max - 500 > y_min and y_max - 500 or y_max,
y_min = y_min,
decoration = { 'everness:amaranita_lantern' },
flags = 'all_floors',
})
minetest.register_decoration({
name = 'everness:frosted_icesheet_under_vines',
deco_type = 'simple',
place_on = {
'everness:ancient_emerald_ice',
'everness:dense_emerald_ice',
'everness:emerald_ice',
'everness:frosted_cave_ice_illuminating',
'everness:frosted_ice',
'everness:frosted_ice_translucent',
},
sidelen = 16,
fill_ratio = 0.05,
biomes = { 'everness_frosted_icesheet_under' },
param2 = 8,
decoration = {
'everness:tenanea_flowers_vine_1',
'everness:tenanea_flowers_vine_2',
'everness:reeds_vine_1',
'everness:reeds_vine_2'
},
y_max = y_max,
y_min = y_min,
flags = 'all_ceilings',
spawn_by = 'air',
num_spawn_by = 8
})
minetest.register_decoration({
name = 'everness:frosted_icesheet_under_plants',
deco_type = 'simple',
place_on = {
'everness:ancient_emerald_ice',
'everness:dense_emerald_ice',
'everness:emerald_ice',
'everness:frosted_cave_ice_illuminating',
'everness:frosted_ice',
'everness:frosted_ice_translucent',
},
sidelen = 16,
noise_params = {
offset = 0,
scale = 0.02,
spread = { x = 200, y = 200, z = 200 },
seed = 329,
octaves = 3,
persist = 0.6
},
param2 = 11,
biomes = { 'everness_frosted_icesheet_under' },
y_max = y_max,
y_min = y_min,
decoration = {
'everness:blooming_cooksonia',
'everness:creeping_moss_spores',
'everness:frosted_icicle_floor',
},
flags = 'all_floors',
})
minetest.register_decoration({
name = 'everness:frosted_icesheet_under_crystal',
deco_type = 'schematic',
place_on = {
'everness:ancient_emerald_ice',
'everness:dense_emerald_ice',
'everness:emerald_ice',
'everness:frosted_cave_ice_illuminating',
'everness:frosted_ice',
'everness:frosted_ice_translucent',
},
place_offset_y = 1,
sidelen = 16,
noise_params = {
offset = 0,
scale = 0.002,
spread = { x = 250, y = 250, z = 250 },
seed = 2,
octaves = 3,
persist = 0.66
},
biomes = { 'everness_frosted_icesheet_under' },
y_max = y_max - 250 > y_min and y_max - 250 or y_max,
y_min = y_min,
schematic = minetest.get_modpath('everness') .. '/schematics/everness_frosted_crystal.mts',
flags = 'place_center_x, place_center_z, all_floors, force_placement',
rotation = 'random',
spawn_by = {
'everness:ancient_emerald_ice',
'everness:dense_emerald_ice',
'everness:emerald_ice',
'everness:frosted_cave_ice_illuminating',
'everness:frosted_ice',
'everness:frosted_ice_translucent',
},
num_spawn_by = 8,
})

326
settingtypes.txt Normal file
View File

@ -0,0 +1,326 @@
[Biomes]
[*Coral Forest]
# Enable/ Disable Coral Forest Biome
# Disabling this biome might result in missing recipes.
everness_coral_forest (Coral Forest) bool true
# Upper limit for biome.
everness_coral_forest_y_max (y max) int 31000
# Lower limit for biome.
everness_coral_forest_y_min (y min) int 6
[*Coral Forest Dunes]
# Enable/ Disable Coral Forest Dunes Biome
# Disabling this biome might result in missing recipes.
everness_coral_forest_dunes (Coral Forest Dunes) bool true
# Upper limit for biome.
everness_coral_forest_dunes_y_max (y max) int 5
# Lower limit for biome.
everness_coral_forest_dunes_y_min (y min) int 4
[*Coral Forest Ocean]
# Enable/ Disable Coral Forest Ocean Biome
# Disabling this biome might result in missing recipes.
everness_coral_forest_ocean (Coral Forest Ocean) bool true
# Upper limit for biome.
everness_coral_forest_ocean_y_max (y max) int 3
# Lower limit for biome.
everness_coral_forest_ocean_y_min (y min) int -255
[*Coral Forest Under]
# Enable/ Disable Coral Forest Under Biome
# Disabling this biome might result in missing recipes.
everness_coral_forest_under (Coral Forest Under) bool true
# Upper limit for biome.
everness_coral_forest_under_y_max (y max) int -256
# Lower limit for biome.
everness_coral_forest_under_y_min (y min) int -31000
[*Frosted Icesheet]
# Enable/ Disable Frosted Icesheet Biome
# Disabling this biome might result in missing recipes.
everness_frosted_icesheet (Frosted Icesheet) bool true
# Upper limit for biome.
everness_frosted_icesheet_y_max (y max) int 31000
# Lower limit for biome.
everness_frosted_icesheet_y_min (y min) int -8
[*Frosted Icesheet Ocean]
# Enable/ Disable Frosted Icesheet Ocean Biome
# Disabling this biome might result in missing recipes.
everness_frosted_icesheet_ocean (Frosted Icesheet Ocean) bool true
# Upper limit for biome.
everness_frosted_icesheet_ocean_y_max (y max) int -9
# Lower limit for biome.
everness_frosted_icesheet_ocean_y_min (y min) int -255
[*Frosted Icesheet Under]
# Enable/ Disable Frosted Icesheet Under Biome
# Disabling this biome might result in missing recipes.
everness_frosted_icesheet_under (Frosted Icesheet Under) bool true
# Upper limit for biome.
everness_frosted_icesheet_under_y_max (y max) int -256
# Lower limit for biome.
everness_frosted_icesheet_under_y_min (y min) int -31000
[*Cursed Lands]
# Enable/ Disable Cursed Lands Biome
# Disabling this biome might result in missing recipes.
everness_cursed_lands (Cursed Lands) bool true
# Upper limit for biome.
everness_cursed_lands_y_max (y max) int 31000
# Lower limit for biome.
everness_cursed_lands_y_min (y min) int 6
[*Cursed Lands Dunes]
# Enable/ Disable Cursed Lands Dunes Biome
# Disabling this biome might result in missing recipes.
everness_cursed_lands_dunes (Cursed Lands Dunes) bool true
# Upper limit for biome.
everness_cursed_lands_dunes_y_max (y max) int 5
# Lower limit for biome.
everness_cursed_lands_dunes_y_min (y min) int 1
[*Cursed Lands Swamp]
# Enable/ Disable Cursed Lands Swamp Biome
# Disabling this biome might result in missing recipes.
everness_cursed_lands_swamp (Cursed Lands Swamp) bool true
# Upper limit for biome.
everness_cursed_lands_swamp_y_max (y max) int 0
# Lower limit for biome.
everness_cursed_lands_swamp_y_min (y min) int -1
[*Cursed Lands Ocean]
# Enable/ Disable Cursed Lands Ocean Biome
# Disabling this biome might result in missing recipes.
everness_cursed_lands_ocean (Cursed Lands Ocean) bool true
# Upper limit for biome.
everness_cursed_lands_ocean_y_max (y max) int -2
# Lower limit for biome.
everness_cursed_lands_ocean_y_min (y min) int -255
[*Cursed Lands Under]
# Enable/ Disable Cursed Lands Under Biome
# Disabling this biome might result in missing recipes.
everness_cursed_lands_under (Cursed Lands Under) bool true
# Upper limit for biome.
everness_cursed_lands_under_y_max (y max) int -256
# Lower limit for biome.
everness_cursed_lands_under_y_min (y min) int -31000
[*Crystal Forest]
# Enable/ Disable Crystal Forest Biome
# Disabling this biome might result in missing recipes.
everness_crystal_forest (Crystal Forest) bool true
# Upper limit for biome.
everness_crystal_forest_y_max (y max) int 31000
# Lower limit for biome.
everness_crystal_forest_y_min (y min) int 6
[*Crystal Forest Dunes]
# Enable/ Disable Crystal Forest Dunes Biome
# Disabling this biome might result in missing recipes.
everness_crystal_forest_dunes (Crystal Forest Dunes) bool true
# Upper limit for biome.
everness_crystal_forest_dunes_y_max (y max) int 5
# Lower limit for biome.
everness_crystal_forest_dunes_y_min (y min) int 1
[*Crystal Forest Shore]
# Enable/ Disable Crystal Forest Shore Biome
# Disabling this biome might result in missing recipes.
everness_crystal_forest_shore (Crystal Forest Shore) bool true
# Upper limit for biome.
everness_crystal_forest_shore_y_max (y max) int 0
# Lower limit for biome.
everness_crystal_forest_shore_y_min (y min) int -1
[*Crystal Forest Ocean]
# Enable/ Disable Crystal Forest Ocean Biome
# Disabling this biome might result in missing recipes.
everness_crystal_forest_ocean (Crystal Forest Ocean) bool true
# Upper limit for biome.
everness_crystal_forest_ocean_y_max (y max) int -2
# Lower limit for biome.
everness_crystal_forest_ocean_y_min (y min) int -255
[*Crystal Forest Under]
# Enable/ Disable Crystal Forest Under Biome
# Disabling this biome might result in missing recipes.
everness_crystal_forest_under (Crystal Forest Under) bool true
# Upper limit for biome.
everness_crystal_forest_under_y_max (y max) int -256
# Lower limit for biome.
everness_crystal_forest_under_y_min (y min) int -31000
[*Bamboo Forest]
# Enable/ Disable Bamboo Forest Biome
# Disabling this biome might result in missing recipes.
everness_bamboo_forest (Bamboo Forest) bool true
# Upper limit for biome.
everness_bamboo_forest_y_max (y max) int 31000
# Lower limit for biome.
everness_bamboo_forest_y_min (y min) int 1
[*Bamboo Forest Under]
# Enable/ Disable Bamboo Forest Under Biome
# Disabling this biome might result in missing recipes.
everness_bamboo_forest_under (Bamboo Forest Under) bool true
# Upper limit for biome.
everness_bamboo_forest_under_y_max (y max) int -256
# Lower limit for biome.
everness_bamboo_forest_under_y_min (y min) int -31000
[*Forsaken Desert]
# Enable/ Disable Forsaken Desert Biome
# Disabling this biome might result in missing recipes.
everness_forsaken_desert (Forsaken Desert) bool true
# Upper limit for biome.
everness_forsaken_desert_y_max (y max) int 31000
# Lower limit for biome.
everness_forsaken_desert_y_min (y min) int 4
[*Forsaken Desert Ocean]
# Enable/ Disable Forsaken Desert Ocean Biome
# Disabling this biome might result in missing recipes.
everness_forsaken_desert_ocean (Forsaken Desert Ocean) bool true
# Upper limit for biome.
everness_forsaken_desert_ocean_y_max (y max) int 3
# Lower limit for biome.
everness_forsaken_desert_ocean_y_min (y min) int -8
[*Forsaken Desert Under]
# Enable/ Disable Forsaken Desert Under Biome
# Disabling this biome might result in missing recipes.
everness_forsaken_desert_under (Forsaken Desert Under) bool true
# Upper limit for biome.
everness_forsaken_desert_under_y_max (y max) int -256
# Lower limit for biome.
everness_forsaken_desert_under_y_min (y min) int -31000
[*Baobab Savanna]
# Enable/ Disable Baobab Savanna Biome
# Disabling this biome might result in missing recipes.
everness_baobab_savanna (Baobab Savanna) bool true
# Upper limit for biome.
everness_baobab_savanna_y_max (y max) int 31000
# Lower limit for biome.
everness_baobab_savanna_y_min (y min) int 1
[*Forsaken Tundra]
# Enable/ Disable Forsaken Tundra Biome
# Disabling this biome might result in missing recipes.
everness_forsaken_tundra (Forsaken Tundra) bool true
# Upper limit for biome.
everness_forsaken_tundra_y_max (y max) int 31000
# Lower limit for biome.
everness_forsaken_tundra_y_min (y min) int 2
[*Forsaken Tundra Beach]
# Enable/ Disable Forsaken Tundra Beach Biome
# Disabling this biome might result in missing recipes.
everness_forsaken_tundra_beach (Forsaken Tundra Beach) bool true
# Upper limit for biome.
everness_forsaken_tundra_beach_y_max (y max) int 1
# Lower limit for biome.
everness_forsaken_tundra_beach_y_min (y min) int -3
[*Forsaken Tundra Ocean]
# Enable/ Disable Forsaken Tundra Ocean Biome
# Disabling this biome might result in missing recipes.
everness_forsaken_tundra_ocean (Forsaken Tundra Ocean) bool true
# Upper limit for biome.
everness_forsaken_tundra_ocean_y_max (y max) int -4
# Lower limit for biome.
everness_forsaken_tundra_ocean_y_min (y min) int -255
[*Forsaken Tundra Under]
# Enable/ Disable Forsaken Tundra Under Biome
# Disabling this biome might result in missing recipes.
everness_forsaken_tundra_under (Forsaken Tundra Under) bool true
# Upper limit for biome.
everness_forsaken_tundra_under_y_max (y max) int -256
# Lower limit for biome.
everness_forsaken_tundra_under_y_min (y min) int -31000