Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
17 changes: 16 additions & 1 deletion src/mapgen/mapgen.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -769,6 +769,22 @@ void MapgenBasic::generateBiomes()
}


void MapgenBasic::removeOvergeneratedCStone()
{
for (s16 z = node_min.Z; z <= node_max.Z; z++)
for (s16 x = node_min.X; x <= node_max.X; x++) {
u32 vi = vm->m_area.index(x, node_max.Y + 1, z); // top
if (vm->m_data[vi].getContent() == c_stone) {
vm->m_data[vi].setContent(CONTENT_IGNORE);
}
vi = vm->m_area.index(x, node_min.Y - 1, z); // bottom
if (vm->m_data[vi].getContent() == c_stone) {
vm->m_data[vi].setContent(CONTENT_IGNORE);
}
}
}


void MapgenBasic::dustTopNodes()
{
if (node_max.Y < water_level)
Expand Down Expand Up @@ -955,7 +971,6 @@ void MapgenBasic::generateDungeons(s16 max_stone_y)
dgen.generate(vm, blockseed, full_node_min, full_node_max);
}


////
//// GenerateNotifier
////
Expand Down
1 change: 1 addition & 0 deletions src/mapgen/mapgen.h
Original file line number Diff line number Diff line change
Expand Up @@ -289,6 +289,7 @@ class MapgenBasic : public Mapgen {
virtual void generateCavesRandomWalk(s16 max_stone_y, s16 large_cave_ymax);
virtual bool generateCavernsNoise(s16 max_stone_y);
virtual void generateDungeons(s16 max_stone_y);
virtual void removeOvergeneratedCStone();

protected:
BiomeManager *m_bmgr;
Expand Down
2 changes: 2 additions & 0 deletions src/mapgen/mapgen_carpathian.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -318,6 +318,8 @@ void MapgenCarpathian::makeChunk(BlockMakeData *data)
full_node_min, full_node_max);
}

removeOvergeneratedCStone();

this->generating = false;
}

Expand Down
2 changes: 2 additions & 0 deletions src/mapgen/mapgen_flat.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -268,6 +268,8 @@ void MapgenFlat::makeChunk(BlockMakeData *data)
//setLighting(node_min - v3s16(1, 0, 1) * MAP_BLOCKSIZE,
// node_max + v3s16(1, 0, 1) * MAP_BLOCKSIZE, 0xFF);

removeOvergeneratedCStone();

this->generating = false;
}

Expand Down
2 changes: 2 additions & 0 deletions src/mapgen/mapgen_fractal.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -263,6 +263,8 @@ void MapgenFractal::makeChunk(BlockMakeData *data)
calcLighting(node_min - v3s16(0, 1, 0), node_max + v3s16(0, 1, 0),
full_node_min, full_node_max);

removeOvergeneratedCStone();

this->generating = false;

//printf("makeChunk: %lums\n", t.stop());
Expand Down
2 changes: 2 additions & 0 deletions src/mapgen/mapgen_v5.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -262,6 +262,8 @@ void MapgenV5::makeChunk(BlockMakeData *data)
full_node_min, full_node_max);
}

removeOvergeneratedCStone();

this->generating = false;
}

Expand Down
17 changes: 17 additions & 0 deletions src/mapgen/mapgen_v6.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -620,10 +620,27 @@ void MapgenV6::makeChunk(BlockMakeData *data)
calcLighting(node_min - v3s16(1, 1, 1) * MAP_BLOCKSIZE,
node_max + v3s16(1, 0, 1) * MAP_BLOCKSIZE,
full_node_min, full_node_max);

removeOvergeneratedCStone();

this->generating = false;
}

void MapgenV6::removeOvergeneratedCStone()
{
for (s16 z = node_min.Z; z <= node_max.Z; z++)
for (s16 x = node_min.X; x <= node_max.X; x++) {
u32 vi = vm->m_area.index(x, node_max.Y + 1, z); // top
if (vm->m_data[vi].getContent() == c_stone) {
vm->m_data[vi].setContent(CONTENT_IGNORE);
}
vi = vm->m_area.index(x, node_min.Y - 1, z); // bottom
if (vm->m_data[vi].getContent() == c_stone) {
vm->m_data[vi].setContent(CONTENT_IGNORE);
}
}
}


void MapgenV6::calculateNoise()
{
Expand Down
1 change: 1 addition & 0 deletions src/mapgen/mapgen_v6.h
Original file line number Diff line number Diff line change
Expand Up @@ -125,6 +125,7 @@ class MapgenV6 : public Mapgen {
void makeChunk(BlockMakeData *data);
int getGroundLevelAtPoint(v2s16 p);
int getSpawnLevelAtPoint(v2s16 p);
virtual void removeOvergeneratedCStone();

float baseTerrainLevel(float terrain_base, float terrain_higher,
float steepness, float height_select);
Expand Down
2 changes: 2 additions & 0 deletions src/mapgen/mapgen_v7.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -379,6 +379,8 @@ void MapgenV7::makeChunk(BlockMakeData *data)
calcLighting(node_min - v3s16(0, 1, 0), node_max + v3s16(0, 1, 0),
full_node_min, full_node_max, propagate_shadow);

removeOvergeneratedCStone();

this->generating = false;

//printf("makeChunk: %lums\n", t.stop());
Expand Down
2 changes: 2 additions & 0 deletions src/mapgen/mapgen_valleys.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -271,6 +271,8 @@ void MapgenValleys::makeChunk(BlockMakeData *data)
calcLighting(node_min - v3s16(0, 1, 0), node_max + v3s16(0, 1, 0),
full_node_min, full_node_max);

removeOvergeneratedCStone();

this->generating = false;

//printf("makeChunk: %lums\n", t.stop());
Expand Down
Loading