//
//  Map.hpp
//  Game
//
//  Created by Darvydas on 25/01/2019.
//

#ifndef Map_hpp
#define Map_hpp

#include <vector>

#include "Game/GameScene/World/Map/Tile.h"

namespace Game
{
    namespace Map
    {
        class CMap
        {
        public:
            
            CMap(const int level);
            
            bool isInBounds(int x, int y) const;
            
            void setTile(int x, int y, ETile tile);
            
            ETile getTile(int x, int y) const;
            
            void fill(ETile tile);
            
            void move(std::vector<ETile>&& tiles);
            
            std::vector<ETile> copy();
            
        private:
            
            int m_width;
            int m_height;
            
            std::vector<ETile> tiles;
        };
    }
}

#endif /* Map_hpp */
