X-Git-Url: http://git.localhorst.tv/?a=blobdiff_plain;ds=sidebyside;f=src%2Fworld.hpp;h=bca1e0c082e190aadfe147abd2efcd7b852b69d5;hb=bd6bd2c875f4b6baef913e5315aa9f7e7cd7da7a;hp=4823c47b0c8c0ec804f62f10c5d83f4e5c2dbd04;hpb=8acc3f990f1a5ee00471f72c150b407164149f2d;p=blank.git diff --git a/src/world.hpp b/src/world.hpp index 4823c47..bca1e0c 100644 --- a/src/world.hpp +++ b/src/world.hpp @@ -17,9 +17,7 @@ namespace blank { class World { public: - World(); - - void Generate(const Chunk::Pos &from, const Chunk::Pos &to); + explicit World(unsigned int seed); bool Intersection( const Ray &, @@ -30,17 +28,14 @@ public: glm::vec3 *normal = nullptr); BlockTypeRegistry &BlockTypes() { return blockType; } - std::list &LoadedChunks() { return loaded; } - Entity &Player() { return player; } + Entity &Player() { return *player; } + Entity &AddEntity() { entities.emplace_back(); return entities.back(); } - Chunk *ChunkLoaded(const Chunk::Pos &); - Chunk *ChunkQueued(const Chunk::Pos &); - Chunk *ChunkAvailable(const Chunk::Pos &); - Chunk &Next(const Chunk &, const glm::tvec3 &dir); + Chunk &PlayerChunk(); + Chunk &Next(const Chunk &to, const glm::tvec3 &dir); void Update(int dt); - void CheckChunkGeneration(); void Render(DirectionalLighting &); @@ -51,13 +46,10 @@ private: CuboidShape slabShape; Generator generate; + ChunkLoader chunks; - Entity player; - Chunk::Pos player_chunk; - - std::list loaded; - std::list to_generate; - std::list to_free; + Entity *player; + std::list entities; };