Skip to content

Commit 182b3fd

Browse files
committedOct 29, 2015
Mgfractal: Add filler depth noise
1 parent 688556a commit 182b3fd

File tree

2 files changed

+14
-7
lines changed

2 files changed

+14
-7
lines changed
 

Diff for: ‎src/mapgen_fractal.cpp

+12-6
Original file line numberDiff line numberDiff line change
@@ -82,7 +82,8 @@ MapgenFractal::MapgenFractal(int mapgenid, MapgenParams *params, EmergeManager *
8282
this->julia_w = sp->julia_w;
8383

8484
//// 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);
8687

8788
//// 3D terrain noise
8889
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 *
126127
MapgenFractal::~MapgenFractal()
127128
{
128129
delete noise_seabed;
129-
130+
delete noise_filler_depth;
130131
delete noise_cave1;
131132
delete noise_cave2;
132133

@@ -158,9 +159,10 @@ MapgenFractalParams::MapgenFractalParams()
158159
julia_z = 0.33;
159160
julia_w = 0.33;
160161

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);
164166
}
165167

166168

@@ -183,6 +185,7 @@ void MapgenFractalParams::readParams(const Settings *settings)
183185
settings->getFloatNoEx("mgfractal_julia_w", julia_w);
184186

185187
settings->getNoiseParams("mgfractal_np_seabed", np_seabed);
188+
settings->getNoiseParams("mgfractal_np_filler_depth", np_filler_depth);
186189
settings->getNoiseParams("mgfractal_np_cave1", np_cave1);
187190
settings->getNoiseParams("mgfractal_np_cave2", np_cave2);
188191
}
@@ -207,6 +210,7 @@ void MapgenFractalParams::writeParams(Settings *settings) const
207210
settings->setFloat("mgfractal_julia_w", julia_w);
208211

209212
settings->setNoiseParams("mgfractal_np_seabed", np_seabed);
213+
settings->setNoiseParams("mgfractal_np_filler_depth", np_filler_depth);
210214
settings->setNoiseParams("mgfractal_np_cave1", np_cave1);
211215
settings->setNoiseParams("mgfractal_np_cave2", np_cave2);
212216
}
@@ -349,6 +353,7 @@ void MapgenFractal::calculateNoise()
349353
int z = node_min.Z;
350354

351355
noise_seabed->perlinMap2D(x, z);
356+
noise_filler_depth->perlinMap2D(x, z);
352357

353358
if (flags & MG_CAVES) {
354359
noise_cave1->perlinMap3D(x, y, z);
@@ -492,7 +497,8 @@ MgStoneType MapgenFractal::generateBiomes(float *heat_map, float *humidity_map)
492497
(c == c_water_source && (air_above || !biome))) {
493498
biome = bmgr->getBiome(heat_map[index], humidity_map[index], y);
494499
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);
496502
depth_water_top = biome->depth_water_top;
497503

498504
// Detect stone type for dungeons during every biome calculation.

Diff for: ‎src/mapgen_fractal.h

+2-1
Original file line numberDiff line numberDiff line change
@@ -51,6 +51,7 @@ struct MapgenFractalParams : public MapgenSpecificParams {
5151
float julia_w;
5252

5353
NoiseParams np_seabed;
54+
NoiseParams np_filler_depth;
5455
NoiseParams np_cave1;
5556
NoiseParams np_cave2;
5657

@@ -90,7 +91,7 @@ class MapgenFractal : public Mapgen {
9091
float julia_w;
9192

9293
Noise *noise_seabed;
93-
94+
Noise *noise_filler_depth;
9495
Noise *noise_cave1;
9596
Noise *noise_cave2;
9697

0 commit comments

Comments
 (0)
Please sign in to comment.