3532 lines
100 KiB
Lua
3532 lines
100 KiB
Lua
--[[
|
|
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
|
|
--
|
|
|
|
-- 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 = 31000,
|
|
y_min = 6,
|
|
heat_point = 60,
|
|
humidity_point = 50,
|
|
})
|
|
|
|
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 = 5,
|
|
y_min = 4,
|
|
heat_point = 60,
|
|
humidity_point = 50,
|
|
})
|
|
|
|
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 = 3,
|
|
y_min = -255,
|
|
heat_point = 60,
|
|
humidity_point = 50,
|
|
})
|
|
|
|
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 = -256,
|
|
y_min = -31000,
|
|
heat_point = 60,
|
|
humidity_point = 50,
|
|
})
|
|
|
|
-- Frosted Lands
|
|
|
|
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 = 31000,
|
|
y_min = -8,
|
|
heat_point = 0,
|
|
humidity_point = 93,
|
|
})
|
|
|
|
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 = -9,
|
|
y_min = -255,
|
|
heat_point = 0,
|
|
humidity_point = 93,
|
|
})
|
|
|
|
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 = -256,
|
|
y_min = -31000,
|
|
heat_point = 0,
|
|
humidity_point = 93,
|
|
})
|
|
|
|
-- 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 = 31000,
|
|
y_min = 6,
|
|
heat_point = 45,
|
|
humidity_point = 85,
|
|
})
|
|
|
|
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 = 5,
|
|
y_min = 1,
|
|
heat_point = 45,
|
|
humidity_point = 85,
|
|
})
|
|
|
|
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 = 0,
|
|
y_min = -1,
|
|
heat_point = 45,
|
|
humidity_point = 85,
|
|
})
|
|
|
|
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 = -2,
|
|
y_min = -255,
|
|
heat_point = 45,
|
|
humidity_point = 85,
|
|
})
|
|
|
|
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 = -256,
|
|
y_min = -31000,
|
|
heat_point = 45,
|
|
humidity_point = 85,
|
|
})
|
|
|
|
-- 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 = 31000,
|
|
y_min = 6,
|
|
heat_point = 35,
|
|
humidity_point = 50,
|
|
})
|
|
|
|
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 = 5,
|
|
y_min = 1,
|
|
heat_point = 35,
|
|
humidity_point = 50,
|
|
})
|
|
|
|
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 = 0,
|
|
y_min = -1,
|
|
heat_point = 35,
|
|
humidity_point = 50,
|
|
})
|
|
|
|
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 = -2,
|
|
y_min = -255,
|
|
heat_point = 35,
|
|
humidity_point = 50,
|
|
})
|
|
|
|
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 = -256,
|
|
y_min = -31000,
|
|
heat_point = 35,
|
|
humidity_point = 50,
|
|
})
|
|
|
|
-- 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 = 31000,
|
|
y_min = 1,
|
|
heat_point = 80,
|
|
humidity_point = 60,
|
|
})
|
|
|
|
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 = -256,
|
|
y_min = -31000,
|
|
heat_point = 80,
|
|
humidity_point = 60,
|
|
})
|
|
|
|
-- 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 = 31000,
|
|
y_min = 4,
|
|
heat_point = 100,
|
|
humidity_point = 30,
|
|
})
|
|
|
|
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 = 3,
|
|
y_min = -8,
|
|
heat_point = 100,
|
|
humidity_point = 30,
|
|
})
|
|
|
|
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 = -256,
|
|
y_min = -31000,
|
|
heat_point = 100,
|
|
humidity_point = 30,
|
|
})
|
|
|
|
-- 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 = 31000,
|
|
y_min = 1,
|
|
heat_point = 80,
|
|
humidity_point = 30,
|
|
})
|
|
|
|
-- 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 = 31000,
|
|
y_min = 2,
|
|
heat_point = 10,
|
|
humidity_point = 10,
|
|
})
|
|
|
|
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 = 1,
|
|
y_min = -3,
|
|
heat_point = 10,
|
|
humidity_point = 10,
|
|
})
|
|
|
|
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 = -4,
|
|
y_min = -255,
|
|
heat_point = 10,
|
|
humidity_point = 10,
|
|
})
|
|
|
|
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 = -256,
|
|
y_min = -31000,
|
|
heat_point = 10,
|
|
humidity_point = 10,
|
|
})
|
|
|
|
--
|
|
-- Register ores
|
|
--
|
|
|
|
-- Stratum ores.
|
|
-- These obviously first.
|
|
|
|
-- Forsaken Desert sandstone
|
|
|
|
minetest.register_ore({
|
|
ore_type = 'stratum',
|
|
ore = 'everness:forsaken_desert_cobble',
|
|
wherein = { 'everness:forsaken_desert_stone' },
|
|
clust_scarcity = 1,
|
|
y_max = 46,
|
|
y_min = 10,
|
|
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 = 42,
|
|
y_min = 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' },
|
|
})
|
|
|
|
-- 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 = 31000,
|
|
y_min = -31000,
|
|
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' }
|
|
})
|
|
|
|
minetest.register_ore({
|
|
ore_type = 'blob',
|
|
ore = 'everness:bone',
|
|
wherein = { 'default:stone' },
|
|
clust_scarcity = 16 * 16 * 16,
|
|
clust_size = 5,
|
|
y_max = -250,
|
|
y_min = -31000,
|
|
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' }
|
|
})
|
|
|
|
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 = 31000,
|
|
y_min = -31000,
|
|
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',
|
|
'everness_forsaken_tundra_beach',
|
|
'everness_forsaken_tundra_ocean',
|
|
'everness_forsaken_tundra_under',
|
|
}
|
|
})
|
|
|
|
-- Scatter ores
|
|
|
|
-- Pyrite
|
|
|
|
minetest.register_ore({
|
|
ore_type = 'scatter',
|
|
ore = 'everness:stone_with_pyrite',
|
|
wherein = 'default:stone',
|
|
clust_scarcity = 13 * 13 * 13,
|
|
clust_num_ores = 5,
|
|
clust_size = 3,
|
|
y_max = 31000,
|
|
y_min = 1025,
|
|
})
|
|
|
|
minetest.register_ore({
|
|
ore_type = 'scatter',
|
|
ore = 'everness:stone_with_pyrite',
|
|
wherein = 'default:stone',
|
|
clust_scarcity = 15 * 15 * 15,
|
|
clust_num_ores = 3,
|
|
clust_size = 2,
|
|
y_max = -256,
|
|
y_min = -511,
|
|
})
|
|
|
|
minetest.register_ore({
|
|
ore_type = 'scatter',
|
|
ore = 'everness:stone_with_pyrite',
|
|
wherein = 'default:stone',
|
|
clust_scarcity = 13 * 13 * 13,
|
|
clust_num_ores = 5,
|
|
clust_size = 3,
|
|
y_max = -512,
|
|
y_min = -31000,
|
|
})
|
|
|
|
-- Quartz
|
|
|
|
minetest.register_ore({
|
|
ore_type = 'scatter',
|
|
ore = 'everness:quartz_ore',
|
|
wherein = { 'default:stone' },
|
|
clust_scarcity = 10 * 10 * 10,
|
|
clust_num_ores = 6,
|
|
clust_size = 5,
|
|
y_max = -5,
|
|
y_min = -31000,
|
|
})
|
|
|
|
--
|
|
-- Register decorations
|
|
--
|
|
|
|
-- Coral Forest
|
|
|
|
local chunksize = tonumber(minetest.get_mapgen_setting('chunksize'))
|
|
|
|
if chunksize >= 5 then
|
|
minetest.register_decoration({
|
|
name = 'everness: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 = 31000,
|
|
y_min = 0,
|
|
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_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 = 31000,
|
|
y_min = 2,
|
|
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_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 = 30,
|
|
y_min = 0,
|
|
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_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 = 31000,
|
|
y_min = 0,
|
|
decoration = { 'everness:coral_burdock_1', 'everness:coral_burdock_2' },
|
|
spawn_by = 'everness:coral_tree'
|
|
})
|
|
|
|
minetest.register_decoration({
|
|
name = 'everness: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', 'everness_coral_forest_dunes' },
|
|
y_max = 31000,
|
|
y_min = 0,
|
|
decoration = 'everness:coral_bush'
|
|
})
|
|
|
|
minetest.register_decoration({
|
|
name = 'everness: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', 'everness_coral_forest_dunes' },
|
|
y_max = 31000,
|
|
y_min = 0,
|
|
decoration = 'everness:coral_shrub'
|
|
})
|
|
|
|
local function register_coral_grass_decoration(offset, scale, length)
|
|
minetest.register_decoration({
|
|
name = 'everness: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 = 31000,
|
|
y_min = 0,
|
|
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)
|
|
|
|
-- Coral reef
|
|
|
|
minetest.register_decoration({
|
|
name = 'everness:coral_forest_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 = -2,
|
|
y_min = -8,
|
|
flags = 'force_placement',
|
|
decoration = { 'everness:coral_corals', 'everness:coral_jellyfish' },
|
|
})
|
|
|
|
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 = -256,
|
|
y_min = -31000,
|
|
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 = -256,
|
|
y_min = -31000,
|
|
flags = 'all_ceilings',
|
|
decoration = {
|
|
'everness:moss_block'
|
|
},
|
|
})
|
|
|
|
minetest.register_decoration({
|
|
name = 'everness: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 = -2025,
|
|
y_min = -31000,
|
|
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_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 = -1025,
|
|
y_min = -31000,
|
|
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 = -1025,
|
|
y_min = -31000,
|
|
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 = -256,
|
|
y_min = -31000,
|
|
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 = -1025,
|
|
y_min = -31000,
|
|
decoration = {
|
|
'everness:coral_grass_orange',
|
|
'everness:globulagus',
|
|
'everness:coral_grass_tall',
|
|
},
|
|
flags = 'all_floors',
|
|
})
|
|
|
|
-- Frosted Lands
|
|
|
|
minetest.register_decoration({
|
|
name = 'everness:frosted_lands_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 = 31000,
|
|
y_min = 4,
|
|
flags = 'place_center_x, place_center_z',
|
|
spawn_by = 'everness:frosted_snowblock',
|
|
num_spawn_by = 8,
|
|
})
|
|
|
|
minetest.register_decoration({
|
|
name = 'everness:frosted_lands_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 = 31000,
|
|
y_min = 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_lands_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 = 31000,
|
|
y_min = 1,
|
|
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_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 = -2,
|
|
y_min = -50,
|
|
flags = 'force_placement',
|
|
decoration = { 'everness:coral_starfish', 'everness:coral_frosted' },
|
|
})
|
|
|
|
minetest.register_decoration({
|
|
name = 'everness:frosted_floors',
|
|
deco_type = 'simple',
|
|
place_on = { 'default:stone' },
|
|
place_offset_y = -1,
|
|
sidelen = 16,
|
|
fill_ratio = 10,
|
|
biomes = { 'everness_frosted_icesheet_under' },
|
|
y_max = -256,
|
|
y_min = -31000,
|
|
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_ceilings',
|
|
deco_type = 'simple',
|
|
place_on = { 'default:stone' },
|
|
sidelen = 16,
|
|
fill_ratio = 0.4,
|
|
biomes = { 'everness_frosted_icesheet_under' },
|
|
y_max = -256,
|
|
y_min = -31000,
|
|
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: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 = -256,
|
|
y_min = -31000,
|
|
decoration = { 'everness:amaranita_lantern' },
|
|
flags = 'all_floors',
|
|
})
|
|
|
|
minetest.register_decoration({
|
|
name = 'everness:frosted_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 = -256,
|
|
y_min = -31000,
|
|
flags = 'all_ceilings',
|
|
spawn_by = 'air',
|
|
num_spawn_by = 8
|
|
})
|
|
|
|
minetest.register_decoration({
|
|
name = 'everness:frosted_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 = -1025,
|
|
y_min = -31000,
|
|
decoration = {
|
|
'everness:blooming_cooksonia',
|
|
'everness:creeping_moss_spores',
|
|
'everness:frosted_icicle_floor',
|
|
},
|
|
flags = 'all_floors',
|
|
})
|
|
|
|
minetest.register_decoration({
|
|
name = 'everness:frosted_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 = -3025,
|
|
y_min = -31000,
|
|
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,
|
|
})
|
|
|
|
-- Cursed Lands
|
|
|
|
minetest.register_decoration({
|
|
name = 'everness: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 = 31000,
|
|
y_min = 4,
|
|
schematic = minetest.get_modpath('everness') .. '/schematics/everness_cemetery.mts',
|
|
flags = 'place_center_x, place_center_z',
|
|
rotation = 'random',
|
|
})
|
|
|
|
minetest.register_decoration({
|
|
name = 'everness: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 = 31000,
|
|
y_min = 4,
|
|
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: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 = 31000,
|
|
y_min = 1,
|
|
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_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 = 31000,
|
|
y_min = 1,
|
|
flags = 'force_placement',
|
|
decoration = { 'everness:cursed_mud' },
|
|
})
|
|
|
|
minetest.register_decoration({
|
|
name = 'everness: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', 'everness_cursed_lands_dunes', 'everness_cursed_lands_ocean' },
|
|
y_max = 31000,
|
|
y_min = 1,
|
|
schematic = minetest.get_modpath('everness') .. '/schematics/everness_dry_tree.mts',
|
|
flags = 'place_center_x, place_center_z',
|
|
rotation = 'random',
|
|
})
|
|
|
|
minetest.register_decoration({
|
|
name = 'everness:dry_tree_swamp',
|
|
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 = -1,
|
|
y_min = -1,
|
|
schematic = minetest.get_modpath('everness') .. '/schematics/everness_dry_tree.mts',
|
|
flags = 'place_center_x, place_center_z',
|
|
rotation = 'random',
|
|
})
|
|
|
|
minetest.register_decoration({
|
|
name = 'everness:marsh_grass_swamp',
|
|
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 = 0,
|
|
y_min = 0,
|
|
schematic = minetest.get_modpath('everness') .. '/schematics/everness_marsh_grass.mts',
|
|
})
|
|
|
|
minetest.register_decoration({
|
|
name = 'everness: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 = 31000,
|
|
y_min = 2,
|
|
schematic = minetest.get_modpath('everness') .. '/schematics/everness_cursed_bush.mts',
|
|
flags = 'place_center_x, place_center_z',
|
|
})
|
|
|
|
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 = -256,
|
|
y_min = -31000,
|
|
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 = -256,
|
|
y_min = -31000,
|
|
flags = 'all_ceilings',
|
|
decoration = {
|
|
'everness:moss_block'
|
|
},
|
|
})
|
|
|
|
minetest.register_decoration({
|
|
name = 'everness: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 = -1025,
|
|
y_min = -31000,
|
|
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 = -256,
|
|
y_min = -31000,
|
|
flags = 'all_ceilings',
|
|
spawn_by = 'air',
|
|
num_spawn_by = 8
|
|
})
|
|
|
|
minetest.register_decoration({
|
|
name = 'everness:cursed_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 = -256,
|
|
y_min = -31000,
|
|
decoration = { 'everness:cursed_pumpkin_lantern' },
|
|
flags = 'all_floors',
|
|
param2_max = 3
|
|
})
|
|
|
|
minetest.register_decoration({
|
|
name = 'everness:everness_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 = -2025,
|
|
y_min = -31000,
|
|
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 = -1025,
|
|
y_min = -31000,
|
|
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 = -1025,
|
|
y_min = -31000,
|
|
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 = -1025,
|
|
y_min = -31000,
|
|
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 = -256,
|
|
y_min = -31000,
|
|
decoration = { 'everness:cobweb' },
|
|
flags = 'all_floors'
|
|
})
|
|
|
|
-- 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 = -5,
|
|
y_min = -10,
|
|
flags = 'force_placement',
|
|
decoration = 'everness:sand_with_spine_kelp',
|
|
param2 = 48,
|
|
param2_max = 96,
|
|
})
|
|
|
|
-- Crystal Forest
|
|
|
|
minetest.register_decoration({
|
|
name = 'everness: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 = 31000,
|
|
y_min = 1,
|
|
decoration = 'everness:crystal_mushrooms',
|
|
})
|
|
|
|
minetest.register_decoration({
|
|
name = 'everness: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 = 31000,
|
|
y_min = 1,
|
|
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_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 = 31000,
|
|
y_min = 1,
|
|
schematic = minetest.get_modpath('everness') .. '/schematics/everness_crystal_tree_large.mts',
|
|
flags = 'place_center_x, place_center_z',
|
|
rotation = 'random',
|
|
})
|
|
|
|
minetest.register_decoration({
|
|
name = 'everness:crystal_forest_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 = 31000,
|
|
y_min = 1,
|
|
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_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 = -256,
|
|
y_min = -31000,
|
|
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 = -256,
|
|
y_min = -31000,
|
|
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 = -256,
|
|
y_min = -31000,
|
|
flags = 'all_ceilings',
|
|
spawn_by = 'air',
|
|
num_spawn_by = 8
|
|
})
|
|
|
|
minetest.register_decoration({
|
|
name = 'everness: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 = -3025,
|
|
y_min = -31000,
|
|
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_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 = -2025,
|
|
y_min = -31000,
|
|
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_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 = -1025,
|
|
y_min = -31000,
|
|
decoration = 'everness:crystal_cyan',
|
|
flags = 'all_floors',
|
|
param2 = 1
|
|
})
|
|
|
|
minetest.register_decoration({
|
|
name = 'everness: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 = -1025,
|
|
y_min = -31000,
|
|
decoration = 'everness:twisted_crystal_grass',
|
|
flags = 'all_floors'
|
|
})
|
|
|
|
minetest.register_decoration({
|
|
name = 'everness: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 = -1025,
|
|
y_min = -31000,
|
|
decoration = 'everness:crystal_cyan',
|
|
flags = 'all_ceilings',
|
|
})
|
|
|
|
minetest.register_decoration({
|
|
name = 'everness:crystal_forest_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 = 31000,
|
|
y_min = 1,
|
|
schematic = minetest.get_modpath('everness') .. '/schematics/everness_crystal_forest_ruins_2.mts',
|
|
flags = 'place_center_x, place_center_z',
|
|
rotation = 'random',
|
|
})
|
|
|
|
minetest.register_decoration({
|
|
name = 'everness: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 = 0,
|
|
y_min = 0,
|
|
decoration = 'everness:crystal_waterlily',
|
|
param2 = 0,
|
|
param2_max = 3,
|
|
place_offset_y = 1,
|
|
})
|
|
|
|
local function register_crystal_grass_decoration(offset, scale, length)
|
|
minetest.register_decoration({
|
|
name = 'everness: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 = 31000,
|
|
y_min = 1,
|
|
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_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 = 31000,
|
|
y_min = 2,
|
|
schematic = minetest.get_modpath('everness') .. '/schematics/everness_crystal_bush.mts',
|
|
flags = 'place_center_x, place_center_z',
|
|
})
|
|
|
|
-- Coral reef
|
|
|
|
minetest.register_decoration({
|
|
name = 'everness:crystal_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 = -2,
|
|
y_min = -8,
|
|
flags = 'force_placement',
|
|
decoration = {
|
|
'everness:crystal_coral_dark',
|
|
'everness:crystal_coral_light'
|
|
},
|
|
})
|
|
|
|
-- Bamboo forest
|
|
|
|
minetest.register_decoration({
|
|
name = 'everness:small_bamboo_forest',
|
|
deco_type = 'schematic',
|
|
place_on = { 'everness:dirt_with_grass_1' },
|
|
sidelen = 80,
|
|
fill_ratio = 0.1,
|
|
biomes = { 'everness_bamboo_forest' },
|
|
y_max = 31000,
|
|
y_min = 1,
|
|
schematic = minetest.get_modpath('everness') .. '/schematics/everness_small_bamboo.mts',
|
|
flags = 'place_center_x, place_center_z',
|
|
rotation = 'random',
|
|
})
|
|
|
|
minetest.register_decoration({
|
|
name = 'everness:large_bamboo_forest',
|
|
deco_type = 'schematic',
|
|
place_on = { 'everness:dirt_with_grass_1' },
|
|
sidelen = 80,
|
|
fill_ratio = 0.1,
|
|
biomes = { 'everness_bamboo_forest' },
|
|
y_max = 31000,
|
|
y_min = 1,
|
|
schematic = minetest.get_modpath('everness') .. '/schematics/everness_large_bamboo.mts',
|
|
flags = 'place_center_x, place_center_z',
|
|
rotation = 'random',
|
|
})
|
|
|
|
minetest.register_decoration({
|
|
name = 'everness:everness_bamboo_forest_under_floors',
|
|
deco_type = 'simple',
|
|
place_on = { 'default:stone' },
|
|
sidelen = 16,
|
|
fill_ratio = 10,
|
|
biomes = { 'everness_bamboo_forest_under' },
|
|
y_max = -256,
|
|
y_min = -31000,
|
|
flags = 'all_floors',
|
|
decoration = {
|
|
'everness:moss_block',
|
|
'default:clay'
|
|
},
|
|
})
|
|
|
|
minetest.register_decoration({
|
|
name = 'everness:forsythia_bush_under',
|
|
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 = -1025,
|
|
y_min = -31000,
|
|
flags = 'all_floors',
|
|
decoration = { 'everness:forsythia_bush' },
|
|
})
|
|
|
|
minetest.register_decoration({
|
|
name = 'everness: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 = -256,
|
|
y_min = -31000,
|
|
flags = 'all_ceilings',
|
|
decoration = { 'everness:moss_block' },
|
|
})
|
|
|
|
minetest.register_decoration({
|
|
name = 'everness:everness_cave_vine_ceiling',
|
|
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 = -525,
|
|
y_min = -31000,
|
|
flags = 'all_ceilings',
|
|
spawn_by = 'air',
|
|
num_spawn_by = 8
|
|
})
|
|
|
|
minetest.register_decoration({
|
|
name = 'everness:bamboo_flowers_under',
|
|
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 = -1025,
|
|
y_min = -31000,
|
|
decoration = { 'everness:cave_flower' },
|
|
flags = 'all_floors'
|
|
})
|
|
|
|
minetest.register_decoration({
|
|
name = 'everness:bamboo_flowers_with_particles_under',
|
|
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 = -2025,
|
|
y_min = -31000,
|
|
decoration = { 'everness:cave_flower_with_particles' },
|
|
flags = 'all_floors'
|
|
})
|
|
|
|
minetest.register_decoration({
|
|
name = 'everness: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 = -2025,
|
|
y_min = -31000,
|
|
decoration = { 'everness:blue_vine_lantern' },
|
|
flags = 'all_floors',
|
|
})
|
|
|
|
-- Jungle tree and log
|
|
|
|
minetest.register_decoration({
|
|
name = 'everness: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 = 31000,
|
|
y_min = 1,
|
|
schematic = minetest.get_modpath('default') .. '/schematics/jungle_tree.mts',
|
|
flags = 'place_center_x, place_center_z',
|
|
rotation = 'random',
|
|
})
|
|
|
|
minetest.register_decoration({
|
|
name = 'everness: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 = 31000,
|
|
y_min = 1,
|
|
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: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 = 31000,
|
|
y_min = 1,
|
|
decoration = 'default:grass_' .. length,
|
|
})
|
|
end
|
|
|
|
local function register_flower(seed, flower_name)
|
|
minetest.register_decoration({
|
|
name = 'everness:' .. 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 = 31000,
|
|
y_min = 1,
|
|
decoration = 'flowers:' .. flower_name,
|
|
})
|
|
end
|
|
|
|
-- Bush
|
|
|
|
minetest.register_decoration({
|
|
name = 'everness: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 = 31000,
|
|
y_min = 1,
|
|
schematic = minetest.get_modpath('default') .. '/schematics/bush.mts',
|
|
flags = 'place_center_x, place_center_z',
|
|
})
|
|
|
|
-- Blueberry bush
|
|
|
|
minetest.register_decoration({
|
|
name = 'everness: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 = 31000,
|
|
y_min = 1,
|
|
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')
|
|
|
|
-- Forsaken Desert
|
|
|
|
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 = -256,
|
|
y_min = -31000,
|
|
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 = -256,
|
|
y_min = -31000,
|
|
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 = -256,
|
|
y_min = -31000,
|
|
flags = 'all_ceilings',
|
|
decoration = {
|
|
'everness:moss_block'
|
|
},
|
|
})
|
|
|
|
minetest.register_decoration({
|
|
name = 'everness: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 = -256,
|
|
y_min = -31000,
|
|
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 = -1025,
|
|
y_min = -31000,
|
|
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 = -1025,
|
|
y_min = -31000,
|
|
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 = -256,
|
|
y_min = -31000,
|
|
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 = -256,
|
|
y_min = -31000,
|
|
decoration = 'everness:hollow_tree',
|
|
height = 3,
|
|
height_max = 7,
|
|
flags = 'all_floors'
|
|
})
|
|
|
|
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 = 31000,
|
|
y_min = 2,
|
|
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 = 31000,
|
|
y_min = 2,
|
|
decoration = {
|
|
'everness:forsaken_desert_plant_2',
|
|
'everness:forsaken_desert_plant_3'
|
|
},
|
|
param2 = 8,
|
|
})
|
|
|
|
minetest.register_decoration({
|
|
name = 'everness: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 = 31000,
|
|
y_min = 4,
|
|
schematic = minetest.get_modpath('everness') .. '/schematics/everness_termite_nest.mts',
|
|
flags = 'place_center_x, place_center_z',
|
|
rotation = 'random',
|
|
})
|
|
|
|
minetest.register_decoration({
|
|
name = 'everness: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 = 31000,
|
|
y_min = 4,
|
|
schematic = minetest.get_modpath('everness') .. '/schematics/everness_hollow_tree.mts',
|
|
flags = 'place_center_x, place_center_z',
|
|
rotation = 'random',
|
|
})
|
|
|
|
minetest.register_decoration({
|
|
name = 'everness: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 = 31000,
|
|
y_min = 4,
|
|
schematic = minetest.get_modpath('everness') .. '/schematics/everness_hollow_tree_large.mts',
|
|
flags = 'place_center_x, place_center_z',
|
|
rotation = 'random',
|
|
})
|
|
|
|
-- Baobab Savanna
|
|
|
|
-- 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({
|
|
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 = 31000,
|
|
y_min = 1,
|
|
decoration = 'default:dry_dirt',
|
|
place_offset_y = -1,
|
|
flags = 'force_placement',
|
|
})
|
|
|
|
minetest.register_decoration({
|
|
name = 'everness: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 = 31000,
|
|
y_min = 1,
|
|
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_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 = 31000,
|
|
y_min = 1,
|
|
schematic = minetest.get_modpath('everness') .. '/schematics/everness_baobab_tree.mts',
|
|
flags = 'place_center_x, place_center_z',
|
|
rotation = 'random',
|
|
})
|
|
|
|
minetest.register_decoration({
|
|
name = 'default:everness_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 = 31000,
|
|
y_min = 1,
|
|
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,
|
|
})
|
|
|
|
local function register_dry_grass_decoration(offset, scale, length)
|
|
minetest.register_decoration({
|
|
name = 'default:everness_dry_grass_' .. length,
|
|
deco_type = 'simple',
|
|
place_on = { 'default:dry_dirt_with_dry_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_baobab_savanna' },
|
|
y_max = 31000,
|
|
y_min = 1,
|
|
decoration = 'default:dry_grass_' .. length,
|
|
})
|
|
end
|
|
|
|
-- Dry grasses
|
|
|
|
register_dry_grass_decoration(0.01, 0.05, 5)
|
|
register_dry_grass_decoration(0.03, 0.03, 4)
|
|
register_dry_grass_decoration(0.05, 0.01, 3)
|
|
register_dry_grass_decoration(0.07, -0.01, 2)
|
|
register_dry_grass_decoration(0.09, -0.03, 1)
|
|
|
|
-- Forsaken Tundra
|
|
|
|
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 = 31000,
|
|
y_min = 2,
|
|
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 = 31000,
|
|
y_min = 2,
|
|
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 = 31000,
|
|
y_min = 2,
|
|
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 = 31000,
|
|
y_min = 2,
|
|
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 = 31000,
|
|
y_min = 2,
|
|
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 = 31000,
|
|
y_min = 2,
|
|
decoration = 'everness:bloodspore_plant',
|
|
param2 = 8,
|
|
})
|
|
|
|
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',
|
|
'everness_forsaken_tundra_ocean',
|
|
},
|
|
y_max = 31000,
|
|
y_min = -10,
|
|
place_offset_y = -1,
|
|
flags = 'force_placement',
|
|
decoration = { 'everness:forsaken_tundra_beach_sand_with_shells' },
|
|
})
|
|
|
|
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 = 31000,
|
|
y_min = 1,
|
|
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: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 = 31000,
|
|
y_min = 1,
|
|
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,
|
|
})
|
|
|
|
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 = -256,
|
|
y_min = -31000,
|
|
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 = -256,
|
|
y_min = -31000,
|
|
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 = -256,
|
|
y_min = -31000,
|
|
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 = -256,
|
|
y_min = -31000,
|
|
decoration = {
|
|
'everness:blue_crying_obsidian',
|
|
'everness:blue_weeping_obsidian',
|
|
'everness:weeping_obsidian'
|
|
},
|
|
flags = 'all_ceilings, force_placement'
|
|
})
|
|
|
|
minetest.register_decoration({
|
|
name = 'everness: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 = -256,
|
|
y_min = -31000,
|
|
decoration = 'everness:cactus_orange',
|
|
height = 2,
|
|
height_max = 6,
|
|
flags = 'all_floors'
|
|
})
|
|
|
|
minetest.register_decoration({
|
|
name = 'everness: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 = -256,
|
|
y_min = -31000,
|
|
decoration = 'everness:bloodspore_plant_small',
|
|
param2 = 8,
|
|
flags = 'all_floors'
|
|
})
|
|
|
|
minetest.register_decoration({
|
|
name = 'everness:whispering_gourd_vine',
|
|
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 = -256,
|
|
y_min = -31000,
|
|
flags = 'all_ceilings',
|
|
spawn_by = 'air',
|
|
num_spawn_by = 8
|
|
})
|
|
|
|
minetest.register_decoration({
|
|
name = 'everness: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 = -256,
|
|
y_min = -31000,
|
|
decoration = { 'everness:glowing_pillar' },
|
|
flags = 'all_floors',
|
|
})
|
|
|
|
minetest.register_decoration({
|
|
name = 'everness:everness_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 = -256,
|
|
y_min = -31000,
|
|
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: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 = -256,
|
|
y_min = -31000,
|
|
decoration = 'everness:agave_leaf_' .. length,
|
|
flags = 'all_floors'
|
|
})
|
|
end
|
|
|
|
-- Crystal 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)
|
|
|
|
-- 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_tree_1'),
|
|
minetest.get_decoration_id('everness:baobab_tree_2')
|
|
}
|
|
|
|
local deco_id_coral_bones_tree = minetest.get_decoration_id('everness: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)
|