diff options
author | Paramat <paramat@users.noreply.github.com> | 2018-04-07 22:09:54 +0100 |
---|---|---|
committer | GitHub <noreply@github.com> | 2018-04-07 22:09:54 +0100 |
commit | 746ca41f58e356b0fbeeca1b43b7061ad1e1c02d (patch) | |
tree | f4cda48dac60ca7d8145de64cc2a208e7420d972 /src/mapgen/mg_biome.cpp | |
parent | 460b375cad05cd1c32a061aeef2fd1dfb3fb95b4 (diff) | |
download | minetest-746ca41f58e356b0fbeeca1b43b7061ad1e1c02d.tar.gz minetest-746ca41f58e356b0fbeeca1b43b7061ad1e1c02d.tar.bz2 minetest-746ca41f58e356b0fbeeca1b43b7061ad1e1c02d.zip |
Biome API / dungeons: Add biome-defined dungeon nodes
Add new biome fields 'node_dungeon', 'node_dungeon_alt', 'node_dungeon_stair'.
If 'node_dungeon' is not defined dungeons fall back to classic behaviour.
Remove messy and imprecise dungeon material code from 'generateBiomes()'.
Code deciding dungeon materials is now in 'generateDungeons()' and uses the
biome at mapchunk centre for more precision.
Remove hardcoded 'MG_STONE' types as long intended.
Diffstat (limited to 'src/mapgen/mg_biome.cpp')
-rw-r--r-- | src/mapgen/mg_biome.cpp | 24 |
1 files changed, 15 insertions, 9 deletions
diff --git a/src/mapgen/mg_biome.cpp b/src/mapgen/mg_biome.cpp index 584dea9c4..16e276b53 100644 --- a/src/mapgen/mg_biome.cpp +++ b/src/mapgen/mg_biome.cpp @@ -63,6 +63,9 @@ BiomeManager::BiomeManager(Server *server) : b->m_nodenames.emplace_back("mapgen_stone"); b->m_nodenames.emplace_back("ignore"); b->m_nodenames.emplace_back("ignore"); + b->m_nodenames.emplace_back("ignore"); + b->m_nodenames.emplace_back("ignore"); + b->m_nodenames.emplace_back("ignore"); m_ndef->pendNodeResolve(b); add(b); @@ -314,13 +317,16 @@ Biome *BiomeGenOriginal::calcBiomeFromNoise(float heat, float humidity, v3s16 po void Biome::resolveNodeNames() { - getIdFromNrBacklog(&c_top, "mapgen_stone", CONTENT_AIR); - getIdFromNrBacklog(&c_filler, "mapgen_stone", CONTENT_AIR); - getIdFromNrBacklog(&c_stone, "mapgen_stone", CONTENT_AIR); - getIdFromNrBacklog(&c_water_top, "mapgen_water_source", CONTENT_AIR); - getIdFromNrBacklog(&c_water, "mapgen_water_source", CONTENT_AIR); - getIdFromNrBacklog(&c_river_water, "mapgen_river_water_source", CONTENT_AIR); - getIdFromNrBacklog(&c_riverbed, "mapgen_stone", CONTENT_AIR); - getIdFromNrBacklog(&c_dust, "ignore", CONTENT_IGNORE); - getIdFromNrBacklog(&c_cave_liquid, "ignore", CONTENT_IGNORE); + getIdFromNrBacklog(&c_top, "mapgen_stone", CONTENT_AIR); + getIdFromNrBacklog(&c_filler, "mapgen_stone", CONTENT_AIR); + getIdFromNrBacklog(&c_stone, "mapgen_stone", CONTENT_AIR); + getIdFromNrBacklog(&c_water_top, "mapgen_water_source", CONTENT_AIR); + getIdFromNrBacklog(&c_water, "mapgen_water_source", CONTENT_AIR); + getIdFromNrBacklog(&c_river_water, "mapgen_river_water_source", CONTENT_AIR); + getIdFromNrBacklog(&c_riverbed, "mapgen_stone", CONTENT_AIR); + getIdFromNrBacklog(&c_dust, "ignore", CONTENT_IGNORE); + getIdFromNrBacklog(&c_cave_liquid, "ignore", CONTENT_IGNORE); + getIdFromNrBacklog(&c_dungeon, "ignore", CONTENT_IGNORE); + getIdFromNrBacklog(&c_dungeon_alt, "ignore", CONTENT_IGNORE); + getIdFromNrBacklog(&c_dungeon_stair, "ignore", CONTENT_IGNORE); } |