#pragma once #include #include "DimensionGenerator.h" class Game; struct GenerationRequest { int startX; int startY; int endX; int endY; int dimensionId; }; class WorldGenerator : public Framework::Thread { private: CriticalSection cs; Framework::Array requestQueue; Game *zGame; Noise *noise; bool exit; public: WorldGenerator( int seed, Game *zGame ); ~WorldGenerator(); void thread() override; void requestGeneration( GenerationRequest request ); void exitAndWait(); };