WorldGenerator.h 568 B

123456789101112131415161718192021222324252627282930313233
  1. #pragma once
  2. #include <Thread.h>
  3. #include "DimensionGenerator.h"
  4. class Game;
  5. struct GenerationRequest
  6. {
  7. int startX;
  8. int startY;
  9. int endX;
  10. int endY;
  11. int dimensionId;
  12. };
  13. class WorldGenerator : public Framework::Thread
  14. {
  15. private:
  16. CriticalSection cs;
  17. Framework::Array<GenerationRequest> requestQueue;
  18. Game *zGame;
  19. Noise *noise;
  20. bool exit;
  21. public:
  22. WorldGenerator( int seed, Game *zGame );
  23. ~WorldGenerator();
  24. void thread() override;
  25. void requestGeneration( GenerationRequest request );
  26. void exitAndWait();
  27. };