Make NavigationServer backend engine selectable
Adds engine backend selection for NavigationServers, aka allows to swap navigation module for other backend implementations.
This commit is contained in:
@ -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
|
||||
|
||||
@ -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);
|
||||
|
||||
Reference in New Issue
Block a user