37 lines
861 B
C++
37 lines
861 B
C++
#ifndef VOXELS_CHUNKSCONTROLLER_H_
|
|
#define VOXELS_CHUNKSCONTROLLER_H_
|
|
|
|
#include "../typedefs.h"
|
|
|
|
class Level;
|
|
class Chunks;
|
|
class Lighting;
|
|
class WorldFiles;
|
|
class VoxelRenderer;
|
|
class ChunksLoader;
|
|
class WorldGenerator;
|
|
|
|
/* ChunksController manages chunks dynamic loading/unloading */
|
|
class ChunksController {
|
|
private:
|
|
Level* level;
|
|
Chunks* chunks;
|
|
Lighting* lighting;
|
|
uint padding;
|
|
WorldGenerator* generator;
|
|
|
|
/* Average measured microseconds duration of loadVisible call */
|
|
int64_t avgDurationMcs = 1000;
|
|
|
|
/* Process one chunk: load it or calculate lights for it */
|
|
bool loadVisible();
|
|
public:
|
|
ChunksController(Level* level, Chunks* chunks, Lighting* lighting, uint padding);
|
|
~ChunksController();
|
|
|
|
/* @param maxDuration milliseconds reserved for chunks loading */
|
|
void update(int64_t maxDuration);
|
|
};
|
|
|
|
#endif /* VOXELS_CHUNKSCONTROLLER_H_ */
|