28 #ifndef TMXLITE_TILESET_HPP_ 29 #define TMXLITE_TILESET_HPP_ 31 #include <tmxlite/Config.hpp> 32 #include <tmxlite/Property.hpp> 33 #include <tmxlite/ObjectGroup.hpp> 54 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 std::vector<Frame> frames;
83 std::vector<Property> properties;
85 std::string imagePath;
101 std::uint32_t tileID = -1;
102 std::vector<Property> properties;
110 void parse(pugi::xml_node);
121 std::uint32_t
getLastGID()
const {
return m_firstGID + getTileCount() - 1; }
125 const std::string&
getName()
const {
return m_name; }
183 const std::vector<Tile>&
getTiles()
const {
return m_tiles; }
190 bool hasTile(std::uint32_t
id)
const {
return id >= m_firstGID &&
id <= getLastGID(); };
198 const Tile* getTile(std::uint32_t
id)
const;
202 std::string m_workingDir;
204 std::uint32_t m_firstGID;
205 std::string m_source;
208 std::uint32_t m_spacing;
209 std::uint32_t m_margin;
210 std::uint32_t m_tileCount;
211 std::uint32_t m_columnCount;
214 std::vector<Property> m_properties;
215 std::string m_imagePath;
216 Colour m_transparencyColour;
217 bool m_hasTransparency;
219 std::vector<Terrain> m_terrainTypes;
220 std::vector<Tile> m_tiles;
224 void parseOffsetNode(
const pugi::xml_node&);
225 void parsePropertyNode(
const pugi::xml_node&);
226 void parseTerrainNode(
const pugi::xml_node&);
227 void parseTileNode(
const pugi::xml_node&);
228 void createMissingTile(std::uint32_t ID);
232 #endif //TMXLITE_TILESET_HPP_
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:116
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:168
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:163
const std::vector< Property > & getProperties() const
Returns a reference to the list of Property objects for this tile set.
Definition: Tileset.hpp:157
Terrain information with which one or more tiles may be associated.
Definition: Tileset.hpp:98
Contains the red, green, blue and alpha values of a colour in the range 0 - 255.
Definition: Types.hpp:109
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:183
Any tiles within a tile set which have special data associated with them such as animation or terrain...
Definition: Tileset.hpp:62
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:152
Represents a Tileset node as loaded from a *.tmx format tile map via the tmx::Map class...
Definition: Tileset.hpp:51
std::uint32_t getSpacing() const
Returns the spacing, in pixels, between each tile in the set.
Definition: Tileset.hpp:134
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...
Definition: Tileset.hpp:121
Vector2u imagePosition
The position of the tile within the image.
Definition: Tileset.hpp:90
a group of frames which make up an animation
Definition: Tileset.hpp:71
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:147
const Vector2u & getTileSize() const
Returns the width and height of a tile in the tile set, in pixels.
Definition: Tileset.hpp:130
const std::string & getName() const
Returns the name of this tile set.
Definition: Tileset.hpp:125
std::uint32_t getTileCount() const
Returns the number of tiles in the tile set.
Definition: Tileset.hpp:142
std::uint32_t getMargin() const
Returns the margin, in pixels, around each tile in the set.
Definition: Tileset.hpp:138
ObjectGroup layers contain a series of Objects which may be made up of shapes or images.
Definition: ObjectGroup.hpp:43
bool hasTransparency() const
Returns true if the image used by this tileset specifically requests a colour to use as transparency...
Definition: Tileset.hpp:173
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:178
A frame within an animation.
Definition: Tileset.hpp:76
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:190