TileSetFile Class
The scope of applications for UnigineScript is limited to implementing materials-related logic (material expressions, scriptable materials, brush materials). Do not use UnigineScript as a language for application logic, please consider C#/C++ instead, as these APIs are the preferred ones. Availability of new Engine features in UnigineScript (beyond its scope of applications) is not guaranteed, as the current level of support assumes only fixing critical issues.
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.
TilesetFile Class
Members
static TilesetFile ( ) #
Constructor. Creates a tileset file.int getNumTiles ( ) #
Returns the number of tiles in the tileset file.Return value
Number of tiles.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 setTile ( int x, int y, ??? byte[] 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.
- ??? byte[] 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, ??? byte[] data ) #
Copies the data of the specified tile to the destination buffer.Arguments
- int x - X-coordinate value.
- int y - Y-coordinate value.
- ??? byte[] 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 ( string name, int tile_size ) #
Creates a tileset file with a given name and tile size.Arguments
- string 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.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 ( string name ) #
Loads the given tileset file.Arguments
- string name - File name.
Return value
1, if the operation was successful; otherwise, 0.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 ( string name, double value, int force = 1 ) #
Sets the given value for the attribute with the specified name.Arguments
- string 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 ( string name ) #
Returns the current value of the attribute with the specified name.Arguments
- string name - Attribute name.
Return value
Attribute value.int setIntAttribute ( string name, int value, int radix = 10, int force = 1 ) #
Sets the given value for the attribute with the specified name.Arguments
- string 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 ( string name ) #
Returns the current value of the attribute with the specified name.Arguments
- string name - Attribute name.
Return value
Attribute value.int setFloatAttribute ( string name, float value, int force = 1 ) #
Sets the given value for the attribute with the specified name.Arguments
- string 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 ( string name ) #
Returns the current value of the attribute with the specified name.Arguments
- string name - Attribute name.
Return value
Attribute value.int hasAttribute ( string name ) #
Returns a value indicating if an attribute with the specified name exists in the tileset file.Arguments
- string name - Attribute name.
Return value
1, if an attribute with the specified name exists; otherwise, 0.int setAttribute ( string name, string value, int force = 1 ) #
Sets the given value for the attribute with the specified name.Arguments
- string name - Attribute name.
- string 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 ( string name ) #
Returns the current value of the attribute with the specified name.Arguments
- string name - Attribute name.
Return value
Attribute value as a string.int removeAttribute ( string name, int force = 1 ) #
Removes the attribute with the given name.Arguments
- string 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.Last update:
2021-12-13
Help improve this article
Was this article helpful?
(or select a word/phrase and press Ctrl+Enter)