X-Git-Url: http://git.localhorst.tv/?a=blobdiff_plain;f=src%2Fcreature%2FSituation.hpp;h=a60aeb7aa27ee55595210ef8cf0924ebdd6fc319;hb=cd9cee86b336b5ec531028ac2deebb391e48ed21;hp=4dbb1c694d96b8ea5d534b353ec9c6e5f9a8e2a2;hpb=bcf776b6d51aeb9147bde32da8dd0768b10db993;p=blobs.git diff --git a/src/creature/Situation.hpp b/src/creature/Situation.hpp index 4dbb1c6..a60aeb7 100644 --- a/src/creature/Situation.hpp +++ b/src/creature/Situation.hpp @@ -1,12 +1,14 @@ #ifndef BLOBS_CREATURE_SITUATION_HPP_ #define BLOBS_CREATURE_SITUATION_HPP_ -#include "../graphics/glm.hpp" +#include "../math/glm.hpp" namespace blobs { namespace world { class Planet; + class Tile; + class TileType; } namespace creature { @@ -16,12 +18,24 @@ public: Situation(); ~Situation(); + Situation(const Situation &) = delete; + Situation &operator =(const Situation &) = delete; + + Situation(Situation &&) = delete; + Situation &operator =(Situation &&) = delete; + public: bool OnPlanet() const noexcept; world::Planet &GetPlanet() const noexcept { return *planet; } + bool OnSurface() const noexcept; int Surface() const noexcept { return surface; } const glm::dvec3 &Position() const noexcept { return position; } + bool OnTile() const noexcept; + glm::ivec2 SurfacePosition() const noexcept; + world::Tile &GetTile() const noexcept; + const world::TileType &GetTileType() const noexcept; + void Move(const glm::dvec3 &dp) noexcept; void SetPlanetSurface(world::Planet &, int srf, const glm::dvec3 &pos) noexcept; public: