#pragma once #include #include #include "typedefs.hpp" #include "voxel.hpp" #define GLM_ENABLE_EXPERIMENTAL #include class Chunk; class Level; class ChunksStorage { Level* level; std::unordered_map> chunksMap; public: ChunksStorage(Level* level); ~ChunksStorage() = default; std::shared_ptr get(int x, int z) const; void store(const std::shared_ptr& chunk); void remove(int x, int y); std::shared_ptr create(int x, int z); };