2017-12-25 23:49:48 +00:00
|
|
|
#ifndef INVENTORY_HPP_INCLUDED
|
|
|
|
#define INVENTORY_HPP_INCLUDED
|
|
|
|
|
|
|
|
#include "../../../Core/Types/Box.hpp"
|
|
|
|
#include "../../../Core/Types/Convex.hpp"
|
2018-06-28 02:22:43 +00:00
|
|
|
#include "../../../Game/Interactable/Item.hpp"
|
|
|
|
#include <functional>
|
2017-12-25 23:49:48 +00:00
|
|
|
#include <vector>
|
|
|
|
#include <cstdint>
|
|
|
|
#include <string>
|
|
|
|
|
2018-12-27 18:17:09 +00:00
|
|
|
namespace Inventory
|
2017-12-25 23:49:48 +00:00
|
|
|
{
|
2018-12-27 18:17:09 +00:00
|
|
|
bool IsOpen();
|
2022-01-20 10:52:11 +00:00
|
|
|
bool Open(bool UseHotkey = true);
|
2019-05-28 16:34:51 +00:00
|
|
|
std::int32_t GetTabHotkey();
|
2018-12-27 18:17:09 +00:00
|
|
|
|
|
|
|
std::vector<std::int32_t> GetItemIDs();
|
|
|
|
std::vector<std::string> GetItemNames();
|
|
|
|
std::vector<std::int32_t> GetItemAmounts();
|
|
|
|
|
|
|
|
std::vector<Interactable::Item> GetItems();
|
|
|
|
std::vector<Interactable::Item> GetItems(std::int32_t ID);
|
2023-03-09 17:15:48 +00:00
|
|
|
std::vector<Interactable::Item> GetItems(const std::regex& Name);
|
2018-12-27 18:17:09 +00:00
|
|
|
std::vector<Interactable::Item> GetItems(const std::string& Name);
|
|
|
|
std::vector<Interactable::Item> GetItems(const std::vector<std::int32_t>& IDs);
|
|
|
|
std::vector<Interactable::Item> GetItems(const std::vector<std::string>& Names);
|
|
|
|
std::vector<Interactable::Item> GetItems(const std::function<bool (const Interactable::Item&)>& Filter);
|
|
|
|
|
|
|
|
Interactable::Item GetItem(std::int32_t ID);
|
2023-03-09 17:15:48 +00:00
|
|
|
Interactable::Item GetItem(const std::regex& Name);
|
2018-12-27 18:17:09 +00:00
|
|
|
Interactable::Item GetItem(const std::string& Name);
|
|
|
|
Interactable::Item GetItem(const std::vector<std::int32_t>& IDs);
|
|
|
|
Interactable::Item GetItem(const std::vector<std::string>& Names);
|
|
|
|
Interactable::Item GetItem(const std::function<bool (const Interactable::Item&)>& Filter);
|
|
|
|
|
|
|
|
bool IsEmpty();
|
|
|
|
bool IsFull();
|
|
|
|
|
2022-04-20 23:47:57 +00:00
|
|
|
std::int32_t GetItemSelectedIndex();
|
|
|
|
|
2018-12-27 18:17:09 +00:00
|
|
|
bool IsItemSelected();
|
|
|
|
bool IsItemSelected(std::int32_t ID);
|
2023-03-09 17:15:48 +00:00
|
|
|
bool IsItemSelected(const std::regex& Name);
|
2018-12-27 18:17:09 +00:00
|
|
|
bool IsItemSelected(const std::string& Name);
|
|
|
|
bool IsItemSelected(const Interactable::Item& Item);
|
|
|
|
|
|
|
|
std::string GetItemSelectedName();
|
|
|
|
|
|
|
|
std::int32_t Count(std::int32_t ID);
|
2023-03-09 17:15:48 +00:00
|
|
|
std::int32_t Count(const std::regex& Name);
|
2018-12-27 18:17:09 +00:00
|
|
|
std::int32_t Count(const std::string& Name);
|
|
|
|
std::int32_t Count(const Interactable::Item& Item);
|
|
|
|
std::int32_t Count(const std::vector<std::int32_t>& IDs);
|
|
|
|
std::int32_t Count(const std::vector<std::string>& Names);
|
|
|
|
std::int32_t Count(const std::vector<Interactable::Item>& Items);
|
|
|
|
|
|
|
|
std::int32_t CountOccupied();
|
|
|
|
std::int32_t CountEmpty();
|
|
|
|
|
|
|
|
std::int32_t GetIndexOf(std::int32_t ID);
|
2023-03-09 17:15:48 +00:00
|
|
|
std::int32_t GetIndexOf(const std::regex& Name);
|
2018-12-27 18:17:09 +00:00
|
|
|
std::int32_t GetIndexOf(const std::string& Name);
|
|
|
|
std::int32_t GetIndexOf(const std::vector<std::int32_t>& IDs); // Returns first found ID index
|
|
|
|
std::int32_t GetIndexOf(const std::vector<std::string>& Names); // Returns first found Name Index
|
|
|
|
|
|
|
|
std::vector<std::int32_t> GetIndicesOf(std::int32_t ID);
|
2023-03-09 17:15:48 +00:00
|
|
|
std::vector<std::int32_t> GetIndicesOf(const std::regex& Name);
|
2018-12-27 18:17:09 +00:00
|
|
|
std::vector<std::int32_t> GetIndicesOf(const std::string& Name);
|
|
|
|
std::vector<std::int32_t> GetIndicesOf(const std::vector<std::int32_t>& IDs);
|
|
|
|
std::vector<std::int32_t> GetIndicesOf(const std::vector<std::string>& Names);
|
|
|
|
|
|
|
|
std::vector<Box> GetSlotBoxes();
|
|
|
|
std::vector<Box> GetBoxesOf(std::int32_t ID);
|
2023-03-09 17:15:48 +00:00
|
|
|
std::vector<Box> GetBoxesOf(const std::regex& Name);
|
2018-12-27 18:17:09 +00:00
|
|
|
std::vector<Box> GetBoxesOf(const std::string& Name);
|
|
|
|
|
|
|
|
bool Contains(std::int32_t ID);
|
2023-03-09 17:15:48 +00:00
|
|
|
bool Contains(const std::regex& Name);
|
2018-12-27 18:17:09 +00:00
|
|
|
bool Contains(const std::string& Name);
|
|
|
|
bool Contains(const Interactable::Item& Item);
|
|
|
|
bool Contains(const std::vector<std::int32_t>& IDs); // true if all items are found at least once
|
|
|
|
bool Contains(const std::vector<std::string>& Names); // true if all items are found at least once
|
|
|
|
bool Contains(const std::vector<Interactable::Item>& Items);
|
|
|
|
|
|
|
|
bool ContainsAny(const std::vector<std::int32_t>& IDs);
|
|
|
|
bool ContainsAny(const std::vector<std::string>& Names);
|
|
|
|
bool ContainsAny(const std::vector<Interactable::Item>& Items);
|
|
|
|
|
|
|
|
bool ContainsOnly(std::int32_t ID);
|
2023-03-09 17:15:48 +00:00
|
|
|
bool ContainsOnly(const std::regex& Name);
|
2018-12-27 18:17:09 +00:00
|
|
|
bool ContainsOnly(const std::string& Name);
|
|
|
|
bool ContainsOnly(const Interactable::Item& Item);
|
|
|
|
bool ContainsOnly(const std::vector<std::int32_t>& IDs);
|
|
|
|
bool ContainsOnly(const std::vector<std::string>& Names);
|
|
|
|
bool ContainsOnly(const std::vector<Interactable::Item>& Items);
|
|
|
|
|
|
|
|
bool Use(std::int32_t ID, std::int32_t ID2 = -1, bool UseSecondFirst = false);
|
|
|
|
bool Use(const std::string& Name, const std::string& Name2 = "", bool UseSecondFirst = false);
|
|
|
|
bool Use(const Interactable::Item& Item, const Interactable::Item& Item2 = Interactable::Item(), bool UseSecondFirst = false);
|
|
|
|
|
|
|
|
bool Equip(std::int32_t ID);
|
2023-03-09 17:15:48 +00:00
|
|
|
bool Equip(const std::regex& Name);
|
2018-12-27 18:17:09 +00:00
|
|
|
bool Equip(const std::string& Name);
|
|
|
|
bool Equip(const Interactable::Item& Item);
|
|
|
|
|
|
|
|
bool Drop(std::int32_t ID, bool AllowShiftClick = true);
|
2023-03-09 17:15:48 +00:00
|
|
|
bool Drop(const std::regex& Name, bool AllowShiftClick = true);
|
2018-12-27 18:17:09 +00:00
|
|
|
bool Drop(const std::string& Name, bool AllowShiftClick = true);
|
|
|
|
bool Drop(const Interactable::Item& Item, bool AllowShiftClick = true);
|
2018-12-31 21:52:58 +00:00
|
|
|
}
|
2017-12-25 23:49:48 +00:00
|
|
|
|
|
|
|
#endif // INVENTORY_HPP_INCLUDED
|