Unigine::TileSetFile Class
Header: | #include <UnigineTilesetFile.h> |
This class is used to create a tileset file — the file that keeps data that is based on X and Y indices. The values of X and Y are limited to the integer and can be both positive and negative. The maximum size of the tile is limited to 2Gb. The maximum size of a tileset is limited to the unsigned integer value. Tileset files are stored using the .UTS and .UTSH formats. To unpack the file, use the TilesetFile console tool.
TilesetFile Class
Members
static TilesetFilePtr create()
Constructor. Creates a tileset file.int getNumTiles()
Returns the number of tiles in the tileset file.Return value
Number of tiles.long long getOffset(int x, int y)
Returns the offset for the tile with specified coordinates.Arguments
- int x - X-coordinate value.
- int y - Y-coordinate value.
Return value
Offset value.int isOpened()
Returns a value indicating if the tileset file is opened.Return value
1 if the tileset file is opened; otherwise, 0.int isOwner()
Returns the owner flag. If the pointer is the owner, on its deletion the tileset file also will be deleted. Use grab() and release() functions to change ownership.Return value
Owner flag.int setTile(int x, int y, unsigned char * data, int force = 1)
Sets the data of the specified tile by copying from the source buffer.Arguments
- int x - X-coordinate value.
- int y - Y-coordinate value.
- unsigned char * data - Source buffer.
- int force - Force flag.
- If 1 is specified, the data will be updated immediately.
- If 0 is specified, the data will be updated only when the flushHeader() method is called.
To improve performance it is recommended to set this flag to 0 to accumulate multiple tile update operations and apply them all at once by calling the flushHeader() method.
Return value
1, if the operation was successful; otherwise, 0.int getTile(int x, int y, unsigned char * data)
Copies the data of the specified tile to the destination buffer.Arguments
- int x - X-coordinate value.
- int y - Y-coordinate value.
- unsigned char * data - Destination buffer.
Return value
1, if the operation was successful; otherwise, 0.int getTilePos(int num, int & x, int & y)
Retrieves the coordinates of the tile with a given index and puts them to x and y respectively.Arguments
- int num - Tile index.
- int & x - X-coordinate of the tile.
- int & y - Y-coordinate of the tile.
Return value
1, if the operation was successful; otherwise, 0.int getTileSize()
Returns the size of the tile for the tileset file.Return value
Tile size.int close()
Closes the tileset file.Return value
1, if the operation was successful; otherwise, 0.int createFile(const char * name, int tile_size)
Creates a tileset file with a given name and tile size.Arguments
- const char * name - File name.
- int tile_size - Tile size.
Return value
1, if the operation was successful; otherwise, 0.int flushHeader()
Applies all pending setTile() and removeTile() operations.The tileset file must be opened.
Return value
1, if the operation was successful; otherwise, 0.void grab()
Grabs the tileset file (sets the owner flag to 1). The tileset file should not be handled by the engine after this function is called.int hasTile(int x, int y)
Returns a value indicating if there is a tile with the specified coordinates in the file.Arguments
- int x - X-coordinate value.
- int y - Y-coordinate value.
Return value
1, if the file contains the specified tile; otherwise, 0.int load(const char * name)
Loads the given tileset file.Arguments
- const char * name - File name.
Return value
1, if the operation was successful; otherwise, 0.void release()
Releases the tileset file (sets the owner flag to 0). The tileset file should be handled by the engine after this function is called.int removeTile(int x, int y, int force = 1)
Removes the tile with specified coordinates from the file.Arguments
- int x - X-coordinate value.
- int y - Y-coordinate value.
- int force - Force flag.
- If 1 is specified, the data will be updated immediately.
- If 0 is specified, the data will be updated only when the flushHeader() method is called.
To improve performance it is recommended to set this flag to 0 to accumulate multiple tile update operations and apply them all at once by calling the flushHeader() method.
Return value
1, if the operation was successful; otherwise, 0.int setDoubleAttribute(const char * name, double value, int force = 1)
Sets the given value for the attribute with the specified name.Arguments
- const char * name - Attribute name.
- double value - Attribute value.
- int force - Force flag.
- If 1 is specified, the data will be updated immediately.
- If 0 is specified, the data will be updated only when the flushAttributes() method is called.
To improve performance it is recommended to set this flag to 0 to accumulate multiple tile update operations and apply them all at once by calling the flushAttributes() method.
Return value
1, if the operation was successful; otherwise, 0.double getDoubleAttribute(const char * name)
Returns the current value of the attribute with the specified name.Arguments
- const char * name - Attribute name.
Return value
Attribute value.int setIntAttribute(const char * name, int value, int radix = 10, int force = 1)
Sets the given value for the attribute with the specified name.Arguments
- const char * name - Attribute name.
- int value - Attribute value to be set.
- int radix - Numerical base used to represent the value as a string, one of the following values:
- 2 - binary
- 10 - octal
- 10 - decimal
- 16 - hexadecimal
- int force - Force flag.
- If 1 is specified, the data will be updated immediately.
- If 0 is specified, the data will be updated only when the flushAttributes() method is called.
To improve performance it is recommended to set this flag to 0 to accumulate multiple tile update operations and apply them all at once by calling the flushAttributes() method.
Return value
1, if the operation was successful; otherwise, 0.int getIntAttribute(const char * name)
Returns the current value of the attribute with the specified name.Arguments
- const char * name - Attribute name.
Return value
Attribute value.int setFloatAttribute(const char * name, float value, int force = 1)
Sets the given value for the attribute with the specified name.Arguments
- const char * name - Attribute name.
- float value - Attribute value to be set.
- int force - Force flag.
- If 1 is specified, the data will be updated immediately.
- If 0 is specified, the data will be updated only when the flushAttributes() method is called.
To improve performance it is recommended to set this flag to 0 to accumulate multiple tile update operations and apply them all at once by calling the flushAttributes() method.
Return value
1, if the operation was successful; otherwise, 0.float getFloatAttribute(const char * name)
Returns the current value of the attribute with the specified name.Arguments
- const char * name - Attribute name.
Return value
Attribute value.int hasAttribute(const char * name)
Returns a value indicating if an attribute with the specified name exists in the tileset file.Arguments
- const char * name - Attribute name.
Return value
1, if an attribute with the specified name exists; otherwise, 0.int setAttribute(const char * name, const char * value, int force = 1)
Sets the given value for the attribute with the specified name.Arguments
- const char * name - Attribute name.
- const char * value - Attribute value to be set as a string.
- int force - Force flag.
- If 1 is specified, the data will be updated immediately.
- If 0 is specified, the data will be updated only when the flushAttributes() method is called.
To improve performance it is recommended to set this flag to 0 to accumulate multiple tile update operations and apply them all at once by calling the flushAttributes() method.
Return value
1, if the operation was successful; otherwise, 0.String getAttribute(const char * name)
Returns the current value of the attribute with the specified name.Arguments
- const char * name - Attribute name.
Return value
Attribute value as a string.int removeAttribute(const char * name, int force = 1)
Removes the attribute with the given name.Arguments
- const char * name - Name of the attribute to be removed.
- int force - Force flag.
- If 1 is specified, the data will be updated immediately.
- If 0 is specified, the data will be updated only when the flushAttributes() method is called.
To improve performance it is recommended to set this flag to 0 to accumulate multiple tile update operations and apply them all at once by calling the flushAttributes() method.
Return value
1, if the operation was successful; otherwise, 0.int flushAttributes()
Applies all pending setAttribute(), setDoubleAttribute(), setIntAttribute(), setFloatAttribute()and removeAttribute() operations.The tileset file must be opened.
Return value
1, if the operation was successful; otherwise, 0.Vector< String > getAttributeNames()
Returns the list of names of all attributes in the tileset file.Return value
Vector containing names of all attributes in the tileset file.int CLOSED
Description
The tileset file is closed.int READING
Description
The system is reading from the tileset class.int WRITING
Description
The system is writing to the tileset class.Last update: 2018-06-04
Help improve this article
Was this article helpful?
(or select a word/phrase and press Ctrl+Enter)