56 lines
1.3 KiB
C++
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
|