shadow-over-bishkek001/src/items/Item.h
2026-05-27 17:30:41 +03:00

37 lines
887 B
C++

#pragma once
#include <string>
#include <memory>
#include <vector>
#include <functional>
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<Item> items;
public:
void addItem(const Item& item);
void removeItem(const std::string& itemId);
const std::vector<Item>& 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<void(const std::string&)> onItemAdded;
};
} // namespace ZL