#include "block.hpp"
#include "chunk.hpp"
-#include "controller.hpp"
+#include "entity.hpp"
#include "noise.hpp"
#include "shader.hpp"
#include "shape.hpp"
public:
World();
- void Generate(const glm::tvec3<int> &from, const glm::tvec3<int> &to);
+ void Generate(const Chunk::Pos &from, const Chunk::Pos &to);
bool Intersection(
const Ray &,
BlockTypeRegistry &BlockTypes() { return blockType; }
std::list<Chunk> &LoadedChunks() { return loaded; }
- FPSController &Controller() { return player; }
+ Entity &Player() { return player; }
- Chunk &Next(const Chunk &, const glm::vec3 &dir);
+ Chunk *ChunkLoaded(const Chunk::Pos &);
+ Chunk *ChunkQueued(const Chunk::Pos &);
+ Chunk *ChunkAvailable(const Chunk::Pos &);
+ Chunk &Next(const Chunk &, const glm::tvec3<int> &dir);
void Update(int dt);
+ void CheckChunkGeneration();
void Render(DirectionalLighting &);
SimplexNoise blockNoise;
SimplexNoise colorNoise;
- FPSController player;
+ Entity player;
+ Chunk::Pos player_chunk;
std::list<Chunk> loaded;
std::list<Chunk> to_generate;
+ std::list<Chunk> to_free;
};