#ifndef INVENTORY_HPP_INCLUDED #define INVENTORY_HPP_INCLUDED #include "../../../Core/Types/Box.hpp" #include "../../../Core/Types/Convex.hpp" #include "../../../Game/Interactable/Item.hpp" #include #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::vector GetItems(); static std::vector GetItems(std::int32_t ID); static std::vector GetItems(const std::string& Name); static std::vector GetItems(const std::vector& IDs); static std::vector GetItems(const std::vector& Names); static std::vector GetItems(const std::function& Filter); static Interactable::Item GetItem(std::int32_t ID); static Interactable::Item GetItem(const std::string& Name); static Interactable::Item GetItem(const std::vector& IDs); static Interactable::Item GetItem(const std::vector& Names); static Interactable::Item GetItem(const std::function& Filter); static bool IsEmpty(); static bool IsFull(); static bool IsItemSelected(); static bool IsItemSelected(std::int32_t ID); static bool IsItemSelected(const std::string& Name); static bool IsItemSelected(const Interactable::Item& Item); 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 Interactable::Item& Item); static std::int32_t Count(const std::vector& IDs); static std::int32_t Count(const std::vector& Names); static std::int32_t Count(const std::vector& Items); 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 std::vector GetIndicesOf(const std::vector& IDs); static std::vector GetIndicesOf(const std::vector& Names); 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 Interactable::Item& Item); 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 Contains(const std::vector& Items); static bool ContainsAny(const std::vector& IDs); static bool ContainsAny(const std::vector& Names); static bool ContainsAny(const std::vector& Items); static bool ContainsOnly(std::int32_t ID); static bool ContainsOnly(const std::string& Name); static bool ContainsOnly(const Interactable::Item& Item); static bool ContainsOnly(const std::vector& IDs); static bool ContainsOnly(const std::vector& Names); static bool ContainsOnly(const std::vector& Items); static bool Use(std::int32_t ID, std::int32_t ID2 = -1, bool UseSecondFirst = false); static bool Use(const std::string& Name, const std::string& Name2 = "", bool UseSecondFirst = false); static bool Use(const Interactable::Item& Item, const Interactable::Item& Item2 = Interactable::Item(), bool UseSecondFirst = false); static bool Equip(std::int32_t ID); static bool Equip(const std::string& Name); static bool Equip(const Interactable::Item& Item); static bool Drop(std::int32_t ID, bool AllowShiftClick = true); static bool Drop(const std::string& Name, bool AllowShiftClick = true); static bool Drop(const Interactable::Item& Item, bool AllowShiftClick = true); }; /** @} */ #endif // INVENTORY_HPP_INCLUDED