Skip to content

Commit

Permalink
Merge pull request #39976 from aaronfranke/tilemap-vec2i
Browse files Browse the repository at this point in the history
Update TileMap to use Vector2i
  • Loading branch information
akien-mga authored May 13, 2021
2 parents d0c2ac8 + 75e3f6b commit a3dd18b
Show file tree
Hide file tree
Showing 4 changed files with 11 additions and 5 deletions.
5 changes: 4 additions & 1 deletion doc/classes/TileMap.xml
Original file line number Diff line number Diff line change
Expand Up @@ -90,9 +90,10 @@
<method name="map_to_world" qualifiers="const">
<return type="Vector2">
</return>
<argument index="0" name="map_position" type="Vector2">
<argument index="0" name="map_position" type="Vector2i">
</argument>
<description>
Returns the local position corresponding to the given tilemap (grid-based) coordinates.
</description>
</method>
<method name="set_cell">
Expand All @@ -107,6 +108,7 @@
<argument index="3" name="alternative_tile" type="int" default="-1">
</argument>
<description>
Sets the tile index for the cell given by a Vector2i.
</description>
</method>
<method name="update_dirty_quadrants">
Expand Down Expand Up @@ -137,6 +139,7 @@
<signals>
<signal name="changed">
<description>
Emitted when the [TileSet] of this TileMap changes.
</description>
</signal>
</signals>
Expand Down
3 changes: 3 additions & 0 deletions doc/classes/TileSet.xml
Original file line number Diff line number Diff line change
Expand Up @@ -298,12 +298,15 @@
</members>
<constants>
<constant name="TILE_SHAPE_SQUARE" value="0" enum="TileShape">
Orthogonal orientation mode.
</constant>
<constant name="TILE_SHAPE_ISOMETRIC" value="1" enum="TileShape">
Isometric orientation mode.
</constant>
<constant name="TILE_SHAPE_HALF_OFFSET_SQUARE" value="2" enum="TileShape">
</constant>
<constant name="TILE_SHAPE_HEXAGON" value="3" enum="TileShape">
Hexagon orientation mode.
</constant>
<constant name="TILE_LAYOUT_STACKED" value="0" enum="TileLayout">
</constant>
Expand Down
6 changes: 3 additions & 3 deletions scene/2d/tile_map.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -902,7 +902,7 @@ void TileMap::_get_property_list(List<PropertyInfo> *p_list) const {
p_list->push_back(p);
}

Vector2 TileMap::map_to_world(const Vector2 &p_pos) const {
Vector2 TileMap::map_to_world(const Vector2i &p_pos) const {
// SHOULD RETURN THE CENTER OF THE TILE
ERR_FAIL_COND_V(!tile_set.is_valid(), Vector2());

Expand Down Expand Up @@ -980,7 +980,7 @@ Vector2 TileMap::map_to_world(const Vector2 &p_pos) const {
}

Vector2i TileMap::world_to_map(const Vector2 &p_pos) const {
ERR_FAIL_COND_V(!tile_set.is_valid(), Vector2());
ERR_FAIL_COND_V(!tile_set.is_valid(), Vector2i());

Vector2 ret = p_pos;
ret /= tile_set->get_tile_size();
Expand Down Expand Up @@ -1143,7 +1143,7 @@ Vector2i TileMap::world_to_map(const Vector2 &p_pos) const {
} else {
ret = (ret + Vector2(0.00005, 0.00005)).floor();
}
return ret;
return Vector2i(ret);
}

bool TileMap::is_existing_neighbor(TileSet::CellNeighbor p_cell_neighbor) const {
Expand Down
2 changes: 1 addition & 1 deletion scene/2d/tile_map.h
Original file line number Diff line number Diff line change
Expand Up @@ -264,7 +264,7 @@ class TileMap : public Node2D {

void update_dirty_quadrants();

Vector2 map_to_world(const Vector2 &p_pos) const;
Vector2 map_to_world(const Vector2i &p_pos) const;
Vector2i world_to_map(const Vector2 &p_pos) const;

bool is_existing_neighbor(TileSet::CellNeighbor p_cell_neighbor) const;
Expand Down

0 comments on commit a3dd18b

Please sign in to comment.