DimensionGenerator.h 794 B

123456789101112131415161718192021222324252627
  1. #pragma once
  2. #include <Array.h>
  3. #include <ReferenceCounter.h>
  4. #include "BiomGenerator.h"
  5. #include "BiomInterpolator.h"
  6. #include "Chunk.h"
  7. class DimensionGenerator : public virtual Framework::ReferenceCounter
  8. {
  9. private:
  10. BiomInterpolator *interpolator;
  11. Framework::RCArray<BiomGenerator> biomGenerators;
  12. const int dimensionId;
  13. void findBiom( int x, int y, Noise *zNoise, BiomGenerator **firstChoice, BiomGenerator **secondChoice, double &firstChoiceWeight, double &secondChoiceWeight );
  14. protected:
  15. DimensionGenerator( BiomInterpolator *interpolator, int dimensionId );
  16. ~DimensionGenerator();
  17. void registerBiom( BiomGenerator *generator );
  18. public:
  19. Chunk *generateChunk( Noise *zNoise, Game *zGame, int centerX, int centerY );
  20. int getDimensionId() const;
  21. };