begone nesting and variable tidyup

we may check y + startY a kit, but we never ask how it feels
This commit is contained in:
Ethan 2024-10-19 02:31:18 +01:00
parent 4f01c6a11b
commit 546a3283c4

View File

@ -310,14 +310,16 @@ void WorldGen::GenerateChunkData(int chunkX, int chunkY, int chunkZ, int chunkSi
{ {
// Cave noise // Cave noise
bool cave = false; bool cave = false;
int currentY = y + startY;
for (int i = 0; i < caveSettingsLength; i++) for (int i = 0; i < caveSettingsLength; i++)
{ {
if (y + startY > caveSettings[i].maxHeight) if (currentY > caveSettings[i].maxHeight)
continue; continue;
float noiseCaves = noise3D.eval( float noiseCaves = noise3D.eval(
(float)((x + startX) * caveSettings[i].frequency) + caveSettings[i].offset, (float)((x + startX) * caveSettings[i].frequency) + caveSettings[i].offset,
(float)((y + startY) * caveSettings[i].frequency) + caveSettings[i].offset, (float)((currentY) * caveSettings[i].frequency) + caveSettings[i].offset,
(float)((z + startZ) * caveSettings[i].frequency) + caveSettings[i].offset) (float)((z + startZ) * caveSettings[i].frequency) + caveSettings[i].offset)
* caveSettings[i].amplitude; * caveSettings[i].amplitude;
@ -331,49 +333,49 @@ void WorldGen::GenerateChunkData(int chunkX, int chunkY, int chunkZ, int chunkSi
// Step 1: Terrain Shape (surface and caves) and Ores // Step 1: Terrain Shape (surface and caves) and Ores
// Sky and Caves // Sky and Caves
if (y + startY > noiseY) if (currentY > noiseY)
{ {
if (y + startY <= waterLevel) if (currentY <= waterLevel)
chunkData->push_back(Blocks::WATER); chunkData->push_back(Blocks::WATER);
else else
chunkData->push_back(Blocks::AIR); chunkData->push_back(Blocks::AIR);
continue;
} }
else if (cave) else if (cave) {
chunkData->push_back(Blocks::AIR); chunkData->push_back(Blocks::AIR);
continue;
}
// Ground // Ground
else bool blockSet = false;
for (int i = 0; i < oreSettingsLength; i++)
{ {
bool blockSet = false; if (currentY > oreSettings[i].maxHeight)
for (int i = 0; i < oreSettingsLength; i++) continue;
float noiseOre = noise3D.eval(
(float)((x + startX) * oreSettings[i].frequency) + oreSettings[i].offset,
(float)((currentY) * oreSettings[i].frequency) + oreSettings[i].offset,
(float)((z + startZ) * oreSettings[i].frequency) + oreSettings[i].offset)
* oreSettings[i].amplitude;
if (noiseOre > oreSettings[i].chance)
{ {
if (y + startY > oreSettings[i].maxHeight) chunkData->push_back(oreSettings[i].block);
continue; blockSet = true;
break;
float noiseOre = noise3D.eval(
(float)((x + startX) * oreSettings[i].frequency) + oreSettings[i].offset,
(float)((y + startY) * oreSettings[i].frequency) + oreSettings[i].offset,
(float)((z + startZ) * oreSettings[i].frequency) + oreSettings[i].offset)
* oreSettings[i].amplitude;
if (noiseOre > oreSettings[i].chance)
{
chunkData->push_back(oreSettings[i].block);
blockSet = true;
break;
}
}
if (!blockSet)
{
if (y + startY == noiseY and noiseY < waterLevel)
chunkData->push_back(Blocks::GRASS_BLOCK);
else if (y + startY > 10)
chunkData->push_back(Blocks::DIRT_BLOCK);
else
chunkData->push_back(Blocks::STONE_BLOCK);
} }
} }
}
if (blockSet)
continue;
if (currentY == noiseY and noiseY < waterLevel)
chunkData->push_back(Blocks::GRASS_BLOCK);
else if (currentY > 10)
chunkData->push_back(Blocks::DIRT_BLOCK);
else
chunkData->push_back(Blocks::STONE_BLOCK);
} }
} }
@ -404,7 +406,7 @@ void WorldGen::GenerateChunkData(int chunkX, int chunkY, int chunkZ, int chunkSi
bool cave = false; bool cave = false;
for (int i = 0; i < caveSettingsLength; i++) for (int i = 0; i < caveSettingsLength; i++)
{ {
if (noiseY + startY > caveSettings[i].maxHeight) if (noisecurrentY > caveSettings[i].maxHeight)
continue; continue;
float noiseCaves = noise3D.eval( float noiseCaves = noise3D.eval(