Allow mapgen chunk size to be non-cubic (#16429)
This commit is contained in:
@@ -849,28 +849,27 @@ int ModApiMapgen::l_get_mapgen_edges(lua_State *L)
|
||||
// MapSettingsManager::makeMapgenParams cannot be used here because it would
|
||||
// make mapgen settings immutable from then on. Mapgen settings should stay
|
||||
// mutable until after mod loading ends.
|
||||
std::unique_ptr<MapgenParams> params(settingsmgr->makeMapgenParamsCopy());
|
||||
|
||||
s16 mapgen_limit;
|
||||
if (lua_isnumber(L, 1)) {
|
||||
mapgen_limit = lua_tointeger(L, 1);
|
||||
mapgen_limit = lua_tointeger(L, 1);
|
||||
} else {
|
||||
std::string mapgen_limit_str;
|
||||
settingsmgr->getMapSetting("mapgen_limit", &mapgen_limit_str);
|
||||
mapgen_limit = stoi(mapgen_limit_str, 0, MAX_MAP_GENERATION_LIMIT);
|
||||
mapgen_limit = params->mapgen_limit;
|
||||
}
|
||||
|
||||
s16 chunksize;
|
||||
v3s16 chunksize;
|
||||
if (lua_isnumber(L, 2)) {
|
||||
chunksize = lua_tointeger(L, 2);
|
||||
chunksize = v3s16(lua_tointeger(L, 2));
|
||||
} else if (lua_istable(L, 2)) {
|
||||
chunksize = check_v3s16(L, 2);
|
||||
} else {
|
||||
std::string chunksize_str;
|
||||
settingsmgr->getMapSetting("chunksize", &chunksize_str);
|
||||
chunksize = stoi(chunksize_str, 1, 10);
|
||||
chunksize = params->chunksize;
|
||||
}
|
||||
|
||||
std::pair<s16, s16> edges = get_mapgen_edges(mapgen_limit, chunksize);
|
||||
push_v3s16(L, v3s16(1, 1, 1) * edges.first);
|
||||
push_v3s16(L, v3s16(1, 1, 1) * edges.second);
|
||||
auto edges = get_mapgen_edges(mapgen_limit, chunksize);
|
||||
push_v3s16(L, edges.first);
|
||||
push_v3s16(L, edges.second);
|
||||
return 2;
|
||||
}
|
||||
|
||||
@@ -884,12 +883,9 @@ int ModApiMapgen::l_get_mapgen_chunksize(lua_State *L)
|
||||
// MapSettingsManager::makeMapgenParams cannot be used here because it would
|
||||
// make mapgen settings immutable from then on. Mapgen settings should stay
|
||||
// mutable until after mod loading ends.
|
||||
std::unique_ptr<MapgenParams> params(settingsmgr->makeMapgenParamsCopy());
|
||||
|
||||
std::string chunksize_str;
|
||||
settingsmgr->getMapSetting("chunksize", &chunksize_str);
|
||||
s16 chunksize = stoi(chunksize_str, 1, 10);
|
||||
|
||||
push_v3s16(L, {chunksize, chunksize, chunksize});
|
||||
push_v3s16(L, params->chunksize);
|
||||
return 1;
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user