11#include "uranus/engine/Engine.hpp"
12#include <nlohmann/json.hpp>
13#include <SFML/Graphics.hpp>
14#include <SFML/Window.hpp>
15#include <uranus/external/tileson/Tileson.hpp>
19 explicit Tile(
const std::string &name, sf::VertexArray &quad);
21 inline const std::string &getName()
const {
return _name; };
23 inline const sf::VertexArray &getQuad()
const {
return _quad; };
27 sf::VertexArray _quad;
32 explicit Layer(
const std::string &name);
34 inline const std::string &getName()
const {
return _name; };
36 inline std::vector<Tile> &getTiles() {
return _tiles; };
38 inline const std::vector<Tile> &getTiles()
const {
return this->_tiles; };
42 std::vector<Tile> _tiles;
45class Map :
public sf::Drawable,
46 public sf::Transformable {
48 explicit Map(
const std::string &path, std::shared_ptr<engine::TextureManager> &textureMng);
52 void loadTexture(std::shared_ptr<engine::TextureManager> &textureMng);
54 static sf::Vector2i getTilePosition(uint32_t
id,
tson::Tileset *tileset);
57 void draw(sf::RenderTarget &target, sf::RenderStates states)
const override;
59 std::unique_ptr<tson::Map> _map;
60 std::vector<Layer> _layers;
61 std::map<std::string, std::shared_ptr<sf::Texture>> _textures;
Definition: Tileson.hpp:4282
Definition: Tileson.hpp:6314