#ifndef NOISECOLLECTION_H # define NOISECOLLECTION_H #include #include #include #include class NoiseCollection { public: inline NoiseCollection(const std::uint32_t seed) { m_collection.emplace("terrain", std::make_unique(seed)); m_collection.emplace("caves", std::make_unique(seed)); // TODO !!!!!! } Noise* GetNoise(const std::string& key) const; inline void AddNoise(std::string key, std::unique_ptr noise) { m_collection.emplace(std::move(key), std::move(noise)); } [[nodiscard]] inline std::array GetBlocks(Scop::Vec2i pos) const { return m_collection.at("terrain")->GetHeight(pos); } ~NoiseCollection() = default; private: std::unordered_map> m_collection; }; #endif