2 Add granual biome settings
This commit is contained in:
parent
db4a38233d
commit
2f79be8a51
|
@ -9,6 +9,7 @@ It also adds structures, dungeons with loot chests, and custom skyboxes based on
|
|||
|
||||
## Features
|
||||
|
||||
* granual biome settings
|
||||
* custom sounds for some blocks, biomes
|
||||
* custom textures
|
||||
* custom biomes and cavern biomes
|
||||
|
|
139
api.lua
139
api.lua
|
@ -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)
|
||||
|
|
123
init.lua
123
init.lua
|
@ -23,17 +23,127 @@ local mod_start_time = minetest.get_us_time()
|
|||
|
||||
dofile(path .. '/api.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
|
||||
dofile(path .. '/panes.lua')
|
||||
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
|
||||
dofile(path .. '/stairs.lua')
|
||||
end
|
||||
|
@ -48,7 +158,6 @@ if minetest.get_modpath('doors') and minetest.global_exists('doors') then
|
|||
dofile(path .. '/doors.lua')
|
||||
end
|
||||
|
||||
dofile(path .. '/vines.lua')
|
||||
dofile(path .. '/tools.lua')
|
||||
dofile(path .. '/craftitems.lua')
|
||||
dofile(path .. '/crafting.lua')
|
||||
|
|
3460
mapgen.lua
3460
mapgen.lua
File diff suppressed because it is too large
Load Diff
|
@ -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)
|
|
@ -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')
|
|
@ -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',
|
||||
})
|
|
@ -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,
|
||||
})
|
|
@ -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)
|
|
@ -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'
|
||||
})
|
|
@ -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' },
|
||||
})
|
|
@ -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',
|
||||
})
|
|
@ -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',
|
||||
})
|
|
@ -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',
|
||||
})
|
|
@ -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'
|
||||
},
|
||||
})
|
|
@ -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,
|
||||
})
|
|
@ -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',
|
||||
})
|
|
@ -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',
|
||||
})
|
|
@ -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',
|
||||
})
|
|
@ -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,
|
||||
})
|
|
@ -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',
|
||||
})
|
|
@ -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'
|
||||
})
|
|
@ -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',
|
||||
})
|
|
@ -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
|
||||
--
|
|
@ -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'
|
||||
})
|
|
@ -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,
|
||||
})
|
|
@ -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' },
|
||||
})
|
|
@ -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' },
|
||||
})
|
|
@ -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)
|
|
@ -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,
|
||||
})
|
|
@ -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' },
|
||||
})
|
|
@ -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,
|
||||
})
|
|
@ -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
|
||||
|
Ŝarĝante…
Reference in New Issue