#pragma once #include #include #include #include namespace ZL { struct Item { std::string id; std::string name; std::string description; std::string icon; Item() = default; Item(const std::string& _id, const std::string& _name, const std::string& _desc, const std::string& _icon) : id(_id), name(_name), description(_desc), icon(_icon) { } }; class Inventory { private: std::vector items; public: void addItem(const Item& item); void removeItem(const std::string& itemId); const std::vector& getItems() const { return items; } bool hasItem(const std::string& itemId) const; void clear() { items.clear(); } size_t getCount() const { return items.size(); } // Called whenever an item is added; receives the item id. std::function onItemAdded; }; } // namespace ZL