diff options
-rw-r--r-- | doc/base/classes.xml | 9 | ||||
-rw-r--r-- | scene/2d/tile_map.cpp | 5 | ||||
-rw-r--r-- | scene/2d/tile_map.h | 1 |
3 files changed, 15 insertions, 0 deletions
diff --git a/doc/base/classes.xml b/doc/base/classes.xml index 13bc5a91e6..98fc4dd085 100644 --- a/doc/base/classes.xml +++ b/doc/base/classes.xml @@ -36301,6 +36301,15 @@ This method controls whether the position between two cached points is interpola Return the tile index of the referenced cell. </description> </method> + <method name="get_cellv" qualifiers="const"> + <return type="int"> + </return> + <argument index="0" name="pos" type="Vector2"> + </argument> + <description> + Return the tile index of the cell referenced by a Vector2. + </description> + </method> <method name="is_cell_x_flipped" qualifiers="const"> <return type="bool"> </return> diff --git a/scene/2d/tile_map.cpp b/scene/2d/tile_map.cpp index 179d1f451a..5c298e96f6 100644 --- a/scene/2d/tile_map.cpp +++ b/scene/2d/tile_map.cpp @@ -694,6 +694,10 @@ void TileMap::set_cell(int p_x,int p_y,int p_tile,bool p_flip_x,bool p_flip_y,bo } +int TileMap::get_cellv(const Vector2& p_pos) const { + return get_cell(p_pos.x,p_pos.y); +} + int TileMap::get_cell(int p_x,int p_y) const { PosKey pk(p_x,p_y); @@ -1198,6 +1202,7 @@ void TileMap::_bind_methods() { ObjectTypeDB::bind_method(_MD("set_cell","x","y","tile","flip_x","flip_y","transpose"),&TileMap::set_cell,DEFVAL(false),DEFVAL(false),DEFVAL(false)); ObjectTypeDB::bind_method(_MD("set_cellv","pos","tile","flip_x","flip_y","transpose"),&TileMap::set_cellv,DEFVAL(false),DEFVAL(false),DEFVAL(false)); ObjectTypeDB::bind_method(_MD("get_cell","x","y"),&TileMap::get_cell); + ObjectTypeDB::bind_method(_MD("get_cellv","pos"),&TileMap::get_cellv); ObjectTypeDB::bind_method(_MD("is_cell_x_flipped","x","y"),&TileMap::is_cell_x_flipped); ObjectTypeDB::bind_method(_MD("is_cell_y_flipped","x","y"),&TileMap::is_cell_y_flipped); diff --git a/scene/2d/tile_map.h b/scene/2d/tile_map.h index 14cb52b736..cec5ac0a1b 100644 --- a/scene/2d/tile_map.h +++ b/scene/2d/tile_map.h @@ -211,6 +211,7 @@ public: bool is_cell_transposed(int p_x,int p_y) const; void set_cellv(const Vector2& p_pos,int p_tile,bool p_flip_x=false,bool p_flip_y=false,bool p_transpose=false); + int get_cellv(const Vector2& p_pos) const; Rect2 get_item_rect() const; |