#ifndef INVENTORY_HPP_INCLUDED #define INVENTORY_HPP_INCLUDED #include "../../../Core/Types/Box.hpp" #include "../../../Core/Types/Convex.hpp" #include #include #include /** @addtogroup GameTabs * @{ */ class Inventory { public: static bool IsOpen(); static bool Open(); static std::vector GetItemIDs(); static std::vector GetItemNames(); static std::vector 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& IDs); static std::int32_t Count(const std::vector& 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& IDs); // Returns first found ID index static std::int32_t GetIndexOf(const std::vector& Names); // Returns first found Name Index static std::vector GetIndicesOf(std::int32_t ID); static std::vector 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& IDs); // Returns first found ID box static Box GetBoxOf(const std::vector& Names); // Returns first found Name box static std::vector GetSlotBoxes(); static std::vector GetBoxesOf(std::int32_t ID); static std::vector 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& IDs); // true if all items are found at least once static bool Contains(const std::vector& Names); // true if all items are found at least once static bool ContainsAny(const std::vector& IDs); static bool ContainsAny(const std::vector& Names); static bool ContainsOnly(std::int32_t ID); static bool ContainsOnly(const std::string& Name); static bool ContainsOnly(const std::vector& IDs); static bool ContainsOnly(const std::vector& 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& 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& IDs, const std::vector& Actions); //Interacts with first found ID and Action static bool InteractItem(const std::vector& Names, const std::vector& 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