@@ -32,11 +32,11 @@ NoiseParams nparams_caveliquids(0, 1, v3f(150.0, 150.0, 150.0), 776, 3, 0.6, 2.0
32
32
33
33
34
34
CaveV5::CaveV5 (MapgenV5 *mg, PseudoRandom *ps) {
35
- this ->mg = mg;
36
- this ->vm = mg->vm ;
37
- this ->ndef = mg->ndef ;
38
- this ->water_level = mg->water_level ;
39
- this ->ps = ps;
35
+ this ->mg = mg;
36
+ this ->vm = mg->vm ;
37
+ this ->ndef = mg->ndef ;
38
+ this ->water_level = mg->water_level ;
39
+ this ->ps = ps;
40
40
this ->c_water_source = mg->c_water_source ;
41
41
this ->c_lava_source = mg->c_lava_source ;
42
42
this ->c_ice = mg->c_ice ;
@@ -45,8 +45,8 @@ CaveV5::CaveV5(MapgenV5 *mg, PseudoRandom *ps) {
45
45
dswitchint = ps->range (1 , 14 );
46
46
flooded = ps->range (1 , 2 ) == 2 ;
47
47
48
- part_max_length_rs = ps->range (2 , 4 );
49
- tunnel_routepoints = ps->range (5 , ps->range (15 , 30 ));
48
+ part_max_length_rs = ps->range (2 , 4 );
49
+ tunnel_routepoints = ps->range (5 , ps->range (15 , 30 ));
50
50
min_tunnel_diameter = 5 ;
51
51
max_tunnel_diameter = ps->range (7 , ps->range (8 , 24 ));
52
52
@@ -157,7 +157,7 @@ void CaveV5::makeTunnel(bool dirswitch) {
157
157
158
158
p = orpi + of + rs / 2 ;
159
159
if (p.Z >= node_min.Z && p.Z <= node_max.Z &&
160
- p.X >= node_min.X && p.X <= node_max.X ) {
160
+ p.X >= node_min.X && p.X <= node_max.X ) {
161
161
u32 index = (p.Z - node_min.Z ) * mg->ystride + (p.X - node_min.X );
162
162
s16 h = mg->heightmap [index ];
163
163
if (h < p.Y )
@@ -215,7 +215,7 @@ void CaveV5::carveRoute(v3f vec, float f, bool randomize_xz, bool is_ravine) {
215
215
startp += of;
216
216
217
217
float nval = NoisePerlin3D (np_caveliquids, startp.X ,
218
- startp.Y , startp.Z , mg->seed );
218
+ startp.Y , startp.Z , mg->seed );
219
219
MapNode liquidnode = nval < 0.40 ? lavanode : waternode;
220
220
221
221
v3f fp = orp + vec * f;
@@ -238,7 +238,7 @@ void CaveV5::carveRoute(v3f vec, float f, bool randomize_xz, bool is_ravine) {
238
238
s16 maxabsxz = MYMAX (abs (x0), abs (z0));
239
239
240
240
s16 si2 = is_ravine ? MYMIN (ps->range (25 , 26 ), ar.Y ) :
241
- rs / 2 - MYMAX (0 , maxabsxz - rs / 7 - 1 );
241
+ rs / 2 - MYMAX (0 , maxabsxz - rs / 7 - 1 );
242
242
243
243
for (s16 y0 = -si2; y0 <= si2; y0 ++) {
244
244
if (large_cave_is_flat) {
@@ -251,9 +251,10 @@ void CaveV5::carveRoute(v3f vec, float f, bool randomize_xz, bool is_ravine) {
251
251
p += of;
252
252
253
253
if (!is_ravine && mg->heightmap && should_make_cave_hole &&
254
- p.X <= node_max.X && p.Z <= node_max.Z ) {
254
+ p.X <= node_max.X && p.Z <= node_max.Z ) {
255
255
int maplen = node_max.X - node_min.X + 1 ;
256
- int idx = (p.Z - node_min.Z ) * maplen + (p.X - node_min.X );
256
+ int idx = (p.Z - node_min.Z ) * maplen +
257
+ (p.X - node_min.X );
257
258
if (p.Y >= mg->heightmap [idx] - 2 )
258
259
continue ;
259
260
}
@@ -269,10 +270,13 @@ void CaveV5::carveRoute(v3f vec, float f, bool randomize_xz, bool is_ravine) {
269
270
int full_ymin = node_min.Y - MAP_BLOCKSIZE;
270
271
int full_ymax = node_max.Y + MAP_BLOCKSIZE;
271
272
272
- if (flooded && full_ymin < water_level && full_ymax > water_level)
273
- vm->m_data [i] = (p.Y <= water_level) ? waternode : airnode;
273
+ if (flooded && full_ymin < water_level &&
274
+ full_ymax > water_level)
275
+ vm->m_data [i] = (p.Y <= water_level) ?
276
+ waternode : airnode;
274
277
else if (flooded && full_ymax < water_level)
275
- vm->m_data [i] = (p.Y < startp.Y - 4 ) ? liquidnode : airnode;
278
+ vm->m_data [i] = (p.Y < startp.Y - 4 ) ?
279
+ liquidnode : airnode;
276
280
else
277
281
vm->m_data [i] = airnode;
278
282
}
@@ -285,24 +289,24 @@ void CaveV5::carveRoute(v3f vec, float f, bool randomize_xz, bool is_ravine) {
285
289
286
290
287
291
CaveV6::CaveV6 (MapgenV6 *mg, PseudoRandom *ps, PseudoRandom *ps2, bool is_large_cave) {
288
- this ->mg = mg;
289
- this ->vm = mg->vm ;
290
- this ->ndef = mg->ndef ;
291
- this ->water_level = mg->water_level ;
292
- this ->large_cave = is_large_cave;
293
- this ->ps = ps;
294
- this ->ps2 = ps2;
292
+ this ->mg = mg;
293
+ this ->vm = mg->vm ;
294
+ this ->ndef = mg->ndef ;
295
+ this ->water_level = mg->water_level ;
296
+ this ->large_cave = is_large_cave;
297
+ this ->ps = ps;
298
+ this ->ps2 = ps2;
295
299
this ->c_water_source = mg->c_water_source ;
296
300
this ->c_lava_source = mg->c_lava_source ;
297
301
298
302
min_tunnel_diameter = 2 ;
299
303
max_tunnel_diameter = ps->range (2 , 6 );
300
- dswitchint = ps->range (1 , 14 );
301
- flooded = true ;
304
+ dswitchint = ps->range (1 , 14 );
305
+ flooded = true ;
302
306
303
307
if (large_cave) {
304
- part_max_length_rs = ps->range (2 ,4 );
305
- tunnel_routepoints = ps->range (5 , ps->range (15 ,30 ));
308
+ part_max_length_rs = ps->range (2 ,4 );
309
+ tunnel_routepoints = ps->range (5 , ps->range (15 ,30 ));
306
310
min_tunnel_diameter = 5 ;
307
311
max_tunnel_diameter = ps->range (7 , ps->range (8 ,24 ));
308
312
} else {
@@ -438,7 +442,8 @@ void CaveV6::makeTunnel(bool dirswitch) {
438
442
v3s16 p1 = orpi + veci + of + rs / 2 ;
439
443
if (p1.Z >= node_min.Z && p1.Z <= node_max.Z &&
440
444
p1.X >= node_min.X && p1.X <= node_max.X ) {
441
- u32 index1 = (p1.Z - node_min.Z ) * mg->ystride + (p1.X - node_min.X );
445
+ u32 index1 = (p1.Z - node_min.Z ) * mg->ystride +
446
+ (p1.X - node_min.X );
442
447
h1 = mg->heightmap [index1];
443
448
} else {
444
449
h1 = water_level; // If not in heightmap
@@ -447,7 +452,8 @@ void CaveV6::makeTunnel(bool dirswitch) {
447
452
v3s16 p2 = orpi + of + rs / 2 ;
448
453
if (p2.Z >= node_min.Z && p2.Z <= node_max.Z &&
449
454
p2.X >= node_min.X && p2.X <= node_max.X ) {
450
- u32 index2 = (p2.Z - node_min.Z ) * mg->ystride + (p2.X - node_min.X );
455
+ u32 index2 = (p2.Z - node_min.Z ) * mg->ystride +
456
+ (p2.X - node_min.X );
451
457
h2 = mg->heightmap [index2];
452
458
} else {
453
459
h2 = water_level;
@@ -540,10 +546,13 @@ void CaveV6::carveRoute(v3f vec, float f, bool randomize_xz) {
540
546
int full_ymin = node_min.Y - MAP_BLOCKSIZE;
541
547
int full_ymax = node_max.Y + MAP_BLOCKSIZE;
542
548
543
- if (flooded && full_ymin < water_level && full_ymax > water_level) {
544
- vm->m_data [i] = (p.Y <= water_level) ? waternode : airnode;
549
+ if (flooded && full_ymin < water_level &&
550
+ full_ymax > water_level) {
551
+ vm->m_data [i] = (p.Y <= water_level) ?
552
+ waternode : airnode;
545
553
} else if (flooded && full_ymax < water_level) {
546
- vm->m_data [i] = (p.Y < startp.Y - 2 ) ? lavanode : airnode;
554
+ vm->m_data [i] = (p.Y < startp.Y - 2 ) ?
555
+ lavanode : airnode;
547
556
} else {
548
557
vm->m_data [i] = airnode;
549
558
}
@@ -564,11 +573,11 @@ void CaveV6::carveRoute(v3f vec, float f, bool randomize_xz) {
564
573
565
574
566
575
CaveV7::CaveV7 (MapgenV7 *mg, PseudoRandom *ps) {
567
- this ->mg = mg;
568
- this ->vm = mg->vm ;
569
- this ->ndef = mg->ndef ;
570
- this ->water_level = mg->water_level ;
571
- this ->ps = ps;
576
+ this ->mg = mg;
577
+ this ->vm = mg->vm ;
578
+ this ->ndef = mg->ndef ;
579
+ this ->water_level = mg->water_level ;
580
+ this ->ps = ps;
572
581
this ->c_water_source = mg->c_water_source ;
573
582
this ->c_lava_source = mg->c_lava_source ;
574
583
this ->c_ice = mg->c_ice ;
@@ -577,8 +586,8 @@ CaveV7::CaveV7(MapgenV7 *mg, PseudoRandom *ps) {
577
586
dswitchint = ps->range (1 , 14 );
578
587
flooded = ps->range (1 , 2 ) == 2 ;
579
588
580
- part_max_length_rs = ps->range (2 , 4 );
581
- tunnel_routepoints = ps->range (5 , ps->range (15 , 30 ));
589
+ part_max_length_rs = ps->range (2 , 4 );
590
+ tunnel_routepoints = ps->range (5 , ps->range (15 , 30 ));
582
591
min_tunnel_diameter = 5 ;
583
592
max_tunnel_diameter = ps->range (7 , ps->range (8 , 24 ));
584
593
@@ -748,8 +757,9 @@ void CaveV7::carveRoute(v3f vec, float f, bool randomize_xz, bool is_ravine) {
748
757
startp += of;
749
758
750
759
float nval = NoisePerlin3D (np_caveliquids, startp.X ,
751
- startp.Y , startp.Z , mg->seed );
752
- MapNode liquidnode = (nval < 0.40 && node_max.Y < -256 ) ? lavanode : waternode;
760
+ startp.Y , startp.Z , mg->seed );
761
+ MapNode liquidnode = (nval < 0.40 && node_max.Y < MGV7_LAVA_DEPTH) ?
762
+ lavanode : waternode;
753
763
754
764
v3f fp = orp + vec * f;
755
765
fp.X += 0.1 * ps->range (-10 , 10 );
@@ -771,7 +781,7 @@ void CaveV7::carveRoute(v3f vec, float f, bool randomize_xz, bool is_ravine) {
771
781
s16 maxabsxz = MYMAX (abs (x0), abs (z0));
772
782
773
783
s16 si2 = is_ravine ? MYMIN (ps->range (25 , 26 ), ar.Y ) :
774
- rs / 2 - MYMAX (0 , maxabsxz - rs / 7 - 1 );
784
+ rs / 2 - MYMAX (0 , maxabsxz - rs / 7 - 1 );
775
785
776
786
for (s16 y0 = -si2; y0 <= si2; y0 ++) {
777
787
if (large_cave_is_flat) {
@@ -784,9 +794,10 @@ void CaveV7::carveRoute(v3f vec, float f, bool randomize_xz, bool is_ravine) {
784
794
p += of;
785
795
786
796
if (!is_ravine && mg->heightmap && should_make_cave_hole &&
787
- p.X <= node_max.X && p.Z <= node_max.Z ) {
797
+ p.X <= node_max.X && p.Z <= node_max.Z ) {
788
798
int maplen = node_max.X - node_min.X + 1 ;
789
- int idx = (p.Z - node_min.Z ) * maplen + (p.X - node_min.X );
799
+ int idx = (p.Z - node_min.Z ) * maplen +
800
+ (p.X - node_min.X );
790
801
if (p.Y >= mg->heightmap [idx] - 2 )
791
802
continue ;
792
803
}
@@ -802,10 +813,13 @@ void CaveV7::carveRoute(v3f vec, float f, bool randomize_xz, bool is_ravine) {
802
813
int full_ymin = node_min.Y - MAP_BLOCKSIZE;
803
814
int full_ymax = node_max.Y + MAP_BLOCKSIZE;
804
815
805
- if (flooded && full_ymin < water_level && full_ymax > water_level)
806
- vm->m_data [i] = (p.Y <= water_level) ? waternode : airnode;
816
+ if (flooded && full_ymin < water_level &&
817
+ full_ymax > water_level)
818
+ vm->m_data [i] = (p.Y <= water_level) ?
819
+ waternode : airnode;
807
820
else if (flooded && full_ymax < water_level)
808
- vm->m_data [i] = (p.Y < startp.Y - 4 ) ? liquidnode : airnode;
821
+ vm->m_data [i] = (p.Y < startp.Y - 4 ) ?
822
+ liquidnode : airnode;
809
823
else
810
824
vm->m_data [i] = airnode;
811
825
}
0 commit comments