#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(const std::shared_ptr& collectable); std::shared_ptr getDepthCollection(int depth); private: static inline std::shared_ptr singletonInstance = nullptr; std::map> depthCollections = {}; void updateCollectables(); }; #endif //HOLESOME_COLLECTABLES_COLLECTION_HPP