46 lines
1.3 KiB
C++
46 lines
1.3 KiB
C++
#ifndef INTERACTABLENPC_HPP_INCLUDED
|
|
#define INTERACTABLENPC_HPP_INCLUDED
|
|
|
|
#include "../../Core/Classes/NPC.hpp"
|
|
#include "../../Core/Classes/NPCInfo.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>
|
|
|
|
namespace Interactable
|
|
{
|
|
class NPC : public Internal::NPC
|
|
{
|
|
public:
|
|
NPC(const Internal::NPC& N);
|
|
NPC(const NPC& N);
|
|
|
|
std::int32_t GetID() const;
|
|
std::string GetName() const;
|
|
Internal::NPCInfo GetInfo() const;
|
|
|
|
Box GetBox() const;
|
|
Point GetPoint() const;
|
|
Convex GetConvex() const;
|
|
std::vector<Point> GetModel() const;
|
|
|
|
double GetVisibility() const;
|
|
Tile GetTile() const;
|
|
|
|
Internal::Character GetInteracting() const;
|
|
bool Interacting() const;
|
|
bool Interacting(const Internal::Character& C) const;
|
|
|
|
bool Interact(const Button& B = BUTTON_LEFT) const;
|
|
bool Interact(const std::string& Option) const;
|
|
bool Interact(const std::vector<std::string>& Options, bool RequireAllOptions = false) const;
|
|
|
|
operator Internal::NPC() const;
|
|
};
|
|
}
|
|
|
|
#endif // INTERACTABLENPC_HPP_INCLUDED
|