Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Update TileMap to use Vector2i #39976

Merged
merged 1 commit into from
May 13, 2021
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
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