5#ifndef TILESON_TILE_HPP
6#define TILESON_TILE_HPP
9#include "../objects/Vector2.hpp"
10#include "../objects/Color.hpp"
13#include "../objects/PropertyCollection.hpp"
15#include "../objects/Rect.hpp"
32 [[nodiscard]]
inline uint32_t
getId()
const;
33 [[nodiscard]]
inline const fs::path &
getImage()
const;
35 [[nodiscard]]
inline const std::string &
getType()
const;
36 [[nodiscard]]
inline const std::string &
getClassType()
const;
43 [[nodiscard]]
inline const std::vector<int> &
getTerrain()
const;
46 inline T
get(
const std::string &name);
63 [[nodiscard]]
inline uint32_t
getGid()
const;
77 std::vector<int> m_terrain;
87 inline void performDataCalculations();
88 inline void manageFlipFlagsByIdThenRemoveFlags(uint32_t &
id);
90 std::shared_ptr<tson::TiledClass> m_class {};
102 return m_properties.getValue<T>(name);
108 parse(json, tileset, map);
119 manageFlipFlagsByIdThenRemoveFlags(m_gid);
120 performDataCalculations();
130 manageFlipFlagsByIdThenRemoveFlags(m_gid);
140 performDataCalculations();
205 return m_objectgroup;
233 if(m_properties.hasProperty(name))
234 return m_properties.getProperty(name);
263 return m_drawingRect;
278 return {std::get<0>(tileDataPos), std::get<1>(tileDataPos)};
281void tson::Tile::manageFlipFlagsByIdThenRemoveFlags(uint32_t &
id)
287 id &= ~(FLIPPED_HORIZONTALLY_FLAG | FLIPPED_VERTICALLY_FLAG | FLIPPED_DIAGONALLY_FLAG);
305 return ((m_flipFlags & flags) == flags) ? true :
false;
315 m_properties = properties;
Definition Animation.hpp:11
Definition PropertyCollection.hpp:15
Definition Property.hpp:23
const fs::path & getImage() const
Definition Tile.hpp:159
TileFlipFlags getFlipFlags() const
Definition Tile.hpp:290
const Rect & getSubRectangle() const
Definition Tile.hpp:322
uint32_t getGid() const
Definition Tile.hpp:308
const tson::Vector2f getPosition(const std::tuple< int, int > &tileDataPos)
Definition tileson_forward.hpp:156
const std::string & getType() const
Definition Tile.hpp:175
const std::vector< int > & getTerrain() const
Definition Tile.hpp:221
PropertyCollection & getProperties()
Definition Tile.hpp:212
const tson::Vector2i getTileSize() const
Definition tileson_forward.hpp:98
tson::Property * getProp(const std::string &name)
Definition Tile.hpp:231
bool parseId(IJson &json)
Definition tileson_forward.hpp:106
bool hasFlipFlags(TileFlipFlags flags)
Definition Tile.hpp:303
const Vector2i & getImageSize() const
Definition Tile.hpp:165
bool parse(IJson &json, tson::Tileset *tileset, tson::Map *map)
Definition tileson_forward.hpp:42
Layer & getObjectgroup()
Definition Tile.hpp:203
const std::string & getClassType() const
Definition Tile.hpp:185
tson::Tileset * getTileset() const
Definition Tile.hpp:243
const tson::Vector2i getPositionInTileUnits(const std::tuple< int, int > &tileDataPos)
Definition Tile.hpp:276
tson::Animation & getAnimation()
Definition Tile.hpp:194
void addTilesetAndPerformCalculations(tson::Tileset *tileset)
Definition Tile.hpp:137
tson::Map * getMap() const
Definition Tile.hpp:252
void setProperties(const tson::PropertyCollection &properties)
Definition Tile.hpp:313
uint32_t getId() const
Definition Tile.hpp:149
tson::TiledClass * getClass()
Definition tileson_forward.hpp:166
T get(const std::string &name)
Definition Tile.hpp:100
const tson::Rect & getDrawingRect() const
Definition Tile.hpp:261
Definition TiledClass.hpp:11
Definition Tileset.hpp:24
TileFlipFlags
Definition Enums.hpp:77