#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(); };