30#include <tmxlite/Config.hpp>
31#include <tmxlite/Property.hpp>
32#include <tmxlite/ObjectGroup.hpp>
55 explicit Tileset(
const std::string& workingDir);
65 std::array<std::int32_t, 4u> terrainIndices{};
66 std::uint32_t probability = 100;
78 std::uint32_t tileID = 0;
79 std::uint32_t duration = 0;
81 bool operator == (
const Frame& other)
const
83 return (
this == &other) ||
84 (tileID == other.tileID && duration == other.duration);
87 bool operator != (
const Frame& other)
const
89 return !(*
this == other);
92 std::vector<Frame> frames;
94 std::vector<Property> properties;
96 std::string imagePath;
102 std::string className;
112 std::uint32_t tileID = -1;
113 std::vector<Property> properties;
156 const std::string&
getName()
const {
return m_name; }
161 const std::string&
getClass()
const {
return m_class; }
245 const std::vector<Tile>&
getTiles()
const {
return m_tiles; }
252 bool hasTile(std::uint32_t
id)
const {
return id >= m_firstGID &&
id <= getLastGID(); };
263 std::string m_workingDir;
265 std::uint32_t m_firstGID;
266 std::string m_source;
270 std::uint32_t m_spacing;
271 std::uint32_t m_margin;
272 std::uint32_t m_tileCount;
273 std::uint32_t m_columnCount;
277 std::vector<Property> m_properties;
278 std::string m_imagePath;
280 Colour m_transparencyColour;
281 bool m_hasTransparency;
283 std::vector<Terrain> m_terrainTypes;
284 std::vector<std::uint32_t> m_tileIndex;
285 std::vector<Tile> m_tiles;
289 void parseOffsetNode(
const pugi::xml_node&);
290 void parsePropertyNode(
const pugi::xml_node&);
291 void parseTerrainNode(
const pugi::xml_node&);
292 Tile& newTile(std::uint32_t ID);
293 void parseTileNode(
const pugi::xml_node&,
Map*);
294 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
Represents a Tileset node as loaded from a *.tmx format tile map via the tmx::Map class.
Definition Tileset.hpp:53
void parse(pugi::xml_node, Map *)
Attempts to parse the given xml node. If node parsing fails an error is printed in the console and th...
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:145
std::uint32_t getMargin() const
Returns the margin, in pixels, around each tile in the set.
Definition Tileset.hpp:177
ObjectAlignment
Declares the alignment of tile Objects.
Definition Tileset.hpp:120
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:216
const std::vector< Property > & getProperties() const
Returns a reference to the list of Property objects for this tile set.
Definition Tileset.hpp:209
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:252
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:161
ObjectAlignment getObjectAlignment() const
Returns the alignment of tile objects. The default value is ObjectAlignment::Unspecified for compatib...
Definition Tileset.hpp:197
const Vector2u & getTileSize() const
Returns the width and height of a tile in the tile set, in pixels.
Definition Tileset.hpp:167
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:239
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:227
bool hasTransparency() const
Returns true if the image used by this tileset specifically requests a colour to use as transparency.
Definition Tileset.hpp:233
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:203
std::uint32_t getSpacing() const
Returns the spacing, in pixels, between each tile in the set.
Definition Tileset.hpp:172
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:245
std::uint32_t getTileCount() const
Returns the number of tiles in the tile set.
Definition Tileset.hpp:182
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 ...
const std::string & getName() const
Returns the name of this tile set.
Definition Tileset.hpp:156
const Vector2u & getImageSize() const
Returns the size of the tile set image in pixels.
Definition Tileset.hpp:221
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:188
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:110
A frame within an animation.
Definition Tileset.hpp:77
a group of frames which make up an animation
Definition Tileset.hpp:72
Any tiles within a tile set which have special data associated with them such as animation or terrain...
Definition Tileset.hpp:63
Vector2u imagePosition
The position of the tile within the image.
Definition Tileset.hpp:101