#ifndef INTERACTABLEDECORATIVEOBJECT_HPP_INCLUDED #define INTERACTABLEDECORATIVEOBJECT_HPP_INCLUDED #include "../../Core/Classes/DecorativeObject.hpp" #include "../../Core/Classes/ObjectInfo.hpp" #include "../../Core/Types/Tile.hpp" #include "../../Core/Types/Point.hpp" #include "../../Core/Types/Box.hpp" #include "../../Core/Types/Convex.hpp" #include "../../Core/Types/Wireframe.hpp" #include "../../Core/Input.hpp" #include "../../Game/Tools/Camera.hpp" #include namespace Interactable { class DecorativeObject : public Internal::DecorativeObject { public: DecorativeObject(const Internal::DecorativeObject& D); DecorativeObject() = default; DecorativeObject(DecorativeObject&& Obj) = default; DecorativeObject(const DecorativeObject& Obj) = default; DecorativeObject& operator=(DecorativeObject&& Obj) = default; DecorativeObject& operator=(const DecorativeObject& Obj) = default; std::int32_t GetID() const; std::string GetName() const; Internal::ObjectInfo GetInfo() const; std::vector GetModel() const; Wireframe GetWireframe() const; Convex GetConvex() const; Box GetBox() const; Point GetPoint() const; Point GetPoint(double PointGenAccuracy) const; double GetVisibility() const; Tile GetTile() const; Tile GetReachableTile() const; bool IsReachable() const; bool RotateTo(std::int32_t Angle = 0) const; bool RotateTo(Camera::COMPASS_DIRECTION Direction) const; bool Hover() const; bool Interact(const Button& B = BUTTON_LEFT) const; bool Interact(const std::string& Option, bool CheckTarget = true) const; bool Interact(const std::vector& Options, bool CheckTarget = true) const; }; } #endif // INTERACTABLEDECORATIVEOBJECT_HPP_INCLUDED