2017-09-13 04:42:36 +08:00
<?xml version="1.0" encoding="UTF-8" ?>
2019-04-01 18:33:56 +08:00
<class name= "TileMap" inherits= "Node2D" category= "Core" version= "3.2" >
2017-09-13 04:42:36 +08:00
<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 (textures plus optional collision, navigation, and/or occluder shapes) which are used to create grid-based maps.
</description>
<tutorials >
2018-11-05 15:46:27 +08:00
<link > https://docs.godotengine.org/en/latest/tutorials/2d/using_tilemaps.html</link>
2017-09-13 04:42:36 +08:00
</tutorials>
<methods >
<method name= "clear" >
<return type= "void" >
</return>
<description >
2018-05-13 08:58:45 +08:00
Clears all cells.
2017-09-13 04:42:36 +08:00
</description>
</method>
2018-02-24 13:56:48 +08:00
<method name= "fix_invalid_tiles" >
<return type= "void" >
</return>
<description >
2018-05-13 08:58:45 +08:00
Clears cells that do not exist in the tileset.
2018-02-24 13:56:48 +08:00
</description>
</method>
2017-09-13 04:42:36 +08:00
<method name= "get_cell" qualifiers= "const" >
<return type= "int" >
</return>
<argument index= "0" name= "x" type= "int" >
</argument>
<argument index= "1" name= "y" type= "int" >
</argument>
<description >
2019-02-13 12:44:39 +08:00
Returns the tile index of the given cell. If no tile exists in the cell, returns [constant INVALID_CELL].
2017-09-13 04:42:36 +08:00
</description>
</method>
2018-12-27 18:10:09 +08:00
<method name= "get_cell_autotile_coord" qualifiers= "const" >
<return type= "Vector2" >
</return>
<argument index= "0" name= "x" type= "int" >
</argument>
<argument index= "1" name= "y" type= "int" >
</argument>
<description >
</description>
</method>
2017-09-13 04:42:36 +08:00
<method name= "get_cellv" qualifiers= "const" >
<return type= "int" >
</return>
2017-09-10 21:37:49 +08:00
<argument index= "0" name= "position" type= "Vector2" >
2017-09-13 04:42:36 +08:00
</argument>
<description >
2019-02-13 12:44:39 +08:00
Returns the tile index of the cell given by a Vector2. If no tile exists in the cell, returns [constant INVALID_CELL].
2017-09-13 04:42:36 +08:00
</description>
</method>
<method name= "get_collision_layer_bit" qualifiers= "const" >
<return type= "bool" >
</return>
<argument index= "0" name= "bit" type= "int" >
</argument>
<description >
2018-05-28 20:53:15 +08:00
Returns [code]true[/code] if the given collision layer bit is set.
2017-09-13 04:42:36 +08:00
</description>
</method>
<method name= "get_collision_mask_bit" qualifiers= "const" >
<return type= "bool" >
</return>
<argument index= "0" name= "bit" type= "int" >
</argument>
<description >
2018-05-28 20:53:15 +08:00
Returns [code]true[/code] if the given collision mask bit is set.
2017-09-13 04:42:36 +08:00
</description>
</method>
<method name= "get_used_cells" qualifiers= "const" >
<return type= "Array" >
</return>
<description >
2018-08-04 02:38:31 +08:00
Returns a [Vector2] array with the positions of all cells containing a tile from the tileset (i.e. a tile index different from [code]-1[/code]).
2017-09-13 04:42:36 +08:00
</description>
</method>
<method name= "get_used_cells_by_id" qualifiers= "const" >
<return type= "Array" >
</return>
<argument index= "0" name= "id" type= "int" >
</argument>
<description >
2019-06-22 07:04:47 +08:00
Returns an array of all cells with the given tile [code]id[/code].
2017-09-13 04:42:36 +08:00
</description>
</method>
<method name= "get_used_rect" >
<return type= "Rect2" >
</return>
<description >
2018-05-28 20:53:15 +08:00
Returns a rectangle enclosing the used (non-empty) tiles of the map.
2017-09-13 04:42:36 +08:00
</description>
</method>
<method name= "is_cell_transposed" qualifiers= "const" >
<return type= "bool" >
</return>
<argument index= "0" name= "x" type= "int" >
</argument>
<argument index= "1" name= "y" type= "int" >
</argument>
<description >
2019-06-22 07:04:47 +08:00
Returns [code]true[/code] if the given cell is transposed, i.e. the X and Y axes are swapped.
2017-09-13 04:42:36 +08:00
</description>
</method>
<method name= "is_cell_x_flipped" qualifiers= "const" >
<return type= "bool" >
</return>
<argument index= "0" name= "x" type= "int" >
</argument>
<argument index= "1" name= "y" type= "int" >
</argument>
<description >
2019-06-22 07:04:47 +08:00
Returns [code]true[/code] if the given cell is flipped in the X axis.
2017-09-13 04:42:36 +08:00
</description>
</method>
<method name= "is_cell_y_flipped" qualifiers= "const" >
<return type= "bool" >
</return>
<argument index= "0" name= "x" type= "int" >
</argument>
<argument index= "1" name= "y" type= "int" >
</argument>
<description >
2019-06-22 07:04:47 +08:00
Returns [code]true[/code] if the given cell is flipped in the Y axis.
2017-09-13 04:42:36 +08:00
</description>
</method>
<method name= "map_to_world" qualifiers= "const" >
<return type= "Vector2" >
</return>
2017-09-10 21:37:49 +08:00
<argument index= "0" name= "map_position" type= "Vector2" >
2017-09-13 04:42:36 +08:00
</argument>
<argument index= "1" name= "ignore_half_ofs" type= "bool" default= "false" >
</argument>
<description >
2018-05-28 20:53:15 +08:00
Returns the global position corresponding to the given tilemap (grid-based) coordinates.
2018-05-13 08:58:45 +08:00
Optionally, the tilemap's half offset can be ignored.
2017-09-13 04:42:36 +08:00
</description>
</method>
<method name= "set_cell" >
<return type= "void" >
</return>
<argument index= "0" name= "x" type= "int" >
</argument>
<argument index= "1" name= "y" type= "int" >
</argument>
<argument index= "2" name= "tile" type= "int" >
</argument>
<argument index= "3" name= "flip_x" type= "bool" default= "false" >
</argument>
<argument index= "4" name= "flip_y" type= "bool" default= "false" >
</argument>
<argument index= "5" name= "transpose" type= "bool" default= "false" >
</argument>
2017-11-24 16:16:27 +08:00
<argument index= "6" name= "autotile_coord" type= "Vector2" default= "Vector2( 0, 0 )" >
</argument>
2017-09-13 04:42:36 +08:00
<description >
2018-05-13 08:58:45 +08:00
Sets the tile index for the cell given by a Vector2.
An index of [code]-1[/code] clears the cell.
Optionally, the tile can also be flipped, transposed, or given autotile coordinates.
2019-06-22 07:04:47 +08:00
[b]Note:[/b] Data such as navigation polygons and collision shapes are not immediately updated for performance reasons.
2018-07-22 21:26:14 +08:00
If you need these to be immediately updated, you can call [method update_dirty_quadrants].
2019-04-05 21:27:38 +08:00
Overriding this method also overrides it internally, allowing custom logic to be implemented when tiles are placed/removed:
[codeblock]
func set_cell(x, y, tile, flip_x, flip_y, transpose, autotile_coord)
# Write your custom logic here.
# To call the default method:
.set_cell(x, y, tile, flip_x, flip_y, transpose, autotile_coord)
2019-04-15 20:49:41 +08:00
[/codeblock]
2017-09-13 04:42:36 +08:00
</description>
</method>
<method name= "set_cellv" >
<return type= "void" >
</return>
2017-09-10 21:37:49 +08:00
<argument index= "0" name= "position" type= "Vector2" >
2017-09-13 04:42:36 +08:00
</argument>
<argument index= "1" name= "tile" type= "int" >
</argument>
<argument index= "2" name= "flip_x" type= "bool" default= "false" >
</argument>
<argument index= "3" name= "flip_y" type= "bool" default= "false" >
</argument>
<argument index= "4" name= "transpose" type= "bool" default= "false" >
</argument>
<description >
2018-05-13 08:58:45 +08:00
Sets the tile index for the given cell.
An index of [code]-1[/code] clears the cell.
Optionally, the tile can also be flipped or transposed.
2019-06-22 07:04:47 +08:00
[b]Note:[/b] Data such as navigation polygons and collision shapes are not immediately updated for performance reasons.
2018-07-22 21:26:14 +08:00
If you need these to be immediately updated, you can call [method update_dirty_quadrants].
2017-09-13 04:42:36 +08:00
</description>
</method>
<method name= "set_collision_layer_bit" >
<return type= "void" >
</return>
<argument index= "0" name= "bit" type= "int" >
</argument>
<argument index= "1" name= "value" type= "bool" >
</argument>
<description >
2018-05-13 08:58:45 +08:00
Sets the given collision layer bit.
2017-09-13 04:42:36 +08:00
</description>
</method>
<method name= "set_collision_mask_bit" >
<return type= "void" >
</return>
<argument index= "0" name= "bit" type= "int" >
</argument>
<argument index= "1" name= "value" type= "bool" >
</argument>
<description >
2018-05-28 20:53:15 +08:00
Sets the given collision mask bit.
2017-09-13 04:42:36 +08:00
</description>
</method>
2017-12-17 03:34:16 +08:00
<method name= "update_bitmask_area" >
<return type= "void" >
</return>
2018-01-03 20:45:03 +08:00
<argument index= "0" name= "position" type= "Vector2" >
2017-12-17 03:34:16 +08:00
</argument>
<description >
2019-06-22 07:04:47 +08:00
Applies autotiling rules to the cell (and its adjacent cells) referenced by its grid-based X and Y coordinates.
2017-12-17 03:34:16 +08:00
</description>
</method>
<method name= "update_bitmask_region" >
<return type= "void" >
</return>
<argument index= "0" name= "start" type= "Vector2" default= "Vector2( 0, 0 )" >
</argument>
<argument index= "1" name= "end" type= "Vector2" default= "Vector2( 0, 0 )" >
</argument>
<description >
2019-06-22 07:04:47 +08:00
Applies autotiling rules to the cells in the given region (specified by grid-based X and Y coordinates).
2018-05-13 08:58:45 +08:00
Calling with invalid (or missing) parameters applies autotiling rules for the entire tilemap.
2017-12-17 03:34:16 +08:00
</description>
</method>
2018-07-22 21:26:14 +08:00
<method name= "update_dirty_quadrants" >
<return type= "void" >
</return>
<description >
Updates the tile map's quadrants, allowing things such as navigation and collision shapes to be immediately used if modified.
</description>
</method>
2017-09-13 04:42:36 +08:00
<method name= "world_to_map" qualifiers= "const" >
<return type= "Vector2" >
</return>
2017-09-10 21:37:49 +08:00
<argument index= "0" name= "world_position" type= "Vector2" >
2017-09-13 04:42:36 +08:00
</argument>
<description >
2019-01-19 22:23:49 +08:00
Returns the tilemap (grid-based) coordinates corresponding to the given local position.
2017-09-13 04:42:36 +08:00
</description>
</method>
</methods>
<members >
2019-06-29 18:38:01 +08:00
<member name= "cell_clip_uv" type= "bool" setter= "set_clip_uv" getter= "get_clip_uv" default= "false" >
2017-11-13 16:24:36 +08:00
</member>
2019-06-29 18:38:01 +08:00
<member name= "cell_custom_transform" type= "Transform2D" setter= "set_custom_transform" getter= "get_custom_transform" default= "Transform2D( 1, 0, 0, 1, 0, 0 )" >
2017-09-13 04:42:36 +08:00
The custom [Transform2D] to be applied to the TileMap's cells.
</member>
2019-06-29 18:38:01 +08:00
<member name= "cell_half_offset" type= "int" setter= "set_half_offset" getter= "get_half_offset" enum= "TileMap.HalfOffset" default= "2" >
2019-06-22 07:04:47 +08:00
Amount to offset alternating tiles. See [enum HalfOffset] for possible values. Default value: [code]HALF_OFFSET_DISABLED[/code].
2017-09-13 04:42:36 +08:00
</member>
2019-06-29 18:38:01 +08:00
<member name= "cell_quadrant_size" type= "int" setter= "set_quadrant_size" getter= "get_quadrant_size" default= "16" >
2018-09-23 05:50:45 +08:00
The TileMap's quadrant size. Optimizes drawing by batching, using chunks of this size. Default value: 16.
2017-09-13 04:42:36 +08:00
</member>
2019-06-29 18:38:01 +08:00
<member name= "cell_size" type= "Vector2" setter= "set_cell_size" getter= "get_cell_size" default= "Vector2( 64, 64 )" >
2017-09-13 04:42:36 +08:00
The TileMap's cell size.
</member>
2019-06-29 18:38:01 +08:00
<member name= "cell_tile_origin" type= "int" setter= "set_tile_origin" getter= "get_tile_origin" enum= "TileMap.TileOrigin" default= "0" >
2019-06-22 07:04:47 +08:00
Position for tile origin. See [enum TileOrigin] for possible values. Default value: [code]TILE_ORIGIN_TOP_LEFT[/code].
2017-09-13 04:42:36 +08:00
</member>
2019-06-29 18:38:01 +08:00
<member name= "cell_y_sort" type= "bool" setter= "set_y_sort_mode" getter= "is_y_sort_mode_enabled" default= "false" >
2018-12-20 20:46:54 +08:00
If [code]true[/code], the TileMap's children will be drawn in order of their Y coordinate. Default value: [code]false[/code].
2017-09-13 04:42:36 +08:00
</member>
2019-06-29 18:38:01 +08:00
<member name= "collision_bounce" type= "float" setter= "set_collision_bounce" getter= "get_collision_bounce" default= "0.0" >
2017-09-13 04:42:36 +08:00
Bounce value for static body collisions (see [code]collision_use_kinematic[/code]). Default value: 0.
</member>
2019-06-29 18:38:01 +08:00
<member name= "collision_friction" type= "float" setter= "set_collision_friction" getter= "get_collision_friction" default= "1.0" >
2017-09-13 04:42:36 +08:00
Friction value for static body collisions (see [code]collision_use_kinematic[/code]). Default value: 1.
</member>
2019-06-29 18:38:01 +08:00
<member name= "collision_layer" type= "int" setter= "set_collision_layer" getter= "get_collision_layer" default= "1" >
2017-09-13 04:42:36 +08:00
The collision layer(s) for all colliders in the TileMap.
</member>
2019-06-29 18:38:01 +08:00
<member name= "collision_mask" type= "int" setter= "set_collision_mask" getter= "get_collision_mask" default= "1" >
2017-09-13 04:42:36 +08:00
The collision mask(s) for all colliders in the TileMap.
</member>
2019-06-29 18:38:01 +08:00
<member name= "collision_use_kinematic" type= "bool" setter= "set_collision_use_kinematic" getter= "get_collision_use_kinematic" default= "false" >
2018-12-20 20:46:54 +08:00
If [code]true[/code], TileMap collisions will be handled as a kinematic body. If [code]false[/code], collisions will be handled as static body. Default value: [code]false[/code].
2017-09-13 04:42:36 +08:00
</member>
2019-06-29 18:38:01 +08:00
<member name= "mode" type= "int" setter= "set_mode" getter= "get_mode" enum= "TileMap.Mode" default= "0" >
2019-06-22 07:04:47 +08:00
The TileMap orientation mode. See [enum Mode] for possible values. Default value: [code]MODE_SQUARE[/code].
2017-09-13 04:42:36 +08:00
</member>
2019-06-29 18:38:01 +08:00
<member name= "occluder_light_mask" type= "int" setter= "set_occluder_light_mask" getter= "get_occluder_light_mask" default= "1" >
2018-09-23 05:50:45 +08:00
The light mask assigned to all light occluders in the TileMap. The TileSet's light occluders will cast shadows only from Light2D(s) that have the same light mask(s).
2017-09-13 04:42:36 +08:00
</member>
2019-06-29 18:38:01 +08:00
<member name= "tile_set" type= "TileSet" setter= "set_tileset" getter= "get_tileset" default= "null" >
2017-09-13 04:42:36 +08:00
The assigned [TileSet].
</member>
</members>
<signals >
<signal name= "settings_changed" >
<description >
Emitted when a tilemap setting has changed.
</description>
</signal>
</signals>
<constants >
2017-11-25 06:16:30 +08:00
<constant name= "INVALID_CELL" value= "-1" >
2017-09-13 04:42:36 +08:00
Returned when a cell doesn't exist.
</constant>
2017-11-25 06:16:30 +08:00
<constant name= "MODE_SQUARE" value= "0" enum= "Mode" >
2017-09-13 04:42:36 +08:00
Orthogonal orientation mode.
</constant>
2017-11-25 06:16:30 +08:00
<constant name= "MODE_ISOMETRIC" value= "1" enum= "Mode" >
2017-09-13 04:42:36 +08:00
Isometric orientation mode.
</constant>
2017-11-25 06:16:30 +08:00
<constant name= "MODE_CUSTOM" value= "2" enum= "Mode" >
2017-09-13 04:42:36 +08:00
Custom orientation mode.
</constant>
2017-11-25 06:16:30 +08:00
<constant name= "HALF_OFFSET_X" value= "0" enum= "HalfOffset" >
2017-09-13 04:42:36 +08:00
Half offset on the X coordinate.
</constant>
2017-11-25 06:16:30 +08:00
<constant name= "HALF_OFFSET_Y" value= "1" enum= "HalfOffset" >
2017-09-13 04:42:36 +08:00
Half offset on the Y coordinate.
</constant>
2017-11-25 06:16:30 +08:00
<constant name= "HALF_OFFSET_DISABLED" value= "2" enum= "HalfOffset" >
2017-09-13 04:42:36 +08:00
Half offset disabled.
</constant>
2019-03-24 07:59:24 +08:00
<constant name= "HALF_OFFSET_NEGATIVE_X" value= "3" enum= "HalfOffset" >
Half offset on the X coordinate (negative).
</constant>
<constant name= "HALF_OFFSET_NEGATIVE_Y" value= "4" enum= "HalfOffset" >
Half offset on the Y coordinate (negative).
</constant>
2017-11-25 06:16:30 +08:00
<constant name= "TILE_ORIGIN_TOP_LEFT" value= "0" enum= "TileOrigin" >
2017-09-13 04:42:36 +08:00
Tile origin at its top-left corner.
</constant>
2017-11-25 06:16:30 +08:00
<constant name= "TILE_ORIGIN_CENTER" value= "1" enum= "TileOrigin" >
2017-09-13 04:42:36 +08:00
Tile origin at its center.
</constant>
2017-11-25 06:16:30 +08:00
<constant name= "TILE_ORIGIN_BOTTOM_LEFT" value= "2" enum= "TileOrigin" >
2018-04-17 22:18:57 +08:00
Tile origin at its bottom-left corner.
2017-09-13 04:42:36 +08:00
</constant>
</constants>
</class>