AlpacaLibrary/Include/Game/Interfaces/GameTabs/Inventory.hpp

99 lines
4.2 KiB
C++

#ifndef INVENTORY_HPP_INCLUDED
#define INVENTORY_HPP_INCLUDED
#include "../../../Core/Types/Box.hpp"
#include "../../../Core/Types/Convex.hpp"
#include <vector>
#include <cstdint>
#include <string>
/** @addtogroup GameTabs
* @{ */
class Inventory
{
public:
static bool IsOpen();
static bool Open();
static std::vector<std::int32_t> GetItemIDs();
static std::vector<std::string> GetItemNames();
static std::vector<std::int32_t> GetItemAmounts();
static std::int32_t GetItemAmount(std::int32_t ID);
static std::int32_t GetItemAmount(const std::string& Name);
static bool IsEmpty();
static bool IsFull();
static bool IsItemSelected();
static bool IsItemSelected(std::int32_t ID);
static bool IsItemSelected(const std::string& Name);
static std::string GetItemSelectedName();
static std::int32_t Count(std::int32_t ID);
static std::int32_t Count(const std::string& Name);
static std::int32_t Count(const std::vector<std::int32_t>& IDs);
static std::int32_t Count(const std::vector<std::string>& Names);
static std::int32_t CountOccupied();
static std::int32_t CountEmpty();
static std::int32_t GetIndexOf(std::int32_t ID);
static std::int32_t GetIndexOf(const std::string& Name);
static std::int32_t GetIndexOf(const std::vector<std::int32_t>& IDs); // Returns first found ID index
static std::int32_t GetIndexOf(const std::vector<std::string>& Names); // Returns first found Name Index
static std::vector<std::int32_t> GetIndicesOf(std::int32_t ID);
static std::vector<std::int32_t> GetIndicesOf(const std::string& Name);
static Convex GetConvexOf(std::int32_t SlotIndex);
static Box GetBoxOf(std::int32_t ID);
static Box GetBoxOf(const std::string& Name);
static Box GetBoxOf(const std::vector<std::int32_t>& IDs); // Returns first found ID box
static Box GetBoxOf(const std::vector<std::string>& Names); // Returns first found Name box
static std::vector<Box> GetSlotBoxes();
static std::vector<Box> GetBoxesOf(std::int32_t ID);
static std::vector<Box> GetBoxesOf(const std::string& Name);
static bool Contains(std::int32_t ID);
static bool Contains(const std::string& Name);
static bool Contains(const std::vector<std::int32_t>& IDs); // true if all items are found at least once
static bool Contains(const std::vector<std::string>& Names); // true if all items are found at least once
static bool ContainsAny(const std::vector<std::int32_t>& IDs);
static bool ContainsAny(const std::vector<std::string>& Names);
static bool ContainsOnly(std::int32_t ID);
static bool ContainsOnly(const std::string& Name);
static bool ContainsOnly(const std::vector<std::int32_t>& IDs);
static bool ContainsOnly(const std::vector<std::string>& Names);
static bool InteractItemByIndex(std::int32_t Index);
static bool InteractItemByIndex(std::int32_t Index, const std::string& Action);
static bool InteractItemByIndex(std::int32_t Index, const std::vector<std::string>& Actions);
static bool InteractItem(std::int32_t ID, const std::string& Action = "");
static bool InteractItem(const std::string& Name, const std::string& Action = "");
static bool InteractItem(const std::vector<std::int32_t>& IDs, const std::vector<std::string>& Actions); //Interacts with first found ID and Action
static bool InteractItem(const std::vector<std::string>& Names, const std::vector<std::string>& Actions); //Interacts with first found Name and Action
static bool DropItemByIndex(std::int32_t Index, bool AllowShiftClick = true);
static bool DropItem(std::int32_t ID, bool AllowShiftClick = true);
static bool DropItem(const std::string& Name, bool AllowShiftClick = true);
static bool UseItem(std::int32_t ID);
static bool UseItem(const std::string& Name);
static bool UseItemOn(std::int32_t PrimaryID, std::int32_t SecondaryID);
static bool UseItemOn(const std::string& PrimaryName, const std::string& SecondaryName);
};
/** @} */
#endif // INVENTORY_HPP_INCLUDED