BiomGenerator.h 726 B

1234567891011121314151617181920212223242526
  1. #pragma once
  2. #include <ReferenceCounter.h>
  3. #include <Either.h>
  4. #include "GenerationTemplate.h"
  5. class Block;
  6. class Noise;
  7. class BiomGenerator : public virtual Framework::ReferenceCounter
  8. {
  9. private:
  10. Framework::RCArray<GenerationTemplate> templates;
  11. protected:
  12. void addTemplateGenerator(GenerationTemplate* gTemplate);
  13. public:
  14. BiomGenerator();
  15. virtual Framework::Either<Block*, int> generateSurfaceBlock(int x, int y, int z) = 0;
  16. virtual Framework::Either<Block*, int> generateBelowSurfaceBlock(int x, int y, int z) = 0;
  17. virtual Framework::Either<Block*, int> generateCaveBlock(int x, int y, int z) = 0;
  18. virtual Noise* zHeightMapNoise(int seed) = 0;
  19. const Framework::RCArray<GenerationTemplate>& getTemplates();
  20. };