#pragma once #include #include #include "BiomGenerator.h" #include "BiomInterpolator.h" #include "Chunk.h" class DimensionGenerator : public virtual Framework::ReferenceCounter { private: BiomInterpolator *interpolator; Framework::RCArray biomGenerators; const int dimensionId; void findBiom( int x, int y, Noise *zNoise, BiomGenerator **firstChoice, BiomGenerator **secondChoice, double &firstChoiceWeight, double &secondChoiceWeight ); protected: DimensionGenerator( BiomInterpolator *interpolator, int dimensionId ); ~DimensionGenerator(); void registerBiom( BiomGenerator *generator ); public: Chunk *generateChunk( Noise *zNoise, Game *zGame, int centerX, int centerY ); int getDimensionId() const; };