#ifndef ENTITY_H
#define ENTITY_H

using coordinate = unsigned long;

/// Interface representing entity which can be placed on the map
class Entity
{
protected:
    coordinate entity_row, entity_col;

public:
    Entity(coordinate _row = 0, coordinate _col = 0);

    virtual ~Entity() = 0;

    /// Get current Entity position
    void position(coordinate &row, coordinate &col) const noexcept;

    /// Set Entity position explicitly
    void setPosition(coordinate row, coordinate col);

    /// Get current x of the Entity position
    coordinate row() const noexcept;

    /// Get current y of the Entity position
    coordinate col() const noexcept;
};

#endif // ENTITY_H
