X-Git-Url: https://git.librecmc.org/?a=blobdiff_plain;f=src%2Fmapgen_carpathian.cpp;h=c6ca1de20fa396b53a95501c55bbbc10fb66be29;hb=b5f7249a7edc25077d84b27b38552228b92ff763;hp=8529fd55adbd3babaeceecbfad46f124262740ae;hpb=a80ecbee1e838491343af760539a37fac4232048;p=oweals%2Fminetest.git diff --git a/src/mapgen_carpathian.cpp b/src/mapgen_carpathian.cpp index 8529fd55a..c6ca1de20 100644 --- a/src/mapgen_carpathian.cpp +++ b/src/mapgen_carpathian.cpp @@ -57,6 +57,7 @@ MapgenCarpathian::MapgenCarpathian( spflags = params->spflags; cave_width = params->cave_width; large_cave_depth = params->large_cave_depth; + lava_depth = params->lava_depth; cavern_limit = params->cavern_limit; cavern_taper = params->cavern_taper; cavern_threshold = params->cavern_threshold; @@ -131,6 +132,7 @@ void MapgenCarpathianParams::readParams(const Settings *settings) settings->getFlagStrNoEx("mgcarpathian_spflags", spflags, flagdesc_mapgen_carpathian); settings->getFloatNoEx("mgcarpathian_cave_width", cave_width); settings->getS16NoEx("mgcarpathian_large_cave_depth", large_cave_depth); + settings->getS16NoEx("mgcarpathian_lava_depth", lava_depth); settings->getS16NoEx("mgcarpathian_cavern_limit", cavern_limit); settings->getS16NoEx("mgcarpathian_cavern_taper", cavern_taper); settings->getFloatNoEx("mgcarpathian_cavern_threshold", cavern_threshold); @@ -159,6 +161,7 @@ void MapgenCarpathianParams::writeParams(Settings *settings) const settings->setFlagStr("mgcarpathian_spflags", spflags, flagdesc_mapgen_carpathian, U32_MAX); settings->setFloat("mgcarpathian_cave_width", cave_width); settings->setS16("mgcarpathian_large_cave_depth", large_cave_depth); + settings->setS16("mgcarpathian_lava_depth", lava_depth); settings->setS16("mgcarpathian_cavern_limit", cavern_limit); settings->setS16("mgcarpathian_cavern_taper", cavern_taper); settings->setFloat("mgcarpathian_cavern_threshold", cavern_threshold); @@ -239,7 +242,10 @@ void MapgenCarpathian::makeChunk(BlockMakeData *data) // Init biome generator, place biome-specific nodes, and build biomemap biomegen->calcBiomeNoise(node_min); - MgStoneType stone_type = generateBiomes(); + + MgStoneType mgstone_type; + content_t biome_stone; + generateBiomes(&mgstone_type, &biome_stone, water_level - 1); // Generate caverns, tunnels and classic caves if (flags & MG_CAVES) { @@ -259,14 +265,16 @@ void MapgenCarpathian::makeChunk(BlockMakeData *data) // Generate dungeons if (flags & MG_DUNGEONS) - generateDungeons(stone_surface_max_y, stone_type); + generateDungeons(stone_surface_max_y, mgstone_type, biome_stone); // Generate the registered decorations if (flags & MG_DECORATIONS) - m_emerge->decomgr->placeAllDecos(this, blockseed, node_min, node_max); + m_emerge->decomgr->placeAllDecos(this, blockseed, + node_min, node_max, water_level - 1); // Generate the registered ores - m_emerge->oremgr->placeAllOres(this, blockseed, node_min, node_max); + m_emerge->oremgr->placeAllOres(this, blockseed, + node_min, node_max, water_level - 1); // Sprinkle some dust on top after everything else was generated dustTopNodes(); @@ -292,8 +300,8 @@ int MapgenCarpathian::getSpawnLevelAtPoint(v2s16 p) s16 level_at_point = terrainLevelAtPoint(p.X, p.Y); if (level_at_point <= water_level || level_at_point > water_level + 32) return MAX_MAP_GENERATION_LIMIT; // Unsuitable spawn point - else - return level_at_point; + + return level_at_point; } @@ -445,4 +453,4 @@ int MapgenCarpathian::generateTerrain() } return stone_surface_max_y; -} \ No newline at end of file +}