View
@@ -18,29 +18,23 @@ class Chunk
/** Returns true iff the chunk data is valid - loaded or generated. */
bool isValid(void) const { return m_IsValid; }
/** Returns the image of the chunk's biomes. Assumes that the chunk is valid. */
const uchar * getImage(void) const;
/** Sets the biomes to m_Biomes and renders them into m_Image. */
void setBiomes(const cChunkDef::BiomeMap & a_Biomes);
/** Returns the biome at the specified relative coords, or biInvalidBiome if not valid.
Coords must be valid inside this chunk. */
EMCSBiome getBiome(int a_RelX, int a_RelZ);
/** Returns the raw biome data for this chunk. */
const short * getBiomes(void) const { return m_Biomes; }
protected:
/** Flag that specifies if the chunk data is valid - loaded or generated. */
bool m_IsValid;
/** Cached rendered image of this chunk's biomes. Updated in render(). */
Image m_Image;
/** Biomes comprising the chunk, in the X + 16 * Z ordering. */
cChunkDef::BiomeMap m_Biomes;
/** Renders biomes from m_Biomes into m_Image. */
void renderBiomes();
/** Biomes comprising the chunk, in the X + 16 * Z ordering.
Typed as short to save on memory, converted automatically when needed. */
short m_Biomes[16 * 16];
};
typedef std::shared_ptr<Chunk> ChunkPtr;
View
@@ -30,6 +30,8 @@ class Region
static void chunkToRegion(int a_ChunkX, int a_ChunkZ, int & a_RegionX, int & a_RegionZ);
protected:
friend class RegionLoader;
Chunk m_Chunks[32 * 32];
View
@@ -29,6 +29,8 @@ void RegionLoader::run()
m_ChunkSource->getChunkBiomes(m_RegionX * 32 + x, m_RegionZ * 32 + z, m_Region->getRelChunk(x, z));
}
}
m_Region->m_IsValid = true;
emit loaded(m_RegionX, m_RegionZ);
}