1
0

Added PieceStructures generator.

This commit is contained in:
Mattes D
2015-11-11 10:32:42 +01:00
parent 1a9c023d6c
commit b8fbba5eb9
56 changed files with 18104 additions and 12079 deletions

View File

@@ -192,6 +192,27 @@ void cHeiGenCache::GenHeightMap(int a_ChunkX, int a_ChunkZ, cChunkDef::HeightMap
HEIGHTTYPE cHeiGenCache::GetHeightAt(int a_BlockX, int a_BlockZ)
{
// First try if the chunk is already in the cache:
int chunkX, chunkZ;
cChunkDef::BlockToChunk(a_BlockX, a_BlockZ, chunkX, chunkZ);
HEIGHTTYPE res;
if (GetHeightAt(chunkX, chunkZ, a_BlockX - chunkX * cChunkDef::Width, a_BlockZ - chunkZ * cChunkDef::Width, res))
{
return res;
}
// Chunk not in cache, generate the chunk and ask again:
cChunkDef::HeightMap heightMap;
GenHeightMap(chunkX, chunkZ, heightMap);
return cChunkDef::GetHeight(heightMap, a_BlockX - chunkX * cChunkDef::Width, a_BlockZ - chunkZ * cChunkDef::Width);
}
bool cHeiGenCache::GetHeightAt(int a_ChunkX, int a_ChunkZ, int a_RelX, int a_RelZ, HEIGHTTYPE & a_Height)
{
for (size_t i = 0; i < m_CacheSize; i++)
@@ -240,6 +261,27 @@ void cHeiGenMultiCache::GenHeightMap(int a_ChunkX, int a_ChunkZ, cChunkDef::Heig
HEIGHTTYPE cHeiGenMultiCache::GetHeightAt(int a_BlockX, int a_BlockZ)
{
// First try if the chunk is already in the cache:
int chunkX, chunkZ;
cChunkDef::BlockToChunk(a_BlockX, a_BlockZ, chunkX, chunkZ);
HEIGHTTYPE res;
if (GetHeightAt(chunkX, chunkZ, a_BlockX - chunkX * cChunkDef::Width, a_BlockZ - chunkZ * cChunkDef::Width, res))
{
return res;
}
// Chunk not in cache, generate the chunk and ask again:
cChunkDef::HeightMap heightMap;
GenHeightMap(chunkX, chunkZ, heightMap);
return cChunkDef::GetHeight(heightMap, a_BlockX - chunkX * cChunkDef::Width, a_BlockZ - chunkZ * cChunkDef::Width);
}
bool cHeiGenMultiCache::GetHeightAt(int a_ChunkX, int a_ChunkZ, int a_RelX, int a_RelZ, HEIGHTTYPE & a_Height)
{
// Get the subcache responsible for this chunk: