1
0
Fork 0
mirror of https://github.com/luanti-org/luanti.git synced 2025-06-27 16:36:03 +00:00
This commit is contained in:
ExeVirus 2025-06-25 09:59:01 -05:00 committed by GitHub
commit 2bf3d06b91
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
10 changed files with 47 additions and 1 deletions

View file

@ -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() void MapgenBasic::dustTopNodes()
{ {
if (node_max.Y < water_level) if (node_max.Y < water_level)
@ -955,7 +971,6 @@ void MapgenBasic::generateDungeons(s16 max_stone_y)
dgen.generate(vm, blockseed, full_node_min, full_node_max); dgen.generate(vm, blockseed, full_node_min, full_node_max);
} }
//// ////
//// GenerateNotifier //// GenerateNotifier
//// ////

View file

@ -289,6 +289,7 @@ public:
virtual void generateCavesRandomWalk(s16 max_stone_y, s16 large_cave_ymax); virtual void generateCavesRandomWalk(s16 max_stone_y, s16 large_cave_ymax);
virtual bool generateCavernsNoise(s16 max_stone_y); virtual bool generateCavernsNoise(s16 max_stone_y);
virtual void generateDungeons(s16 max_stone_y); virtual void generateDungeons(s16 max_stone_y);
virtual void removeOvergeneratedCStone();
protected: protected:
BiomeManager *m_bmgr; BiomeManager *m_bmgr;

View file

@ -318,6 +318,8 @@ void MapgenCarpathian::makeChunk(BlockMakeData *data)
full_node_min, full_node_max); full_node_min, full_node_max);
} }
removeOvergeneratedCStone();
this->generating = false; this->generating = false;
} }

View file

@ -268,6 +268,8 @@ void MapgenFlat::makeChunk(BlockMakeData *data)
//setLighting(node_min - v3s16(1, 0, 1) * MAP_BLOCKSIZE, //setLighting(node_min - v3s16(1, 0, 1) * MAP_BLOCKSIZE,
// node_max + v3s16(1, 0, 1) * MAP_BLOCKSIZE, 0xFF); // node_max + v3s16(1, 0, 1) * MAP_BLOCKSIZE, 0xFF);
removeOvergeneratedCStone();
this->generating = false; this->generating = false;
} }

View file

@ -263,6 +263,8 @@ void MapgenFractal::makeChunk(BlockMakeData *data)
calcLighting(node_min - v3s16(0, 1, 0), node_max + v3s16(0, 1, 0), calcLighting(node_min - v3s16(0, 1, 0), node_max + v3s16(0, 1, 0),
full_node_min, full_node_max); full_node_min, full_node_max);
removeOvergeneratedCStone();
this->generating = false; this->generating = false;
//printf("makeChunk: %lums\n", t.stop()); //printf("makeChunk: %lums\n", t.stop());

View file

@ -262,6 +262,8 @@ void MapgenV5::makeChunk(BlockMakeData *data)
full_node_min, full_node_max); full_node_min, full_node_max);
} }
removeOvergeneratedCStone();
this->generating = false; this->generating = false;
} }

View file

@ -620,10 +620,27 @@ void MapgenV6::makeChunk(BlockMakeData *data)
calcLighting(node_min - v3s16(1, 1, 1) * MAP_BLOCKSIZE, calcLighting(node_min - v3s16(1, 1, 1) * MAP_BLOCKSIZE,
node_max + v3s16(1, 0, 1) * MAP_BLOCKSIZE, node_max + v3s16(1, 0, 1) * MAP_BLOCKSIZE,
full_node_min, full_node_max); full_node_min, full_node_max);
removeOvergeneratedCStone();
this->generating = false; 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() void MapgenV6::calculateNoise()
{ {

View file

@ -125,6 +125,7 @@ public:
void makeChunk(BlockMakeData *data); void makeChunk(BlockMakeData *data);
int getGroundLevelAtPoint(v2s16 p); int getGroundLevelAtPoint(v2s16 p);
int getSpawnLevelAtPoint(v2s16 p); int getSpawnLevelAtPoint(v2s16 p);
virtual void removeOvergeneratedCStone();
float baseTerrainLevel(float terrain_base, float terrain_higher, float baseTerrainLevel(float terrain_base, float terrain_higher,
float steepness, float height_select); float steepness, float height_select);

View file

@ -379,6 +379,8 @@ void MapgenV7::makeChunk(BlockMakeData *data)
calcLighting(node_min - v3s16(0, 1, 0), node_max + v3s16(0, 1, 0), calcLighting(node_min - v3s16(0, 1, 0), node_max + v3s16(0, 1, 0),
full_node_min, full_node_max, propagate_shadow); full_node_min, full_node_max, propagate_shadow);
removeOvergeneratedCStone();
this->generating = false; this->generating = false;
//printf("makeChunk: %lums\n", t.stop()); //printf("makeChunk: %lums\n", t.stop());

View file

@ -271,6 +271,8 @@ void MapgenValleys::makeChunk(BlockMakeData *data)
calcLighting(node_min - v3s16(0, 1, 0), node_max + v3s16(0, 1, 0), calcLighting(node_min - v3s16(0, 1, 0), node_max + v3s16(0, 1, 0),
full_node_min, full_node_max); full_node_min, full_node_max);
removeOvergeneratedCStone();
this->generating = false; this->generating = false;
//printf("makeChunk: %lums\n", t.stop()); //printf("makeChunk: %lums\n", t.stop());