/* ---------------------------------------------------------------------------- * spritesheet.h * * Copyright (c) 2017 Yann Herklotz Grave * MIT License, see LICENSE file for more details. * ---------------------------------------------------------------------------- */ #ifndef YAGE_SPRITESHEET_H #define YAGE_SPRITESHEET_H #include "texture.h" #include #include #include namespace yage { namespace details { struct Coordinate { int x; int y; int width; int height; Coordinate() = default; Coordinate(int x_i, int y_i, int width_i, int height_i) : x(x_i), y(y_i), width(width_i), height(height_i) { } }; typedef std::map SpriteMap; } // namespace details class SpriteSheet { public: SpriteSheet(std::string pngFileName, std::string jsonFileName); void sprite(std::string spriteName) const; std::string fileContent(std::string jsonFileName) const; private: Texture texture_; details::SpriteMap fileLocations_; details::SpriteMap parseJson(int &width, int &height, const std::string &jsonContent) const; }; } // namespace yage #endif