Merge pull request #106290 from smix8/navmanager

Make NavigationServer backend engine selectable
This commit is contained in:
Thaddeus Crews
2025-10-30 10:46:00 -05:00
13 changed files with 439 additions and 54 deletions

View File

@@ -41,13 +41,14 @@
#include "editor/navigation_region_2d_editor_plugin.h"
#endif
NavigationServer2D *new_navigation_server_2d() {
static NavigationServer2D *_createGodotNavigation2DCallback() {
return memnew(GodotNavigationServer2D);
}
void initialize_navigation_2d_module(ModuleInitializationLevel p_level) {
if (p_level == MODULE_INITIALIZATION_LEVEL_SERVERS) {
NavigationServer2DManager::set_default_server(new_navigation_server_2d);
NavigationServer2DManager::get_singleton()->register_server("GodotNavigation2D", callable_mp_static(_createGodotNavigation2DCallback));
NavigationServer2DManager::get_singleton()->set_default_server("GodotNavigation2D");
}
#ifdef TOOLS_ENABLED

View File

@@ -49,13 +49,14 @@
NavigationMeshGenerator *_nav_mesh_generator = nullptr;
#endif // DISABLE_DEPRECATED
NavigationServer3D *new_navigation_server_3d() {
static NavigationServer3D *_createGodotNavigation3DCallback() {
return memnew(GodotNavigationServer3D);
}
void initialize_navigation_3d_module(ModuleInitializationLevel p_level) {
if (p_level == MODULE_INITIALIZATION_LEVEL_SERVERS) {
NavigationServer3DManager::set_default_server(new_navigation_server_3d);
NavigationServer3DManager::get_singleton()->register_server("GodotNavigation3D", callable_mp_static(_createGodotNavigation3DCallback));
NavigationServer3DManager::get_singleton()->set_default_server("GodotNavigation3D");
#ifndef DISABLE_DEPRECATED
_nav_mesh_generator = memnew(NavigationMeshGenerator);