1234567891011121314151617181920212223242526272829 |
- #pragma once
- #include <Array.h>
- #include <ReferenceCounter.h>
- #include <Either.h>
- #include "BiomGenerator.h"
- #include "BiomInterpolator.h"
- #include "Chunk.h"
- class DimensionGenerator : public virtual Framework::ReferenceCounter
- {
- private:
- BiomInterpolator* interpolator;
- Framework::RCArray<BiomGenerator> biomGenerators;
- const int dimensionId;
- void findBiom( int x, int y, Noise* zNoise, BiomGenerator** firstChoice, BiomGenerator** secondChoice, double& firstChoiceWeight, double& secondChoiceWeight );
- protected:
- DimensionGenerator( BiomInterpolator* interpolator, int dimensionId );
- ~DimensionGenerator();
- void registerBiom( BiomGenerator* generator );
- public:
- Chunk* generateChunk( Noise* zNoise, Game* zGame, int centerX, int centerY );
- Framework::Either<Block*, int> generateBlock( Noise* zNoise, Game* zGame, Framework::Vec3<int> location );
- int getDimensionId() const;
- };
|