1
0

Restructured biome generators with a list of available biomes to use a common ancestor (preparation for Voronoi and DistortedVoronoi)

git-svn-id: http://mc-server.googlecode.com/svn/trunk@508 0a769ca7-a7f5-676a-18bf-c427514a06d6
This commit is contained in:
madmaxoft@gmail.com 2012-05-27 11:07:23 +00:00
parent 925f45a4fa
commit d02df740ef
2 changed files with 30 additions and 11 deletions

View File

@ -43,9 +43,9 @@ void cBioGenDistortedVoronoi::GenBiomes(int a_ChunkX, int a_ChunkZ, cChunkDef::B
///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
// cBioGenCheckerboard:
// cBiomeGenList:
void cBioGenCheckerboard::InitializeBiomes(const AString & a_Biomes)
void cBiomeGenList::InitializeBiomes(const AString & a_Biomes)
{
AStringVector Split = StringSplit(a_Biomes, ",");
@ -101,6 +101,9 @@ void cBioGenCheckerboard::InitializeBiomes(const AString & a_Biomes)
///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
// cBioGenCheckerboard:
void cBioGenCheckerboard::GenBiomes(int a_ChunkX, int a_ChunkZ, cChunkDef::BiomeMap & a_BiomeMap)
{
for (int z = 0; z < cChunkDef::Width; z++)

View File

@ -56,27 +56,43 @@ protected:
class cBioGenCheckerboard :
/// Base class for generators that use a list of available biomes. This class takes care of the list.
class cBiomeGenList :
public cBiomeGen
{
protected:
cBiomeGenList(const AString & a_Biomes)
{
InitializeBiomes(a_Biomes);
}
// List of biomes that the generator is allowed to generate:
typedef std::vector<EMCSBiome> EMCSBiomes;
EMCSBiomes m_Biomes;
int m_BiomesCount; // Pulled out of m_Biomes for faster access
void InitializeBiomes(const AString & a_Biomes);
} ;
class cBioGenCheckerboard :
public cBiomeGenList
{
public:
cBioGenCheckerboard(int a_BiomeSize, const AString & a_Biomes) :
cBiomeGenList(a_Biomes),
m_BiomeSize((a_BiomeSize < 8) ? 8 : a_BiomeSize)
{
InitializeBiomes(a_Biomes);
}
protected:
int m_BiomeSize;
// List of biomes that the generator is allowed to generate:
typedef std::vector<EMCSBiome> EMCSBiomes;
EMCSBiomes m_Biomes;
int m_BiomesCount;
void InitializeBiomes(const AString & a_Biomes);
// cBiomeGen override:
virtual void GenBiomes(int a_ChunkX, int a_ChunkZ, cChunkDef::BiomeMap & a_BiomeMap) override;
} ;