#pragma once #include <Thread.h> #include "DimensionGenerator.h" #include "Area.h" class Game; class WorldGenerator : public Framework::Thread { private: CriticalSection cs; Framework::Array<Area> requestQueue; Game* zGame; Noise* noise; bool exit; public: WorldGenerator( int seed, Game* zGame ); ~WorldGenerator(); void thread() override; void requestGeneration( Area request ); void exitAndWait(); Framework::Either<Block*, int> generateSingleBlock( Framework::Vec3<int> location, int dimensionId ); };