WorldGenerator.h 576 B

123456789101112131415161718192021222324252627
  1. #pragma once
  2. #include <Thread.h>
  3. #include <Critical.h>
  4. #include "DimensionGenerator.h"
  5. #include "Area.h"
  6. class Game;
  7. class WorldGenerator : public Framework::Thread
  8. {
  9. private:
  10. Framework::Critical cs;
  11. Framework::Array<Area> requestQueue;
  12. Game* zGame;
  13. bool exit;
  14. int seed;
  15. public:
  16. WorldGenerator( int seed, Game* zGame );
  17. ~WorldGenerator();
  18. void thread() override;
  19. void requestGeneration( Area request );
  20. void exitAndWait();
  21. Framework::Either<Block*, int> generateSingleBlock( Framework::Vec3<int> location, int dimensionId );
  22. };