2018-06-28 02:22:43 +00:00
|
|
|
#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 <cstdint>
|
|
|
|
|
|
|
|
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;
|
|
|
|
static bool ItemsExist(const std::vector<Interactable::Item>& Items);
|
|
|
|
bool IsInterfaceOpen() const;
|
2018-07-09 15:21:35 +00:00
|
|
|
bool OpenInterface() const;
|
2018-06-28 02:22:43 +00:00
|
|
|
|
|
|
|
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<std::string>& Options, bool CheckTarget = false) const;
|
|
|
|
|
|
|
|
bool Valid() const;
|
|
|
|
operator bool() const;
|
|
|
|
|
|
|
|
private:
|
|
|
|
std::int32_t Index;
|
|
|
|
std::int32_t ID;
|
|
|
|
ITEM_SOURCE Source;
|
|
|
|
};
|
|
|
|
}
|
|
|
|
|
|
|
|
#endif // INTERACTABLEITEM_CPP_INCLUDED
|