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