<?xml version="1.0" encoding="UTF-8" ?> <class name="TileMap" inherits="Node2D" version="4.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="../class.xsd"> <brief_description> Node for 2D tile-based maps. </brief_description> <description> Node for 2D tile-based maps. Tilemaps use a [TileSet] which contain a list of tiles which are used to create grid-based maps. A TileMap may have several layers, layouting tiles on top of each other. </description> <tutorials> <link title="Using Tilemaps">$DOCS_URL/tutorials/2d/using_tilemaps.html</link> <link title="2D Platformer Demo">https://godotengine.org/asset-library/asset/120</link> <link title="2D Isometric Demo">https://godotengine.org/asset-library/asset/112</link> <link title="2D Hexagonal Demo">https://godotengine.org/asset-library/asset/111</link> <link title="2D Navigation Astar Demo">https://godotengine.org/asset-library/asset/519</link> <link title="2D Role Playing Game Demo">https://godotengine.org/asset-library/asset/520</link> <link title="2D Kinematic Character Demo">https://godotengine.org/asset-library/asset/113</link> </tutorials> <methods> <method name="_tile_data_runtime_update" qualifiers="virtual"> <return type="void" /> <argument index="0" name="layer" type="int" /> <argument index="1" name="coords" type="Vector2i" /> <argument index="2" name="tile_data" type="TileData" /> <description> Called with a TileData object about to be used internally by the TileMap, allowing its modification at runtime. This method is only called if [method _use_tile_data_runtime_update] is implemented and returns [code]true[/code] for the given tile [code]coords[/coords] and [code]layer[/code]. [b]Warning:[/b] The [code]tile_data[/code] object's sub-resources are the same as the one in the TileSet. Modifying them might impact the whole TileSet. Instead, make sure to duplicate those resources. [b]Note:[/b] If the properties of [code]tile_data[/code] object should change over time, use [method force_update] to trigger a TileMap update. </description> </method> <method name="_use_tile_data_runtime_update" qualifiers="virtual"> <return type="bool" /> <argument index="0" name="layer" type="int" /> <argument index="1" name="coords" type="Vector2i" /> <description> Should return [code]true[/code] if the tile at coordinates [code]coords[/coords] on layer [code]layer[/code] requires a runtime update. [b]Warning:[/b] Make sure this function only return [code]true[/code] when needed. Any tile processed at runtime without a need for it will imply a significant performance penalty. </description> </method> <method name="add_layer"> <return type="void" /> <argument index="0" name="to_position" type="int" /> <description> Adds a layer at the given position [code]to_position[/code] in the array. If [code]to_position[/code] is -1, adds it at the end of the array. </description> </method> <method name="clear"> <return type="void" /> <description> Clears all cells. </description> </method> <method name="clear_layer"> <return type="void" /> <argument index="0" name="layer" type="int" /> <description> Clears all cells on the given layer. </description> </method> <method name="fix_invalid_tiles"> <return type="void" /> <description> Clears cells that do not exist in the tileset. </description> </method> <method name="force_update"> <return type="void" /> <argument index="0" name="layer" type="int" default="-1" /> <description> Triggers an update of the TileMap. If [code]layer[/code] is provided, only updates the given layer. [b]Note:[/b] The TileMap node updates automatically when one of its properties is modified. A manual update is only needed if runtime modifications (implemented in [method _tile_data_runtime_update]) need to be applied. [b]Warning:[/b] Updating the TileMap is a performance demanding task. Limit occurrences of those updates to the minimum and limit the amount tiles they impact (by segregating tiles updated often to a dedicated layer for example). </description> </method> <method name="get_cell_alternative_tile" qualifiers="const"> <return type="int" /> <argument index="0" name="layer" type="int" /> <argument index="1" name="coords" type="Vector2i" /> <argument index="2" name="use_proxies" type="bool" /> <description> Returns the tile alternative ID of the cell on layer [code]layer[/code] at [code]coords[/code]. If [code]use_proxies[/code] is [code]false[/code], ignores the [TileSet]'s tile proxies, returning the raw alternative identifier. See [method TileSet.map_tile_proxy]. </description> </method> <method name="get_cell_atlas_coords" qualifiers="const"> <return type="Vector2i" /> <argument index="0" name="layer" type="int" /> <argument index="1" name="coords" type="Vector2i" /> <argument index="2" name="use_proxies" type="bool" /> <description> Returns the tile atlas coordinates ID of the cell on layer [code]layer[/code] at coordinates [code]coords[/code]. If [code]use_proxies[/code] is [code]false[/code], ignores the [TileSet]'s tile proxies, returning the raw alternative identifier. See [method TileSet.map_tile_proxy]. </description> </method> <method name="get_cell_source_id" qualifiers="const"> <return type="int" /> <argument index="0" name="layer" type="int" /> <argument index="1" name="coords" type="Vector2i" /> <argument index="2" name="use_proxies" type="bool" /> <description> Returns the tile source ID of the cell on layer [code]layer[/code] at coordinates [code]coords[/code]. If [code]use_proxies[/code] is [code]false[/code], ignores the [TileSet]'s tile proxies, returning the raw alternative identifier. See [method TileSet.map_tile_proxy]. </description> </method> <method name="get_coords_for_body_rid"> <return type="Vector2i" /> <argument index="0" name="body" type="RID" /> <description> Returns the coordinates of the tile for given physics body RID. Such RID can be retrieved from [method KinematicCollision2D.get_collider_rid], when colliding with a tile. </description> </method> <method name="get_layer_modulate" qualifiers="const"> <return type="Color" /> <argument index="0" name="layer" type="int" /> <description> Returns a TileMap layer's modulate. </description> </method> <method name="get_layer_name" qualifiers="const"> <return type="String" /> <argument index="0" name="layer" type="int" /> <description> Returns a TileMap layer's name. </description> </method> <method name="get_layer_y_sort_origin" qualifiers="const"> <return type="int" /> <argument index="0" name="layer" type="int" /> <description> Returns a TileMap layer's Y sort origin. </description> </method> <method name="get_layer_z_index" qualifiers="const"> <return type="int" /> <argument index="0" name="layer" type="int" /> <description> Returns a TileMap layer's Z-index value. </description> </method> <method name="get_layers_count" qualifiers="const"> <return type="int" /> <description> </description> </method> <method name="get_neighbor_cell" qualifiers="const"> <return type="Vector2i" /> <argument index="0" name="coords" type="Vector2i" /> <argument index="1" name="neighbor" type="int" enum="TileSet.CellNeighbor" /> <description> Returns the neighboring cell to the one at coordinates [code]coords[/code], identified by the [code]neighbor[/code] direction. This method takes into account the different layouts a TileMap can take. </description> </method> <method name="get_pattern"> <return type="TileMapPattern" /> <argument index="0" name="layer" type="int" /> <argument index="1" name="coords_array" type="Vector2i[]" /> <description> Creates a new [TileMapPattern] from the given layer and set of cells. </description> </method> <method name="get_surrounding_tiles"> <return type="Vector2i[]" /> <argument index="0" name="coords" type="Vector2i" /> <description> Returns the list of all neighbourings cells to the one at [code]coords[/code] </description> </method> <method name="get_used_cells" qualifiers="const"> <return type="Vector2i[]" /> <argument index="0" name="layer" type="int" /> <description> Returns a [Vector2] array with the positions of all cells containing a tile in the given layer. A cell is considered empty if its source identifier equals -1, its atlas coordinates identifiers is [code]Vector2(-1, -1)[/code] and its alternative identifier is -1. </description> </method> <method name="get_used_rect"> <return type="Rect2" /> <description> Returns a rectangle enclosing the used (non-empty) tiles of the map, including all layers. </description> </method> <method name="is_layer_enabled" qualifiers="const"> <return type="bool" /> <argument index="0" name="layer" type="int" /> <description> Returns if a layer is enabled. </description> </method> <method name="is_layer_y_sort_enabled" qualifiers="const"> <return type="bool" /> <argument index="0" name="layer" type="int" /> <description> Returns if a layer Y-sorts its tiles. </description> </method> <method name="map_pattern"> <return type="Vector2i" /> <argument index="0" name="position_in_tilemap" type="Vector2i" /> <argument index="1" name="coords_in_pattern" type="Vector2i" /> <argument index="2" name="pattern" type="TileMapPattern" /> <description> Returns for the given coordinate [code]coords_in_pattern[/code] in a [TileMapPattern] the corresponding cell coordinates if the pattern was pasted at the [code]position_in_tilemap[/code] coordinates (see [method set_pattern]). This mapping is required as in half-offset tile shapes, the mapping might not work by calculating [code]position_in_tile_map + coords_in_pattern[/code] </description> </method> <method name="map_to_world" qualifiers="const"> <return type="Vector2" /> <argument index="0" name="map_position" type="Vector2i" /> <description> Returns a local position of the center of the cell at the given tilemap (grid-based) coordinates. [b]Note:[/b] This doesn't correspond to the visual position of the tile, i.e. it ignores the [member TileData.texture_offset] property of individual tiles. </description> </method> <method name="move_layer"> <return type="void" /> <argument index="0" name="layer" type="int" /> <argument index="1" name="to_position" type="int" /> <description> Moves the layer at index [code]layer_index[/code] to the given position [code]to_position[/code] in the array. </description> </method> <method name="remove_layer"> <return type="void" /> <argument index="0" name="layer" type="int" /> <description> Removes the layer at index [code]layer[/code]. </description> </method> <method name="set_cell"> <return type="void" /> <argument index="0" name="layer" type="int" /> <argument index="1" name="coords" type="Vector2i" /> <argument index="2" name="source_id" type="int" default="-1" /> <argument index="3" name="atlas_coords" type="Vector2i" default="Vector2i(-1, -1)" /> <argument index="4" name="alternative_tile" type="int" default="-1" /> <description> Sets the tile indentifiers for the cell on layer [code]layer[/code] at coordinates [code]coords[/code]. Each tile of the [TileSet] is identified using three parts: - The source identifier [code]source_id[/code] identifies a [TileSetSource] identifier. See [method TileSet.set_source_id], - The atlas coordinates identifier [code]atlas_coords[/code] identifies a tile coordinates in the atlas (if the source is a [TileSetAtlasSource]. For [TileSetScenesCollectionSource] it should be 0), - The alternative tile identifier [code]alternative_tile[/code] identifies a tile alternative the source is a [TileSetAtlasSource], and the scene for a [TileSetScenesCollectionSource]. </description> </method> <method name="set_cells_from_surrounding_terrains"> <return type="void" /> <argument index="0" name="layer" type="int" /> <argument index="1" name="cells" type="Vector2i[]" /> <argument index="2" name="terrain_set" type="int" /> <argument index="3" name="ignore_empty_terrains" type="bool" default="true" /> <description> Updates all the cells in the [code]cells[/code] coordinates array and replace them by tiles that matches the surrounding cells terrains. Only cells form the given [code]terrain_set[/code] are considered. If [code]ignore_empty_terrains[/code] is true, zones with no terrain defined are ignored to select the tiles. </description> </method> <method name="set_layer_enabled"> <return type="void" /> <argument index="0" name="layer" type="int" /> <argument index="1" name="enabled" type="bool" /> <description> Enables or disables the layer [code]layer[/code]. A disabled layer is not processed at all (no rendering, no physics, etc...). </description> </method> <method name="set_layer_modulate"> <return type="void" /> <argument index="0" name="layer" type="int" /> <argument index="1" name="enabled" type="Color" /> <description> Sets a layer's color. It will be multiplied by tile's color and TileMap's modulate. </description> </method> <method name="set_layer_name"> <return type="void" /> <argument index="0" name="layer" type="int" /> <argument index="1" name="name" type="String" /> <description> Sets a layer's name. This is mostly useful in the editor. </description> </method> <method name="set_layer_y_sort_enabled"> <return type="void" /> <argument index="0" name="layer" type="int" /> <argument index="1" name="y_sort_enabled" type="bool" /> <description> Enables or disables a layer's Y-sorting. If a layer is Y-sorted, the layer will behave as a CanvasItem node where each of its tile gets Y-sorted. Y-sorted layers should usually be on different Z-index values than not Y-sorted layers, otherwise, each of those layer will be Y-sorted as whole with the Y-sorted one. This is usually an undesired behvaior. </description> </method> <method name="set_layer_y_sort_origin"> <return type="void" /> <argument index="0" name="layer" type="int" /> <argument index="1" name="y_sort_origin" type="int" /> <description> Sets a layer's Y-sort origin value. This Y-sort origin value is added to each tile's Y-sort origin value. This allows, for example, to fake a different height level on each layer. This can be useful for top-down view games. </description> </method> <method name="set_layer_z_index"> <return type="void" /> <argument index="0" name="layer" type="int" /> <argument index="1" name="z_index" type="int" /> <description> Sets a layers Z-index value. This Z-index is added to each tile's Z-index value. </description> </method> <method name="set_pattern"> <return type="void" /> <argument index="0" name="layer" type="int" /> <argument index="1" name="position" type="Vector2i" /> <argument index="2" name="pattern" type="TileMapPattern" /> <description> Paste the given [TileMapPattern] at the given [code]position[/code] and [code]layer[/code] in the tile map. </description> </method> <method name="world_to_map" qualifiers="const"> <return type="Vector2i" /> <argument index="0" name="world_position" type="Vector2" /> <description> Returns the tilemap (grid-based) coordinates corresponding to the given local position. </description> </method> </methods> <members> <member name="cell_quadrant_size" type="int" setter="set_quadrant_size" getter="get_quadrant_size" default="16"> The TileMap's quadrant size. Optimizes drawing by batching, using chunks of this size. </member> <member name="collision_animatable" type="bool" setter="set_collision_animatable" getter="is_collision_animatable" default="false"> If enabled, the TileMap will see its collisions synced to the physics tick and change its collision type from static to kinematic. This is required to create TileMap-based moving platform. [b]Note:[/b] Enabling [code]collision_animatable[/code] may have a small performance impact, only do it if the TileMap is moving and has colliding tiles. </member> <member name="collision_visibility_mode" type="int" setter="set_collision_visibility_mode" getter="get_collision_visibility_mode" enum="TileMap.VisibilityMode" default="0"> Show or hide the TileMap's collision shapes. If set to [code]VISIBILITY_MODE_DEFAULT[/code], this depends on the show collision debug settings. </member> <member name="navigation_visibility_mode" type="int" setter="set_navigation_visibility_mode" getter="get_navigation_visibility_mode" enum="TileMap.VisibilityMode" default="0"> Show or hide the TileMap's collision shapes. If set to [code]VISIBILITY_MODE_DEFAULT[/code], this depends on the show navigation debug settings. </member> <member name="tile_set" type="TileSet" setter="set_tileset" getter="get_tileset"> The assigned [TileSet]. </member> </members> <signals> <signal name="changed"> <description> Emitted when the [TileSet] of this TileMap changes. </description> </signal> </signals> <constants> <constant name="VISIBILITY_MODE_DEFAULT" value="0" enum="VisibilityMode"> Use the debug settings to determine visibility. </constant> <constant name="VISIBILITY_MODE_FORCE_HIDE" value="2" enum="VisibilityMode"> Always hide. </constant> <constant name="VISIBILITY_MODE_FORCE_SHOW" value="1" enum="VisibilityMode"> Always show. </constant> </constants> </class>