ba2f0c6229
git-svn-id: http://mc-server.googlecode.com/svn/trunk@506 0a769ca7-a7f5-676a-18bf-c427514a06d6
87 lines
1.4 KiB
C++
87 lines
1.4 KiB
C++
|
|
// BioGen.h
|
|
|
|
/*
|
|
Interfaces to the various biome generators:
|
|
- cBioGenConstant
|
|
- cBioGenCheckerboard
|
|
- cBioGenDistortedVoronoi
|
|
*/
|
|
|
|
|
|
|
|
|
|
|
|
#pragma once
|
|
|
|
#include "cChunkGenerator.h"
|
|
|
|
|
|
|
|
|
|
|
|
class cBioGenConstant :
|
|
public cBiomeGen
|
|
{
|
|
public:
|
|
cBioGenConstant(EMCSBiome a_Biome) : m_Biome(a_Biome) {}
|
|
|
|
protected:
|
|
|
|
EMCSBiome m_Biome;
|
|
|
|
// cBiomeGen override:
|
|
virtual void GenBiomes(int a_ChunkX, int a_ChunkZ, cChunkDef::BiomeMap & a_BiomeMap) override;
|
|
} ;
|
|
|
|
|
|
|
|
|
|
|
|
class cBioGenDistortedVoronoi :
|
|
public cBiomeGen
|
|
{
|
|
public:
|
|
cBioGenDistortedVoronoi(int a_Seed) : m_Seed(a_Seed) {}
|
|
|
|
protected:
|
|
|
|
int m_Seed;
|
|
|
|
// cBiomeGen override:
|
|
virtual void GenBiomes(int a_ChunkX, int a_ChunkZ, cChunkDef::BiomeMap & a_BiomeMap) override;
|
|
} ;
|
|
|
|
|
|
|
|
|
|
|
|
class cBioGenCheckerboard :
|
|
public cBiomeGen
|
|
{
|
|
public:
|
|
cBioGenCheckerboard(int a_BiomeSize, const AString & 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;
|
|
} ;
|
|
|
|
|
|
|
|
|