30#include <tmxlite/Config.hpp>
31#include <tmxlite/ObjectGroup.hpp>
32#include <tmxlite/Property.hpp>
53 class TMXLITE_EXPORT_API Tileset final
56 explicit Tileset(
const std::string& workingDir =
"");
66 std::array<std::int32_t, 4u> terrainIndices{};
67 std::uint32_t probability = 100;
90 bool operator == (
const Frame& other)
const
92 return (
this == &other) ||
96 bool operator != (
const Frame& other)
const
98 return !(*
this == other);
101 std::vector<Frame> frames;
103 std::vector<Property> properties;
105 std::string imagePath;
111 std::string className;
121 std::uint32_t tileID = std::numeric_limits<uint32_t>::max();
122 std::vector<Property> properties;
176 void setFirstGID(std::uint32_t firstGID) { m_firstGID = firstGID; }
187 const std::string&
getName()
const {
return m_name; }
192 const std::string&
getClass()
const {
return m_class; }
276 const std::vector<Tile>&
getTiles()
const {
return m_tiles; }
294 std::string m_workingDir;
296 std::uint32_t m_firstGID;
297 std::string m_source;
301 std::uint32_t m_spacing;
302 std::uint32_t m_margin;
303 std::uint32_t m_tileCount;
304 std::uint32_t m_columnCount;
306 Vector2u m_tileOffset;
308 std::vector<Property> m_properties;
309 std::string m_imagePath;
310 Vector2u m_imageSize;
311 Colour m_transparencyColour;
312 bool m_hasTransparency;
314 std::vector<Terrain> m_terrainTypes;
315 std::vector<std::uint32_t> m_tileIndex;
316 std::vector<Tile> m_tiles;
322 void parseOffsetNode(
const pugi::xml_node&);
323 void parsePropertyNode(
const pugi::xml_node&);
324 void parseTerrainNode(
const pugi::xml_node&);
325 Tile& newTile(std::uint32_t ID);
326 void parseTileNode(
const pugi::xml_node&,
Map*);
327 void createMissingTile(std::uint32_t ID);
Parser for TMX format tile maps. This class can be used to parse the XML format tile maps created wit...
Definition Map.hpp:94
ObjectGroup layers contain a series of Objects which may be made up of shapes or images.
Definition ObjectGroup.hpp:43
std::uint32_t getFirstGID() const
Returns the first GID of this tile set. This the ID of the first tile in the tile set,...
Definition Tileset.hpp:170
std::uint32_t getMargin() const
Returns the margin, in pixels, around each tile in the set.
Definition Tileset.hpp:208
void setFirstGID(std::uint32_t firstGID)
Sets the first GID of this tile set. This is set automatically if the tileset is loaded as part of a ...
Definition Tileset.hpp:176
ObjectAlignment
Declares the alignment of tile Objects.
Definition Tileset.hpp:129
const std::string & getImagePath() const
Returns the file path to the tile set image, relative to the working directory. Use this to load the ...
Definition Tileset.hpp:247
const std::vector< Property > & getProperties() const
Returns a reference to the list of Property objects for this tile set.
Definition Tileset.hpp:240
bool hasTile(std::uint32_t id) const
Checks if a tiled ID is in the range of the first ID and the last ID.
Definition Tileset.hpp:283
std::uint32_t getLastGID() const
Returns the last GID of this tile set. This is the ID of the last tile in the tile set.
const std::string & getClass() const
Returns the class of the Tileset, as defined in the editor Tiled 1.9+.
Definition Tileset.hpp:192
ObjectAlignment getObjectAlignment() const
Returns the alignment of tile objects. The default value is ObjectAlignment::Unspecified for compatib...
Definition Tileset.hpp:228
const Vector2u & getTileSize() const
Returns the width and height of a tile in the tile set, in pixels.
Definition Tileset.hpp:198
bool parse(pugi::xml_node, Map *)
Attempts to parse the given xml node as part of a map. If node parsing fails, an error is printed in ...
const std::vector< Terrain > & getTerrainTypes() const
Returns a vector of Terrain types associated with one or more tiles within this tile set.
Definition Tileset.hpp:270
const Colour & getTransparencyColour() const
Returns the colour used by the tile map image to represent transparency. By default this is a transpa...
Definition Tileset.hpp:258
bool hasTransparency() const
Returns true if the image used by this tileset specifically requests a colour to use as transparency.
Definition Tileset.hpp:264
const Vector2u & getTileOffset() const
Returns the tile offset in pixels. Tile will draw tiles offset from the top left using this value.
Definition Tileset.hpp:234
std::uint32_t getSpacing() const
Returns the spacing, in pixels, between each tile in the set.
Definition Tileset.hpp:203
const std::vector< Tile > & getTiles() const
Returns a reference to the vector of tile data used by tiles which make up this tile set.
Definition Tileset.hpp:276
std::uint32_t getTileCount() const
Returns the number of tiles in the tile set.
Definition Tileset.hpp:213
const Tile * getTile(std::uint32_t id) const
queries tiles and returns a tile with the given ID. Checks if the TileID is part of the Tileset with ...
bool loadWithoutMap(const std::string &path)
Loads the tilemap from the given location. This does not set the first GID. This does not support tem...
const std::string & getName() const
Returns the name of this tile set.
Definition Tileset.hpp:187
const Vector2u & getImageSize() const
Returns the size of the tile set image in pixels.
Definition Tileset.hpp:252
std::uint32_t getColumnCount() const
Returns the number of columns which make up the tile set. This is used when rendering collection of i...
Definition Tileset.hpp:219
bool loadWithoutMapFromString(const std::string &xmlStr)
Loads the tilemap from the given XML string. This does not set the first GID. This does not support t...
Contains the red, green, blue and alpha values of a colour in the range 0 - 255.
Definition Types.hpp:111
Terrain information with which one or more tiles may be associated.
Definition Tileset.hpp:119
A frame within an animation.
Definition Tileset.hpp:78
std::uint32_t tileID
ID of the tile to be displayed during this frame.
Definition Tileset.hpp:83
std::uint32_t duration
Duration of the animation frame, in milliseconds.
Definition Tileset.hpp:88
a group of frames which make up an animation
Definition Tileset.hpp:73
Any tiles within a tile set which have special data associated with them such as animation or terrain...
Definition Tileset.hpp:64
Vector2u imagePosition
The position of the tile within the image.
Definition Tileset.hpp:110