AlpacaLibrary/Include/Game/Interactable/Player.hpp

64 lines
2.1 KiB
C++

#ifndef INTERACTABLEPLAYER_HPP_INCLUDED
#define INTERACTABLEPLAYER_HPP_INCLUDED
#include "../../Core/Classes/Player.hpp"
#include "../../Core/Classes/PlayerInfo.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 <cstdint>
#include <functional>
#include <regex>
namespace Interactable
{
class Player : public Internal::Player
{
public:
Player(const Internal::Player& P);
Player() = default;
Player(Player&& Obj) = default;
Player(const Player& Obj) = default;
Player& operator=(Player&& Obj) = default;
Player& operator=(const Player& Obj) = default;
std::string GetName() const;
Internal::PlayerInfo GetInfo() const;
std::vector<Point> 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;
Internal::Character GetInteracting() const;
bool Interacting() const;
bool Interacting(const Internal::Character& C) const;
bool Hover() const;
bool Interact(const Button& B = BUTTON_LEFT) const;
bool Interact(const std::regex& Option, bool CheckTarget = false) const;
bool Interact(const std::string& Option, bool CheckTarget = true) const;
bool Interact(const std::vector<std::string>& Options, bool CheckTarget = true) const;
bool Interact(const std::function<bool (const std::vector<Point>&)>& InteractMethod) const;
};
}
#endif // INTERACTABLEPLAYER_HPP_INCLUDED