X-Git-Url: http://git.localhorst.tv/?a=blobdiff_plain;f=src%2Fworld.hpp;h=ccd743dd4f1321955410ef1e055f5354140bdb16;hb=b4995967309bf5570161db2287e27b84ca94ab9a;hp=6b6aaf09c9d260492a3125313a0f32eac2112314;hpb=addf4eb6485a36d40096d87196ed786e6e16ab6d;p=blank.git diff --git a/src/world.hpp b/src/world.hpp index 6b6aaf0..ccd743d 100644 --- a/src/world.hpp +++ b/src/world.hpp @@ -4,11 +4,10 @@ #include "block.hpp" #include "chunk.hpp" #include "entity.hpp" -#include "noise.hpp" +#include "generator.hpp" #include "shader.hpp" #include "shape.hpp" -#include #include @@ -19,8 +18,6 @@ class World { public: World(); - void Generate(const glm::tvec3 &from, const glm::tvec3 &to); - bool Intersection( const Ray &, const glm::mat4 &M, @@ -30,37 +27,25 @@ public: glm::vec3 *normal = nullptr); BlockTypeRegistry &BlockTypes() { return blockType; } - std::list &LoadedChunks() { return loaded; } Entity &Player() { return player; } - Chunk *ChunkLoaded(const glm::tvec3 &); - Chunk *ChunkQueued(const glm::tvec3 &); - Chunk *ChunkAvailable(const glm::tvec3 &); - Chunk &Next(const Chunk &, const glm::vec3 &dir); + Chunk &Next(const Chunk &to, const glm::tvec3 &dir); void Update(int dt); - void CheckChunkGeneration(); void Render(DirectionalLighting &); -private: - void Generate(Chunk &); - private: BlockTypeRegistry blockType; CuboidShape blockShape; StairShape stairShape; CuboidShape slabShape; - SimplexNoise blockNoise; - SimplexNoise colorNoise; + Generator generate; + ChunkLoader chunks; Entity player; - glm::tvec3 player_chunk; - - std::list loaded; - std::list to_generate; };