#ifndef HOLESOME_COLLECTABLES_COLLECTION_HPP #define HOLESOME_COLLECTABLES_COLLECTION_HPP #include #include #include "collectables_depth_collection.hpp" /** * @brief Collection of all collections for each depth. */ class CollectablesCollection : public GameObject { public: static std::shared_ptr getInstance(); void createEmpty(int maxDepth); void update() override; void draw(sf::RenderWindow *window) override; void add(const std::shared_ptr& collectable); void remove(int collectableId); private: static inline std::shared_ptr singletonInstance = nullptr; std::map> depthCollections = {}; bool isValidDepth(int desiredDepth) const; }; #endif //HOLESOME_COLLECTABLES_COLLECTION_HPP