2018-04-18 05:50:40 +00:00
|
|
|
#ifndef INTERACTABLEGROUNDITEM_HPP_INCLUDED
|
|
|
|
#define INTERACTABLEGROUNDITEM_HPP_INCLUDED
|
|
|
|
|
|
|
|
#include "../../Core/Classes/GroundItem.hpp"
|
2018-05-10 01:08:38 +00:00
|
|
|
#include "../../Core/Classes/ItemInfo.hpp"
|
2018-04-18 05:50:40 +00:00
|
|
|
#include "../../Core/Types/Tile.hpp"
|
|
|
|
#include "../../Core/Types/Point.hpp"
|
2018-05-10 01:08:38 +00:00
|
|
|
#include "../../Core/Types/Box.hpp"
|
2018-04-18 05:50:40 +00:00
|
|
|
#include "../../Core/Types/Convex.hpp"
|
2018-05-10 01:08:38 +00:00
|
|
|
#include "../../Core/Input.hpp"
|
2018-04-18 05:50:40 +00:00
|
|
|
#include <cstdint>
|
|
|
|
|
|
|
|
namespace Interactable
|
|
|
|
{
|
|
|
|
class GroundItem : public Internal::GroundItem
|
|
|
|
{
|
|
|
|
private:
|
2018-05-10 01:08:38 +00:00
|
|
|
Tile LocalTile;
|
2018-04-18 05:50:40 +00:00
|
|
|
public:
|
|
|
|
GroundItem(const Internal::GroundItem& G);
|
2018-05-10 01:08:38 +00:00
|
|
|
GroundItem(const Internal::GroundItem& G, const Tile& LocalTile);
|
2018-04-18 05:50:40 +00:00
|
|
|
GroundItem(const GroundItem& G);
|
|
|
|
|
|
|
|
std::string GetName() const;
|
2018-05-10 01:08:38 +00:00
|
|
|
Internal::ItemInfo GetInfo() const;
|
|
|
|
|
2018-05-15 03:41:51 +00:00
|
|
|
std::vector<Point> GetModel() const;
|
|
|
|
Convex GetConvex() const;
|
2018-05-10 01:08:38 +00:00
|
|
|
Box GetBox() const;
|
|
|
|
Point GetPoint() const;
|
|
|
|
|
|
|
|
double GetVisibility() const;
|
|
|
|
Tile GetTile() const;
|
2018-05-15 03:41:51 +00:00
|
|
|
Tile GetLocalTile() const;
|
|
|
|
// Angle - Calculates the angle you the tile to be in relation to your player, 0 = north, 90 = east, 180 = south, 270 = west
|
|
|
|
void RotateTo(std::int32_t Angle = 0) const;
|
2018-05-10 01:08:38 +00:00
|
|
|
|
|
|
|
bool Interact(const Button& B = BUTTON_LEFT) const;
|
|
|
|
bool Interact(const std::string& Option) const;
|
2018-05-15 03:41:51 +00:00
|
|
|
bool Interact(const std::vector<std::string>& Options) const;
|
2018-04-18 05:50:40 +00:00
|
|
|
|
|
|
|
operator Internal::GroundItem() const;
|
|
|
|
};
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
#endif // INTERACTABLEGROUNDITEM_HPP_INCLUDED
|