@@ -82,7 +82,8 @@ MapgenFractal::MapgenFractal(int mapgenid, MapgenParams *params, EmergeManager *
82
82
this ->julia_w = sp->julia_w ;
83
83
84
84
// // 2D terrain noise
85
- noise_seabed = new Noise (&sp->np_seabed , seed, csize.X , csize.Z );
85
+ noise_seabed = new Noise (&sp->np_seabed , seed, csize.X , csize.Z );
86
+ noise_filler_depth = new Noise (&sp->np_filler_depth , seed, csize.X , csize.Z );
86
87
87
88
// // 3D terrain noise
88
89
noise_cave1 = new Noise (&sp->np_cave1 , seed, csize.X , csize.Y + 2 , csize.Z );
@@ -126,7 +127,7 @@ MapgenFractal::MapgenFractal(int mapgenid, MapgenParams *params, EmergeManager *
126
127
MapgenFractal::~MapgenFractal ()
127
128
{
128
129
delete noise_seabed;
129
-
130
+ delete noise_filler_depth;
130
131
delete noise_cave1;
131
132
delete noise_cave2;
132
133
@@ -158,9 +159,10 @@ MapgenFractalParams::MapgenFractalParams()
158
159
julia_z = 0.33 ;
159
160
julia_w = 0.33 ;
160
161
161
- np_seabed = NoiseParams (-14 , 9 , v3f (600 , 600 , 600 ), 41900 , 5 , 0.6 , 2.0 );
162
- np_cave1 = NoiseParams (0 , 12 , v3f (128 , 128 , 128 ), 52534 , 4 , 0.5 , 2.0 );
163
- np_cave2 = NoiseParams (0 , 12 , v3f (128 , 128 , 128 ), 10325 , 4 , 0.5 , 2.0 );
162
+ np_seabed = NoiseParams (-14 , 9 , v3f (600 , 600 , 600 ), 41900 , 5 , 0.6 , 2.0 );
163
+ np_filler_depth = NoiseParams (0 , 1.2 , v3f (150 , 150 , 150 ), 261 , 3 , 0.7 , 2.0 );
164
+ np_cave1 = NoiseParams (0 , 12 , v3f (128 , 128 , 128 ), 52534 , 4 , 0.5 , 2.0 );
165
+ np_cave2 = NoiseParams (0 , 12 , v3f (128 , 128 , 128 ), 10325 , 4 , 0.5 , 2.0 );
164
166
}
165
167
166
168
@@ -183,6 +185,7 @@ void MapgenFractalParams::readParams(const Settings *settings)
183
185
settings->getFloatNoEx (" mgfractal_julia_w" , julia_w);
184
186
185
187
settings->getNoiseParams (" mgfractal_np_seabed" , np_seabed);
188
+ settings->getNoiseParams (" mgfractal_np_filler_depth" , np_filler_depth);
186
189
settings->getNoiseParams (" mgfractal_np_cave1" , np_cave1);
187
190
settings->getNoiseParams (" mgfractal_np_cave2" , np_cave2);
188
191
}
@@ -207,6 +210,7 @@ void MapgenFractalParams::writeParams(Settings *settings) const
207
210
settings->setFloat (" mgfractal_julia_w" , julia_w);
208
211
209
212
settings->setNoiseParams (" mgfractal_np_seabed" , np_seabed);
213
+ settings->setNoiseParams (" mgfractal_np_filler_depth" , np_filler_depth);
210
214
settings->setNoiseParams (" mgfractal_np_cave1" , np_cave1);
211
215
settings->setNoiseParams (" mgfractal_np_cave2" , np_cave2);
212
216
}
@@ -349,6 +353,7 @@ void MapgenFractal::calculateNoise()
349
353
int z = node_min.Z ;
350
354
351
355
noise_seabed->perlinMap2D (x, z);
356
+ noise_filler_depth->perlinMap2D (x, z);
352
357
353
358
if (flags & MG_CAVES) {
354
359
noise_cave1->perlinMap3D (x, y, z);
@@ -492,7 +497,8 @@ MgStoneType MapgenFractal::generateBiomes(float *heat_map, float *humidity_map)
492
497
(c == c_water_source && (air_above || !biome))) {
493
498
biome = bmgr->getBiome (heat_map[index ], humidity_map[index ], y);
494
499
depth_top = biome->depth_top ;
495
- base_filler = depth_top + biome->depth_filler ;
500
+ base_filler = MYMAX (depth_top + biome->depth_filler
501
+ + noise_filler_depth->result [index ], 0 );
496
502
depth_water_top = biome->depth_water_top ;
497
503
498
504
// Detect stone type for dungeons during every biome calculation.
0 commit comments