#ifndef INTERACTABLEITEM_CPP_INCLUDED #define INTERACTABLEITEM_CPP_INCLUDED #include "../../Core/Classes/ItemInfo.hpp" #include "../../Core/Classes/Sprite.hpp" #include "../../Core/Types/Point.hpp" #include "../../Core/Types/Box.hpp" #include "../../Core/Types/Convex.hpp" #include "../../Core/Input.hpp" #include #include namespace Interactable { class Item { public: typedef enum ITEM_SOURCE { INVENTORY, EQUIPMENT, BANK } ITEM_SOURCE; Item(); Item(std::int32_t Index, std::int32_t ID, ITEM_SOURCE Source); Item(const Interactable::Item& Item); bool Exists() const; bool IsInterfaceOpen() const; bool OpenInterface() const; std::int32_t GetID() const; std::int32_t GetIndex() const; ITEM_SOURCE GetSource() const; std::string GetName() const; std::int32_t GetStackAmount() const; Internal::ItemInfo GetInfo() const; Internal::Sprite GetSprite() const; Convex GetConvex() const; Box GetBox() const; Point GetPoint() const; Point GetPoint(double PointGenAccuracy) const; bool Hover() const; bool Interact(const Button& B = BUTTON_LEFT) const; bool Interact(const std::string& Option, bool CheckTarget = false) const; bool Interact(const std::vector& Options, bool CheckTarget = false) const; bool Interact(const std::function& InteractMethod) const; bool Valid() const; operator bool() const; private: std::int32_t Index; std::int32_t ID; ITEM_SOURCE Source; }; } #endif // INTERACTABLEITEM_CPP_INCLUDED