diff options
Diffstat (limited to 'modules/navigation/nav_map.cpp')
-rw-r--r-- | modules/navigation/nav_map.cpp | 12 |
1 files changed, 11 insertions, 1 deletions
diff --git a/modules/navigation/nav_map.cpp b/modules/navigation/nav_map.cpp index 57d702e846..37e0f232e5 100644 --- a/modules/navigation/nav_map.cpp +++ b/modules/navigation/nav_map.cpp @@ -69,6 +69,14 @@ void NavMap::set_cell_size(real_t p_cell_size) { regenerate_polygons = true; } +void NavMap::set_use_edge_connections(bool p_enabled) { + if (use_edge_connections == p_enabled) { + return; + } + use_edge_connections = p_enabled; + regenerate_links = true; +} + void NavMap::set_edge_connection_margin(real_t p_edge_connection_margin) { if (edge_connection_margin == p_edge_connection_margin) { return; @@ -751,7 +759,9 @@ void NavMap::sync() { _new_pm_edge_merge_count += 1; } else { CRASH_COND_MSG(E.value.size() != 1, vformat("Number of connection != 1. Found: %d", E.value.size())); - free_edges.push_back(E.value[0]); + if (use_edge_connections && E.value[0].polygon->owner->get_use_edge_connections()) { + free_edges.push_back(E.value[0]); + } } } |