@@ -54,17 +54,18 @@ FlagDesc flagdesc_mapgen_v7[] = {
54
54
MapgenV7::MapgenV7 (int mapgenid, MapgenV7Params *params, EmergeManager *emerge)
55
55
: MapgenBasic(mapgenid, params, emerge)
56
56
{
57
- spflags = params->spflags ;
58
- mount_zero_level = params->mount_zero_level ;
59
- cave_width = params->cave_width ;
60
- large_cave_depth = params->large_cave_depth ;
61
- lava_depth = params->lava_depth ;
62
- float_mount_density = params->float_mount_density ;
63
- floatland_level = params->floatland_level ;
64
- shadow_limit = params->shadow_limit ;
65
- cavern_limit = params->cavern_limit ;
66
- cavern_taper = params->cavern_taper ;
67
- cavern_threshold = params->cavern_threshold ;
57
+ spflags = params->spflags ;
58
+ mount_zero_level = params->mount_zero_level ;
59
+ cave_width = params->cave_width ;
60
+ large_cave_depth = params->large_cave_depth ;
61
+ lava_depth = params->lava_depth ;
62
+ float_mount_density = params->float_mount_density ;
63
+ float_mount_exponent = params->float_mount_exponent ;
64
+ floatland_level = params->floatland_level ;
65
+ shadow_limit = params->shadow_limit ;
66
+ cavern_limit = params->cavern_limit ;
67
+ cavern_taper = params->cavern_taper ;
68
+ cavern_threshold = params->cavern_threshold ;
68
69
69
70
// This is to avoid a divide-by-zero.
70
71
// Parameter will be saved to map_meta.txt in limited form.
@@ -148,18 +149,19 @@ MapgenV7Params::MapgenV7Params():
148
149
149
150
void MapgenV7Params::readParams (const Settings *settings)
150
151
{
151
- settings->getFlagStrNoEx (" mgv7_spflags" , spflags, flagdesc_mapgen_v7);
152
- settings->getS16NoEx (" mgv7_mount_zero_level" , mount_zero_level);
153
- settings->getFloatNoEx (" mgv7_cave_width" , cave_width);
154
- settings->getS16NoEx (" mgv7_large_cave_depth" , large_cave_depth);
155
- settings->getS16NoEx (" mgv7_lava_depth" , lava_depth);
156
- settings->getFloatNoEx (" mgv7_float_mount_density" , float_mount_density);
157
- settings->getFloatNoEx (" mgv7_float_mount_height" , float_mount_height);
158
- settings->getS16NoEx (" mgv7_floatland_level" , floatland_level);
159
- settings->getS16NoEx (" mgv7_shadow_limit" , shadow_limit);
160
- settings->getS16NoEx (" mgv7_cavern_limit" , cavern_limit);
161
- settings->getS16NoEx (" mgv7_cavern_taper" , cavern_taper);
162
- settings->getFloatNoEx (" mgv7_cavern_threshold" , cavern_threshold);
152
+ settings->getFlagStrNoEx (" mgv7_spflags" , spflags, flagdesc_mapgen_v7);
153
+ settings->getS16NoEx (" mgv7_mount_zero_level" , mount_zero_level);
154
+ settings->getFloatNoEx (" mgv7_cave_width" , cave_width);
155
+ settings->getS16NoEx (" mgv7_large_cave_depth" , large_cave_depth);
156
+ settings->getS16NoEx (" mgv7_lava_depth" , lava_depth);
157
+ settings->getFloatNoEx (" mgv7_float_mount_density" , float_mount_density);
158
+ settings->getFloatNoEx (" mgv7_float_mount_height" , float_mount_height);
159
+ settings->getFloatNoEx (" mgv7_float_mount_exponent" , float_mount_exponent);
160
+ settings->getS16NoEx (" mgv7_floatland_level" , floatland_level);
161
+ settings->getS16NoEx (" mgv7_shadow_limit" , shadow_limit);
162
+ settings->getS16NoEx (" mgv7_cavern_limit" , cavern_limit);
163
+ settings->getS16NoEx (" mgv7_cavern_taper" , cavern_taper);
164
+ settings->getFloatNoEx (" mgv7_cavern_threshold" , cavern_threshold);
163
165
164
166
settings->getNoiseParams (" mgv7_np_terrain_base" , np_terrain_base);
165
167
settings->getNoiseParams (" mgv7_np_terrain_alt" , np_terrain_alt);
@@ -180,18 +182,19 @@ void MapgenV7Params::readParams(const Settings *settings)
180
182
181
183
void MapgenV7Params::writeParams (Settings *settings) const
182
184
{
183
- settings->setFlagStr (" mgv7_spflags" , spflags, flagdesc_mapgen_v7, U32_MAX);
184
- settings->setS16 (" mgv7_mount_zero_level" , mount_zero_level);
185
- settings->setFloat (" mgv7_cave_width" , cave_width);
186
- settings->setS16 (" mgv7_large_cave_depth" , large_cave_depth);
187
- settings->setS16 (" mgv7_lava_depth" , lava_depth);
188
- settings->setFloat (" mgv7_float_mount_density" , float_mount_density);
189
- settings->setFloat (" mgv7_float_mount_height" , float_mount_height);
190
- settings->setS16 (" mgv7_floatland_level" , floatland_level);
191
- settings->setS16 (" mgv7_shadow_limit" , shadow_limit);
192
- settings->setS16 (" mgv7_cavern_limit" , cavern_limit);
193
- settings->setS16 (" mgv7_cavern_taper" , cavern_taper);
194
- settings->setFloat (" mgv7_cavern_threshold" , cavern_threshold);
185
+ settings->setFlagStr (" mgv7_spflags" , spflags, flagdesc_mapgen_v7, U32_MAX);
186
+ settings->setS16 (" mgv7_mount_zero_level" , mount_zero_level);
187
+ settings->setFloat (" mgv7_cave_width" , cave_width);
188
+ settings->setS16 (" mgv7_large_cave_depth" , large_cave_depth);
189
+ settings->setS16 (" mgv7_lava_depth" , lava_depth);
190
+ settings->setFloat (" mgv7_float_mount_density" , float_mount_density);
191
+ settings->setFloat (" mgv7_float_mount_height" , float_mount_height);
192
+ settings->setFloat (" mgv7_float_mount_exponent" , float_mount_exponent);
193
+ settings->setS16 (" mgv7_floatland_level" , floatland_level);
194
+ settings->setS16 (" mgv7_shadow_limit" , shadow_limit);
195
+ settings->setS16 (" mgv7_cavern_limit" , cavern_limit);
196
+ settings->setS16 (" mgv7_cavern_taper" , cavern_taper);
197
+ settings->setFloat (" mgv7_cavern_threshold" , cavern_threshold);
195
198
196
199
settings->setNoiseParams (" mgv7_np_terrain_base" , np_terrain_base);
197
200
settings->setNoiseParams (" mgv7_np_terrain_alt" , np_terrain_alt);
@@ -416,8 +419,10 @@ bool MapgenV7::getFloatlandMountainFromMap(int idx_xyz, int idx_xz, s16 y)
416
419
{
417
420
// Make rim 2 nodes thick to match floatland base terrain
418
421
float density_gradient = (y >= floatland_level) ?
419
- -pow ((float )(y - floatland_level) / float_mount_height, 0 .75f ) :
420
- -pow ((float )(floatland_level - 1 - y) / float_mount_height, 0 .75f );
422
+ -pow ((float )(y - floatland_level) / float_mount_height,
423
+ float_mount_exponent) :
424
+ -pow ((float )(floatland_level - 1 - y) / float_mount_height,
425
+ float_mount_exponent);
421
426
422
427
float floatn = noise_mountain->result [idx_xyz] + float_mount_density;
423
428
0 commit comments