#ifndef HOLESOME_SPRITE_SHEET_HPP #define HOLESOME_SPRITE_SHEET_HPP #include #include #include #include "animated_sprite.hpp" #include "single_sprite.hpp" class SpriteSheet { public: SpriteSheet(const std::shared_ptr& texture, int columns, int rows); [[nodiscard]] std::shared_ptr getSprite(int sequenceIndex) const; [[nodiscard]] std::shared_ptr getAnimation(int startingSequenceIndex, int numberOfFrames) const; [[nodiscard]] std::shared_ptr getTexture() const; [[nodiscard]] sf::IntRect getTextureRect(int sequenceIndex) const; [[nodiscard]] int getColumns() const; [[nodiscard]] int getRows() const; private: int columns; int rows; std::shared_ptr texture; std::vector sprites; [[nodiscard]] sf::Rect getRect(int spriteWidth, int spriteHeight, int row, int column) const; }; #endif //HOLESOME_SPRITE_SHEET_HPP