#pragma once #include #include #include "GenerationTemplate.h" class Block; class Noise; class BiomGenerator : public virtual Framework::ReferenceCounter { private: Framework::RCArray templates; protected: void addTemplateGenerator( GenerationTemplate* gTemplate ); public: BiomGenerator(); virtual Framework::Either generateSurfaceBlock( int x, int y, int z ) = 0; virtual Framework::Either generateBelowSurfaceBlock( int x, int y, int z ) = 0; virtual Noise* zHeightMapNoise( int seed ) = 0; const Framework::RCArray& getTemplates(); };