diff options
author | SmallJoker <SmallJoker@users.noreply.github.com> | 2020-01-25 16:56:54 +0100 |
---|---|---|
committer | GitHub <noreply@github.com> | 2020-01-25 16:56:54 +0100 |
commit | cde2a7f6f24f638421238ead4e61b155322fefc8 (patch) | |
tree | 96b6b1dd00a0c14660eea6f3f518b5d832dc1bd8 /src/mapgen/mapgen.cpp | |
parent | 9cb3219f34be983e1b84a62a64c25e137d587365 (diff) | |
download | minetest-cde2a7f6f24f638421238ead4e61b155322fefc8.tar.gz minetest-cde2a7f6f24f638421238ead4e61b155322fefc8.tar.bz2 minetest-cde2a7f6f24f638421238ead4e61b155322fefc8.zip |
Settings: Add get_flags API for mapgen flags (mg_flags, mgv6_spflags, ...) (#9284)
Unified flags handling in C++ and Lua Settings API
-> Reading only, for now. Writing can be implemented later, if needed.
API function to read the currently active flags
-> was impossible from Lua
Co-authored-by: Wuzzy <wuzzy2@mail.ru>
Diffstat (limited to 'src/mapgen/mapgen.cpp')
-rw-r--r-- | src/mapgen/mapgen.cpp | 13 |
1 files changed, 12 insertions, 1 deletions
diff --git a/src/mapgen/mapgen.cpp b/src/mapgen/mapgen.cpp index 81ccf1f8d..79c429ff6 100644 --- a/src/mapgen/mapgen.cpp +++ b/src/mapgen/mapgen.cpp @@ -215,6 +215,17 @@ void Mapgen::getMapgenNames(std::vector<const char *> *mgnames, bool include_hid } } +void Mapgen::setDefaultSettings(Settings *settings) +{ + settings->setDefault("mg_flags", flagdesc_mapgen, + MG_CAVES | MG_DUNGEONS | MG_LIGHT | MG_DECORATIONS | MG_BIOMES); + + for (int i = 0; i < (int)MAPGEN_INVALID; ++i) { + MapgenParams *params = createMapgenParams((MapgenType)i); + params->setDefaultSettings(settings); + delete params; + } +} u32 Mapgen::getBlockSeed(v3s16 p, s32 seed) { @@ -1068,7 +1079,7 @@ void MapgenParams::writeParams(Settings *settings) const settings->setS16("water_level", water_level); settings->setS16("mapgen_limit", mapgen_limit); settings->setS16("chunksize", chunksize); - settings->setFlagStr("mg_flags", flags, flagdesc_mapgen, U32_MAX); + settings->setFlagStr("mg_flags", flags, flagdesc_mapgen); if (bparams) bparams->writeParams(settings); |