2D_Engine/ECS/InventoryComponent.hpp

56 lines
1.3 KiB
C++

/********************\
| Copyright 2024, |
| Ulysse Cura |
\********************/
//////////////////////////////////////////////////////////////////
// //
// Composant d'inventaire, sert pour les coffre, PNJ, ou MOB. //
// //
//////////////////////////////////////////////////////////////////
#ifndef INVENTORY_HPP
#define INVENTORY_HPP
#include <memory>
#include <vector>
#include "ECS.hpp"
#include "../IP/IP.hpp"
using std::vector, std::unique_ptr, std::move;
class InventoryComponent : public Component {
public:
InventoryComponent() = default;
InventoryComponent(vector<unique_ptr<Item>> items) : m_items(move(items))
{}
Item &addItem()
{
Item *i = new Item();
unique_ptr<Item> uPtr{i};
m_items.emplace_back(move(uPtr));
return *i;
}
std::size_t getNumberOfItem()
{
return m_items.size();
}
void erase(std::size_t index)
{
if (index < m_items.size())
{
m_items.erase(m_items.begin() + index);
}
}
vector<unique_ptr<Item>> &getItems() { return m_items; }
private:
vector<unique_ptr<Item>> m_items;
};
#endif