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
|
@ -53,7 +53,7 @@ FlagDesc flagdesc_mapgen_v6[] = {
|
|||
/////////////////////////////////////////////////////////////////////////////
|
||||
|
||||
|
||||
MapgenV6::MapgenV6(int mapgenid, MapgenParams *params, EmergeManager *emerge)
|
||||
MapgenV6::MapgenV6(int mapgenid, MapgenV6Params *params, EmergeManager *emerge)
|
||||
: Mapgen(mapgenid, params, emerge)
|
||||
{
|
||||
this->m_emerge = emerge;
|
||||
|
@ -61,26 +61,25 @@ MapgenV6::MapgenV6(int mapgenid, MapgenParams *params, EmergeManager *emerge)
|
|||
|
||||
this->heightmap = new s16[csize.X * csize.Z];
|
||||
|
||||
MapgenV6Params *sp = (MapgenV6Params *)params->sparams;
|
||||
this->spflags = sp->spflags;
|
||||
this->freq_desert = sp->freq_desert;
|
||||
this->freq_beach = sp->freq_beach;
|
||||
this->spflags = params->spflags;
|
||||
this->freq_desert = params->freq_desert;
|
||||
this->freq_beach = params->freq_beach;
|
||||
|
||||
np_cave = &sp->np_cave;
|
||||
np_humidity = &sp->np_humidity;
|
||||
np_trees = &sp->np_trees;
|
||||
np_apple_trees = &sp->np_apple_trees;
|
||||
np_cave = ¶ms->np_cave;
|
||||
np_humidity = ¶ms->np_humidity;
|
||||
np_trees = ¶ms->np_trees;
|
||||
np_apple_trees = ¶ms->np_apple_trees;
|
||||
|
||||
//// Create noise objects
|
||||
noise_terrain_base = new Noise(&sp->np_terrain_base, seed, csize.X, csize.Y);
|
||||
noise_terrain_higher = new Noise(&sp->np_terrain_higher, seed, csize.X, csize.Y);
|
||||
noise_steepness = new Noise(&sp->np_steepness, seed, csize.X, csize.Y);
|
||||
noise_height_select = new Noise(&sp->np_height_select, seed, csize.X, csize.Y);
|
||||
noise_mud = new Noise(&sp->np_mud, seed, csize.X, csize.Y);
|
||||
noise_beach = new Noise(&sp->np_beach, seed, csize.X, csize.Y);
|
||||
noise_biome = new Noise(&sp->np_biome, seed,
|
||||
noise_terrain_base = new Noise(¶ms->np_terrain_base, seed, csize.X, csize.Y);
|
||||
noise_terrain_higher = new Noise(¶ms->np_terrain_higher, seed, csize.X, csize.Y);
|
||||
noise_steepness = new Noise(¶ms->np_steepness, seed, csize.X, csize.Y);
|
||||
noise_height_select = new Noise(¶ms->np_height_select, seed, csize.X, csize.Y);
|
||||
noise_mud = new Noise(¶ms->np_mud, seed, csize.X, csize.Y);
|
||||
noise_beach = new Noise(¶ms->np_beach, seed, csize.X, csize.Y);
|
||||
noise_biome = new Noise(¶ms->np_biome, seed,
|
||||
csize.X + 2 * MAP_BLOCKSIZE, csize.Y + 2 * MAP_BLOCKSIZE);
|
||||
noise_humidity = new Noise(&sp->np_humidity, seed,
|
||||
noise_humidity = new Noise(¶ms->np_humidity, seed,
|
||||
csize.X + 2 * MAP_BLOCKSIZE, csize.Y + 2 * MAP_BLOCKSIZE);
|
||||
|
||||
//// Resolve nodes to be used
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue