12345678910111213141516171819202122232425262728293031323334353637383940 |
- #pragma once
- #include <Either.h>
- #include <ReferenceCounter.h>
- #include "GenerationTemplate.h"
- class Block;
- class Noise;
- class BiomGenerator : public virtual Framework::ReferenceCounter
- {
- private:
- Framework::RCArray<GenerationTemplate> templates;
- protected:
- int seed;
- void addTemplateGenerator(GenerationTemplate* gTemplate);
- public:
- BiomGenerator();
- virtual Framework::Either<Block*, int> generateAboveSurfaceBlock(
- int x, int y, int z, int surfaceHeight, Chunk* partialGeneratedChunk)
- = 0;
- virtual Framework::Either<Block*, int> generateSurfaceBlock(
- int x, int y, int z)
- = 0;
- virtual Framework::Either<Block*, int> generateBelowSurfaceBlock(
- int x, int y, int z)
- = 0;
- virtual Framework::Either<Block*, int> generateCaveBlock(
- int x, int y, int z)
- = 0;
- virtual Framework::Either<Block*, int> generateUnderWaterBlock(
- int x, int y, int z, int surfaceHeight, Chunk* partialGeneratedChunk)
- = 0;
- virtual void setSeed(int seed);
- virtual Noise* zHeightMapNoise() = 0;
- const Framework::RCArray<GenerationTemplate>& getTemplates();
- };
|