Improve navigation map synchronisation error msgs

Improves navigation map synchronisation error msgs related to mismatch of cell sizes.
This commit is contained in:
smix8 2023-05-31 23:10:30 +02:00
parent c3e512eda4
commit 7f2417135f
2 changed files with 5 additions and 1 deletions

View File

@ -742,7 +742,7 @@ void NavMap::sync() {
connections[ek].push_back(new_connection);
} else {
// The edge is already connected with another edge, skip.
ERR_PRINT_ONCE("Attempted to merge a navigation mesh triangle edge with another already-merged edge. This happens when the current `cell_size` is different from the one used to generate the navigation mesh. This will cause navigation problems.");
ERR_PRINT_ONCE("Navigation map synchronization error. Attempted to merge a navigation mesh polygon edge with another already-merged edge. This is usually caused by crossing edges, overlapping polygons, or a mismatch of the NavigationMesh / NavigationPolygon baked 'cell_size' and navigation map 'cell_size'.");
}
}
}

View File

@ -105,6 +105,10 @@ void NavRegion::update_polygons() {
return;
}
if (!Math::is_equal_approx(double(map->get_cell_size()), double(mesh->get_cell_size()))) {
ERR_PRINT_ONCE("Navigation map synchronization error. Attempted to update a navigation region with a navigation mesh that uses a different `cell_size` than the `cell_size` set on the navigation map.");
}
Vector<Vector3> vertices = mesh->get_vertices();
int len = vertices.size();
if (len == 0) {