#ifndef _H_MAP_H #define _H_MAP_H #include #include #include "graphics/instancedraw.h" #include "graphics/renderer.h" class Shader; class Camera; class ResourceManager; struct MapData; struct TileSetData; class Map : public Drawable { public: Map(std::shared_ptr mapData, const unsigned shaderID, std::shared_ptr resourceManager); const std::vector> getCollisionMap() const { return collisionMap; } void draw() override; private: void loadMap(); void createCollisionMap(); size_t getTileSetIndex(int id) const; std::shared_ptr mapData; std::vector> tileSetData; std::vector> instanceHandles; std::vector>> tileIds; std::vector> collisionMap; std::vector> tileData; }; #endif