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,27 +333,29 @@ 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; bool blockSet = false;
for (int i = 0; i < oreSettingsLength; i++) for (int i = 0; i < oreSettingsLength; i++)
{ {
if (y + startY > oreSettings[i].maxHeight) if (currentY > oreSettings[i].maxHeight)
continue; continue;
float noiseOre = noise3D.eval( float noiseOre = noise3D.eval(
(float)((x + startX) * oreSettings[i].frequency) + oreSettings[i].offset, (float)((x + startX) * oreSettings[i].frequency) + oreSettings[i].offset,
(float)((y + startY) * oreSettings[i].frequency) + oreSettings[i].offset, (float)((currentY) * oreSettings[i].frequency) + oreSettings[i].offset,
(float)((z + startZ) * oreSettings[i].frequency) + oreSettings[i].offset) (float)((z + startZ) * oreSettings[i].frequency) + oreSettings[i].offset)
* oreSettings[i].amplitude; * oreSettings[i].amplitude;
@ -363,19 +367,17 @@ void WorldGen::GenerateChunkData(int chunkX, int chunkY, int chunkZ, int chunkSi
} }
} }
if (!blockSet) if (blockSet)
{ continue;
if (y + startY == noiseY and noiseY < waterLevel)
if (currentY == noiseY and noiseY < waterLevel)
chunkData->push_back(Blocks::GRASS_BLOCK); chunkData->push_back(Blocks::GRASS_BLOCK);
else if (y + startY > 10) else if (currentY > 10)
chunkData->push_back(Blocks::DIRT_BLOCK); chunkData->push_back(Blocks::DIRT_BLOCK);
else else
chunkData->push_back(Blocks::STONE_BLOCK); chunkData->push_back(Blocks::STONE_BLOCK);
} }
} }
}
}
}
// Step 3: Surface Features // Step 3: Surface Features
for (int i = 0; i < surfaceFeaturesLength; i++) for (int i = 0; i < surfaceFeaturesLength; i++)
@ -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(