Skip to content

Commit f18b487

Browse files
committedJun 18, 2013
Decoration: Place decorations in mgv6, check if air or cignore before placement
1 parent 261f559 commit f18b487

File tree

2 files changed

+14
-3
lines changed

2 files changed

+14
-3
lines changed
 

‎src/mapgen.cpp

+8-3
Original file line numberDiff line numberDiff line change
@@ -421,17 +421,22 @@ void DecoSimple::generate(Mapgen *mg, PseudoRandom *pr, s16 max_y, s16 start_y,
421421
}
422422

423423
size_t ndecos = c_decolist.size();
424-
content_t c = ndecos ? c_decolist[pr->range(0, ndecos - 1)] : c_deco;
424+
content_t c_place = ndecos ? c_decolist[pr->range(0, ndecos - 1)] : c_deco;
425425

426426
s16 height = (deco_height_max > 0) ?
427427
pr->range(deco_height, deco_height_max) : deco_height;
428428

429429
height = MYMIN(height, max_y - p.Y);
430-
430+
431431
v3s16 em = vm->m_area.getExtent();
432432
for (int i = start_y; i < height; i++) {
433433
vm->m_area.add_y(em, vi, 1);
434-
vm->m_data[vi] = MapNode(c);
434+
435+
content_t c = vm->m_data[vi].getContent();
436+
if (c != CONTENT_AIR && c != CONTENT_IGNORE)
437+
break;
438+
439+
vm->m_data[vi] = MapNode(c_place);
435440
}
436441
}
437442

‎src/mapgen_v6.cpp

+6
Original file line numberDiff line numberDiff line change
@@ -445,6 +445,12 @@ void MapgenV6::makeChunk(BlockMakeData *data) {
445445
// Generate some trees, and add grass, if a jungle
446446
if (flags & MG_TREES)
447447
placeTreesAndJungleGrass();
448+
449+
// Generate the registered decorations
450+
for (unsigned int i = 0; i != emerge->decorations.size(); i++) {
451+
Decoration *deco = emerge->decorations[i];
452+
deco->placeDeco(this, blockseed + i, node_min, node_max);
453+
}
448454

449455
// Generate the registered ores
450456
for (unsigned int i = 0; i != emerge->ores.size(); i++) {

0 commit comments

Comments
 (0)
Please sign in to comment.