AlpacaLibrary/Include/Game/Interactable/Widget.hpp

45 lines
1.4 KiB
C++

#ifndef INTERACTABLEWIDGET_HPP_INCLUDED
#define INTERACTABLEWIDGET_HPP_INCLUDED
#include "../../Core/Classes/Widget.hpp"
#include "../../Core/Classes/ItemInfo.hpp"
#include "../../Core/Types/Tile.hpp"
#include "../../Core/Types/Point.hpp"
#include "../../Core/Types/Box.hpp"
#include "../../Core/Types/Convex.hpp"
#include "../../Core/Input.hpp"
#include <cstdint>
#include <functional>
namespace Interactable
{
class Widget : public Internal::Widget
{
public:
Widget(const Internal::Widget& W);
Widget() = default;
Widget(Widget&& Obj) = default;
Widget(const Widget& Obj) = default;
Widget& operator=(Widget&& Obj) = default;
Widget& operator=(const Widget& Obj) = default;
bool IsHidden() const;
bool IsVisible() const;
std::vector<std::int32_t> GetNormalizedItemIDs() 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) const;
bool Interact(const std::vector<std::string>& Options) const;
bool Interact(const std::function<bool (const Box&)>& InteractMethod) const;
};
}
#endif // INTERACTABLEWIDGET_HPP_INCLUDED