2
0
Эх сурвалжийг харах

Merge pull request #3607 from 29jm/patch-1

Added get_cellv() method to TileMap
Rémi Verschelde 9 жил өмнө
parent
commit
4a39202c8d

+ 9 - 0
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>

+ 5 - 0
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);
 

+ 1 - 0
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;