#ifndef CREATURELIB_DATALIBRARY_HPP #define CREATURELIB_DATALIBRARY_HPP #include "SpeciesLibrary.hpp" #include "AttackLibrary.hpp" #include "ItemLibrary.hpp" #include "GrowthRates/GrowthRateLibrary.hpp" #include "LibrarySettings.hpp" namespace CreatureLib::Library { /*! \brief The core library. This library holds all static data for a creature set. */ class DataLibrary { private: const LibrarySettings _settings; const SpeciesLibrary* _species; const AttackLibrary* _attacks; const ItemLibrary* _items; const GrowthRateLibrary* _growthRates; public: DataLibrary(LibrarySettings settings, CreatureLib::Library::SpeciesLibrary *species, CreatureLib::Library::AttackLibrary *attacks, CreatureLib::Library::ItemLibrary *items, CreatureLib::Library::GrowthRateLibrary *growthRates ); ~DataLibrary(){ delete _species; delete _attacks; delete _items; delete _growthRates; } [[nodiscard]] const LibrarySettings& GetSettings() const; [[nodiscard]] const SpeciesLibrary* GetSpeciesLibrary() const; [[nodiscard]] const AttackLibrary* GetAttackLibrary() const; [[nodiscard]] const ItemLibrary* GetItemLibrary() const; [[nodiscard]] const GrowthRateLibrary* GetGrowthRates() const; }; } #endif //CREATURELIB_DATALIBRARY_HPP