#ifndef CREATURELIB_SPECIESLIBRARY_HPP #define CREATURELIB_SPECIESLIBRARY_HPP #include #include #include "CreatureData/CreatureSpecies.hpp" namespace CreatureLib::Library { class SpeciesLibrary { private: std::unordered_map _species; public: SpeciesLibrary() = default; ~SpeciesLibrary(){ for (auto s: _species) delete s.second; _species.clear(); } [[nodiscard]] const CreatureSpecies* GetSpecies(const std::string& name) const; [[nodiscard]] const CreatureSpecies* operator[] (const std::string& name) const; void LoadSpecies(const std::string& name, const CreatureSpecies* species); void DeleteSpecies(const std::string& name); }; } #endif //CREATURELIB_SPECIESLIBRARY_HPP