#pragma once #include #include #include #include #include "ContentPack.hpp" class Content; class PacksManager; class EnginePaths; class Input; namespace io { class path; } class ContentControl { public: ContentControl( EnginePaths& paths, Input& input, std::function postContent ); ~ContentControl(); Content* get(); const Content* get() const; std::vector& getBasePacks(); /// @brief Reset content to base packs list void resetContent(); void loadContent(const std::vector& names); void loadContent(); std::vector& getContentPacks(); std::vector getAllContentPacks(); PacksManager& scan(); private: EnginePaths& paths; Input& input; std::unique_ptr content; std::function postContent; std::vector basePacks; std::unique_ptr manager; std::vector contentPacks; };