mirror of
https://github.com/luanti-org/luanti.git
synced 2025-06-27 16:36:03 +00:00
Add MapSettingsManager and new mapgen setting script API functions
This commit refactors the majority of the Mapgen settings system. - MapgenParams is now owned by MapSettingsManager, itself a part of ServerMap, instead of the EmergeManager. - New Script API functions added: core.get_mapgen_setting core.get_mapgen_setting_noiseparams, core.set_mapgen_setting, and core.set_mapgen_setting_noiseparams. - minetest.get/set_mapgen_params are deprecated by the above new functions. - It is now possible to view and modify any arbitrary mapgen setting from a mod, rather than the base MapgenParams structure. - MapgenSpecificParams has been removed.
This commit is contained in:
parent
92705306bf
commit
3c63c3044d
31 changed files with 890 additions and 315 deletions
|
@ -64,7 +64,7 @@ static FlagDesc flagdesc_mapgen_valleys[] = {
|
|||
///////////////////////////////////////////////////////////////////////////////
|
||||
|
||||
|
||||
MapgenValleys::MapgenValleys(int mapgenid, MapgenParams *params, EmergeManager *emerge)
|
||||
MapgenValleys::MapgenValleys(int mapgenid, MapgenValleysParams *params, EmergeManager *emerge)
|
||||
: MapgenBasic(mapgenid, params, emerge)
|
||||
{
|
||||
// NOTE: MapgenValleys has a hard dependency on BiomeGenOriginal
|
||||
|
@ -73,34 +73,33 @@ MapgenValleys::MapgenValleys(int mapgenid, MapgenParams *params, EmergeManager *
|
|||
this->map_gen_limit = MYMIN(MAX_MAP_GENERATION_LIMIT,
|
||||
g_settings->getU16("map_generation_limit"));
|
||||
|
||||
MapgenValleysParams *sp = (MapgenValleysParams *)params->sparams;
|
||||
BiomeParamsOriginal *bp = (BiomeParamsOriginal *)params->bparams;
|
||||
|
||||
this->spflags = sp->spflags;
|
||||
this->altitude_chill = sp->altitude_chill;
|
||||
this->large_cave_depth = sp->large_cave_depth;
|
||||
this->lava_features_lim = rangelim(sp->lava_features, 0, 10);
|
||||
this->massive_cave_depth = sp->massive_cave_depth;
|
||||
this->river_depth_bed = sp->river_depth + 1.f;
|
||||
this->river_size_factor = sp->river_size / 100.f;
|
||||
this->water_features_lim = rangelim(sp->water_features, 0, 10);
|
||||
this->cave_width = sp->cave_width;
|
||||
this->spflags = params->spflags;
|
||||
this->altitude_chill = params->altitude_chill;
|
||||
this->large_cave_depth = params->large_cave_depth;
|
||||
this->lava_features_lim = rangelim(params->lava_features, 0, 10);
|
||||
this->massive_cave_depth = params->massive_cave_depth;
|
||||
this->river_depth_bed = params->river_depth + 1.f;
|
||||
this->river_size_factor = params->river_size / 100.f;
|
||||
this->water_features_lim = rangelim(params->water_features, 0, 10);
|
||||
this->cave_width = params->cave_width;
|
||||
|
||||
//// 2D Terrain noise
|
||||
noise_filler_depth = new Noise(&sp->np_filler_depth, seed, csize.X, csize.Z);
|
||||
noise_inter_valley_slope = new Noise(&sp->np_inter_valley_slope, seed, csize.X, csize.Z);
|
||||
noise_rivers = new Noise(&sp->np_rivers, seed, csize.X, csize.Z);
|
||||
noise_terrain_height = new Noise(&sp->np_terrain_height, seed, csize.X, csize.Z);
|
||||
noise_valley_depth = new Noise(&sp->np_valley_depth, seed, csize.X, csize.Z);
|
||||
noise_valley_profile = new Noise(&sp->np_valley_profile, seed, csize.X, csize.Z);
|
||||
noise_filler_depth = new Noise(¶ms->np_filler_depth, seed, csize.X, csize.Z);
|
||||
noise_inter_valley_slope = new Noise(¶ms->np_inter_valley_slope, seed, csize.X, csize.Z);
|
||||
noise_rivers = new Noise(¶ms->np_rivers, seed, csize.X, csize.Z);
|
||||
noise_terrain_height = new Noise(¶ms->np_terrain_height, seed, csize.X, csize.Z);
|
||||
noise_valley_depth = new Noise(¶ms->np_valley_depth, seed, csize.X, csize.Z);
|
||||
noise_valley_profile = new Noise(¶ms->np_valley_profile, seed, csize.X, csize.Z);
|
||||
|
||||
//// 3D Terrain noise
|
||||
// 1-up 1-down overgeneration
|
||||
noise_inter_valley_fill = new Noise(&sp->np_inter_valley_fill, seed, csize.X, csize.Y + 2, csize.Z);
|
||||
noise_inter_valley_fill = new Noise(¶ms->np_inter_valley_fill, seed, csize.X, csize.Y + 2, csize.Z);
|
||||
// 1-down overgeneraion
|
||||
noise_cave1 = new Noise(&sp->np_cave1, seed, csize.X, csize.Y + 1, csize.Z);
|
||||
noise_cave2 = new Noise(&sp->np_cave2, seed, csize.X, csize.Y + 1, csize.Z);
|
||||
noise_massive_caves = new Noise(&sp->np_massive_caves, seed, csize.X, csize.Y + 1, csize.Z);
|
||||
noise_cave1 = new Noise(¶ms->np_cave1, seed, csize.X, csize.Y + 1, csize.Z);
|
||||
noise_cave2 = new Noise(¶ms->np_cave2, seed, csize.X, csize.Y + 1, csize.Z);
|
||||
noise_massive_caves = new Noise(¶ms->np_massive_caves, seed, csize.X, csize.Y + 1, csize.Z);
|
||||
|
||||
this->humid_rivers = (spflags & MGVALLEYS_HUMID_RIVERS);
|
||||
this->use_altitude_chill = (spflags & MGVALLEYS_ALT_CHILL);
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue