Skip to content

Commit

Permalink
Merge pull request #49075 from nekomatata/tilemap-collision-debug-fix…
Browse files Browse the repository at this point in the history
…-3.x

Fix logic for showing tilemap debug collision
  • Loading branch information
akien-mga authored May 25, 2021
2 parents 998b6b1 + 114da55 commit 00abdaf
Show file tree
Hide file tree
Showing 2 changed files with 11 additions and 4 deletions.
2 changes: 1 addition & 1 deletion doc/classes/TileMap.xml
Original file line number Diff line number Diff line change
Expand Up @@ -327,7 +327,7 @@
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).
</member>
<member name="show_collision" type="bool" setter="set_show_collision" getter="is_show_collision_enabled" default="false">
If [code]true[/code], collision shapes are shown in the editor and at run-time. Requires [b]Visible Collision Shapes[/b] to be enabled in the [b]Debug[/b] menu for collision shapes to be visible at run-time.
If [code]true[/code], collision shapes are visible in the editor. Doesn't affect collision shapes visibility at runtime. To show collision shapes at runtime, enable [b]Visible Collision Shapes[/b] in the [b]Debug[/b] menu instead.
</member>
<member name="tile_set" type="TileSet" setter="set_tileset" getter="get_tileset">
The assigned [TileSet].
Expand Down
13 changes: 10 additions & 3 deletions scene/2d/tile_map.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -328,10 +328,17 @@ void TileMap::update_dirty_quadrants() {
Color debug_collision_color;
Color debug_navigation_color;

bool debug_shapes = show_collision && (Engine::get_singleton()->is_editor_hint() || (st && st->is_debugging_collisions_hint()));
bool debug_shapes = false;
if (st) {
if (Engine::get_singleton()->is_editor_hint()) {
debug_shapes = show_collision;
} else {
debug_shapes = st->is_debugging_collisions_hint();
}

if (debug_shapes) {
debug_collision_color = st->get_debug_collisions_color();
if (debug_shapes) {
debug_collision_color = st->get_debug_collisions_color();
}
}

bool debug_navigation = st && st->is_debugging_navigation_hint();
Expand Down

0 comments on commit 00abdaf

Please sign in to comment.