mirror of
https://github.com/Relintai/pandemonium_engine.git
synced 2025-01-11 13:21:10 +01:00
Added in NavigationMeshGeneratorDummy and set up initialization.
This commit is contained in:
parent
9a35d6c7d3
commit
0a3d1d6cf5
@ -63,6 +63,8 @@
|
||||
#include "scene/register_scene_types.h"
|
||||
#include "scene/resources/packed_scene.h"
|
||||
#include "servers/audio_server.h"
|
||||
#include "servers/navigation/navigation_mesh_generator.h"
|
||||
#include "servers/navigation/navigation_mesh_generator_dummy.h"
|
||||
#include "servers/navigation_2d_server.h"
|
||||
#include "servers/navigation_server.h"
|
||||
#include "servers/physics_2d_server.h"
|
||||
@ -113,6 +115,8 @@ static AudioServer *audio_server = nullptr;
|
||||
static PhysicsServer *physics_server = nullptr;
|
||||
static Physics2DServer *physics_2d_server = nullptr;
|
||||
static RenderingServerCallbacks *rendering_server_callbacks = nullptr;
|
||||
static NavigationMeshGeneratorManager *navigation_mesh_generator_manager = nullptr;
|
||||
static NavigationMeshGenerator *navigation_mesh_generator = nullptr;
|
||||
static NavigationServer *navigation_server = nullptr;
|
||||
static Navigation2DServer *navigation_2d_server = nullptr;
|
||||
|
||||
@ -219,6 +223,36 @@ void finalize_physics() {
|
||||
memdelete(physics_2d_server);
|
||||
}
|
||||
|
||||
void initialize_navigation_mesh_generator() {
|
||||
// Init chosen NavigationMeshGenerator
|
||||
const String &server_name = GLOBAL_GET(NavigationMeshGeneratorManager::setting_property_name);
|
||||
navigation_mesh_generator = NavigationMeshGeneratorManager::get_singleton()->new_server(server_name);
|
||||
|
||||
// Fall back to default if not found
|
||||
if (!navigation_mesh_generator) {
|
||||
// Navigation server not found, so use the default.
|
||||
navigation_mesh_generator = NavigationMeshGeneratorManager::get_singleton()->new_default_server();
|
||||
}
|
||||
|
||||
// Fall back to dummy if no default server has been registered.
|
||||
if (!navigation_mesh_generator) {
|
||||
ERR_PRINT("No NavigationMeshGenerator implementation has been registered! Falling back to a dummy implementation: navigation mesh baking features will be unavailable.");
|
||||
navigation_mesh_generator = memnew(NavigationMeshGeneratorDummy);
|
||||
}
|
||||
|
||||
if (navigation_mesh_generator) {
|
||||
// need to register singleton earlier so modules / extensions / addons can use it on SCENE / SERVER init level
|
||||
Engine::get_singleton()->add_singleton(Engine::Singleton("NavigationMeshGenerator", NavigationMeshGenerator::get_singleton()));
|
||||
}
|
||||
|
||||
ERR_FAIL_NULL_MSG(navigation_mesh_generator, "Failed to initialize NavigationMeshGenerator.");
|
||||
}
|
||||
|
||||
void finalize_navigation_mesh_generator() {
|
||||
memdelete(navigation_mesh_generator);
|
||||
navigation_mesh_generator = nullptr;
|
||||
}
|
||||
|
||||
void initialize_navigation_server() {
|
||||
ERR_FAIL_COND(navigation_server != nullptr);
|
||||
ERR_FAIL_COND(navigation_2d_server != nullptr);
|
||||
@ -434,6 +468,9 @@ Error Main::setup(const char *execpath, int argc, char *argv[], bool p_second_ph
|
||||
register_core_settings(); //here globals is present
|
||||
|
||||
translation_server = memnew(TranslationServer);
|
||||
|
||||
navigation_mesh_generator_manager = memnew(NavigationMeshGeneratorManager);
|
||||
|
||||
performance = memnew(Performance);
|
||||
ClassDB::register_class<Performance>();
|
||||
engine->add_singleton(Engine::Singleton("Performance", performance));
|
||||
@ -1334,6 +1371,9 @@ error:
|
||||
if (translation_server) {
|
||||
memdelete(translation_server);
|
||||
}
|
||||
if (navigation_mesh_generator_manager) {
|
||||
memdelete(navigation_mesh_generator_manager);
|
||||
}
|
||||
if (globals) {
|
||||
memdelete(globals);
|
||||
}
|
||||
@ -1592,6 +1632,7 @@ Error Main::setup2(Thread::ID p_main_tid_override) {
|
||||
}
|
||||
|
||||
initialize_physics();
|
||||
initialize_navigation_mesh_generator();
|
||||
initialize_navigation_server();
|
||||
register_server_singletons();
|
||||
|
||||
@ -2346,6 +2387,8 @@ bool Main::iteration() {
|
||||
rendering_server_callbacks->flush();
|
||||
message_queue->flush();
|
||||
|
||||
NavigationMeshGenerator::get_singleton()->process();
|
||||
|
||||
RenderingServer::get_singleton()->sync(); //sync if still drawing from previous frames.
|
||||
|
||||
if (OS::get_singleton()->can_draw() && RenderingServer::get_singleton()->is_render_loop_enabled()) {
|
||||
@ -2526,6 +2569,7 @@ void Main::cleanup(bool p_force) {
|
||||
}
|
||||
|
||||
finalize_navigation_server();
|
||||
finalize_navigation_mesh_generator();
|
||||
OS::get_singleton()->finalize();
|
||||
finalize_physics();
|
||||
|
||||
@ -2547,6 +2591,9 @@ void Main::cleanup(bool p_force) {
|
||||
if (translation_server) {
|
||||
memdelete(translation_server);
|
||||
}
|
||||
if (navigation_mesh_generator_manager) {
|
||||
memdelete(navigation_mesh_generator_manager);
|
||||
}
|
||||
if (globals) {
|
||||
memdelete(globals);
|
||||
}
|
||||
|
@ -33,7 +33,7 @@
|
||||
|
||||
#include "core/io/marshalls.h"
|
||||
#include "core/io/resource_saver.h"
|
||||
#include "navigation_mesh_generator.h"
|
||||
//#include "navigation_mesh_generator.h"
|
||||
#include "scene/3d/mesh_instance.h"
|
||||
#include "scene/gui/box_container.h"
|
||||
#include "scene/resources/mesh.h"
|
||||
@ -43,11 +43,13 @@
|
||||
#include "scene/gui/dialogs.h"
|
||||
|
||||
void NavigationMeshEditor::_node_removed(Node *p_node) {
|
||||
/*
|
||||
if (p_node == node) {
|
||||
node = nullptr;
|
||||
|
||||
hide();
|
||||
}
|
||||
*/
|
||||
}
|
||||
|
||||
void NavigationMeshEditor::_notification(int p_option) {
|
||||
@ -59,7 +61,7 @@ void NavigationMeshEditor::_notification(int p_option) {
|
||||
|
||||
void NavigationMeshEditor::_bake_pressed() {
|
||||
button_bake->set_pressed(false);
|
||||
|
||||
/*
|
||||
ERR_FAIL_COND(!node);
|
||||
if (!node->get_navigation_mesh().is_valid()) {
|
||||
err_dialog->set_text(TTR("A NavigationMesh resource must be set or created for this node to work."));
|
||||
@ -71,9 +73,11 @@ void NavigationMeshEditor::_bake_pressed() {
|
||||
NavigationMeshGenerator::get_singleton()->bake(node->get_navigation_mesh(), node);
|
||||
|
||||
node->update_gizmos();
|
||||
*/
|
||||
}
|
||||
|
||||
void NavigationMeshEditor::_clear_pressed() {
|
||||
/*
|
||||
if (node) {
|
||||
NavigationMeshGenerator::get_singleton()->clear(node->get_navigation_mesh());
|
||||
}
|
||||
@ -84,8 +88,9 @@ void NavigationMeshEditor::_clear_pressed() {
|
||||
if (node) {
|
||||
node->update_gizmos();
|
||||
}
|
||||
*/
|
||||
}
|
||||
|
||||
/*
|
||||
void NavigationMeshEditor::edit(NavigationMeshInstance *p_nav_mesh_instance) {
|
||||
if (p_nav_mesh_instance == nullptr || node == p_nav_mesh_instance) {
|
||||
return;
|
||||
@ -93,6 +98,7 @@ void NavigationMeshEditor::edit(NavigationMeshInstance *p_nav_mesh_instance) {
|
||||
|
||||
node = p_nav_mesh_instance;
|
||||
}
|
||||
*/
|
||||
|
||||
void NavigationMeshEditor::_bind_methods() {
|
||||
ClassDB::bind_method("_bake_pressed", &NavigationMeshEditor::_bake_pressed);
|
||||
@ -119,14 +125,14 @@ NavigationMeshEditor::NavigationMeshEditor() {
|
||||
|
||||
err_dialog = memnew(AcceptDialog);
|
||||
add_child(err_dialog);
|
||||
node = nullptr;
|
||||
//node = nullptr;
|
||||
}
|
||||
|
||||
NavigationMeshEditor::~NavigationMeshEditor() {
|
||||
}
|
||||
|
||||
void NavigationMeshEditorPlugin::edit(Object *p_object) {
|
||||
navigation_mesh_editor->edit(Object::cast_to<NavigationMeshInstance>(p_object));
|
||||
//navigation_mesh_editor->edit(Object::cast_to<NavigationMeshInstance>(p_object));
|
||||
}
|
||||
|
||||
bool NavigationMeshEditorPlugin::handles(Object *p_object) const {
|
||||
@ -135,22 +141,22 @@ bool NavigationMeshEditorPlugin::handles(Object *p_object) const {
|
||||
|
||||
void NavigationMeshEditorPlugin::make_visible(bool p_visible) {
|
||||
if (p_visible) {
|
||||
navigation_mesh_editor->show();
|
||||
navigation_mesh_editor->bake_hbox->show();
|
||||
//navigation_mesh_editor->show();
|
||||
//navigation_mesh_editor->bake_hbox->show();
|
||||
} else {
|
||||
navigation_mesh_editor->hide();
|
||||
navigation_mesh_editor->bake_hbox->hide();
|
||||
navigation_mesh_editor->edit(nullptr);
|
||||
//navigation_mesh_editor->hide();
|
||||
//navigation_mesh_editor->bake_hbox->hide();
|
||||
//navigation_mesh_editor->edit(nullptr);
|
||||
}
|
||||
}
|
||||
|
||||
NavigationMeshEditorPlugin::NavigationMeshEditorPlugin(EditorNode *p_node) {
|
||||
editor = p_node;
|
||||
navigation_mesh_editor = memnew(NavigationMeshEditor);
|
||||
editor->get_viewport()->add_child(navigation_mesh_editor);
|
||||
add_control_to_container(CONTAINER_SPATIAL_EDITOR_MENU, navigation_mesh_editor->bake_hbox);
|
||||
navigation_mesh_editor->hide();
|
||||
navigation_mesh_editor->bake_hbox->hide();
|
||||
//navigation_mesh_editor = memnew(NavigationMeshEditor);
|
||||
//editor->get_viewport()->add_child(navigation_mesh_editor);
|
||||
//add_control_to_container(CONTAINER_SPATIAL_EDITOR_MENU, navigation_mesh_editor->bake_hbox);
|
||||
//navigation_mesh_editor->hide();
|
||||
//navigation_mesh_editor->bake_hbox->hide();
|
||||
}
|
||||
|
||||
NavigationMeshEditorPlugin::~NavigationMeshEditorPlugin() {
|
||||
|
@ -35,7 +35,7 @@
|
||||
#include "editor/editor_node.h"
|
||||
#include "editor/editor_plugin.h"
|
||||
|
||||
class NavigationMeshInstance;
|
||||
///class NavigationMeshInstance;
|
||||
|
||||
class NavigationMeshEditor : public Control {
|
||||
friend class NavigationMeshEditorPlugin;
|
||||
@ -49,7 +49,7 @@ class NavigationMeshEditor : public Control {
|
||||
ToolButton *button_reset;
|
||||
Label *bake_info;
|
||||
|
||||
NavigationMeshInstance *node;
|
||||
//NavigationMeshInstance *node;
|
||||
|
||||
void _bake_pressed();
|
||||
void _clear_pressed();
|
||||
@ -60,7 +60,7 @@ protected:
|
||||
void _notification(int p_option);
|
||||
|
||||
public:
|
||||
void edit(NavigationMeshInstance *p_nav_mesh_instance);
|
||||
//void edit(NavigationMeshInstance *p_nav_mesh_instance);
|
||||
NavigationMeshEditor();
|
||||
~NavigationMeshEditor();
|
||||
};
|
||||
|
@ -33,7 +33,7 @@
|
||||
#include "core/os/mutex.h"
|
||||
|
||||
#ifndef _3D_DISABLED
|
||||
#include "navigation_mesh_generator.h"
|
||||
//#include "navigation_mesh_generator.h"
|
||||
#include "scene/resources/mesh.h"
|
||||
#include "scene/resources/navigation_mesh.h"
|
||||
#endif
|
||||
@ -418,8 +418,8 @@ void PandemoniumNavigationServer::region_bake_navmesh(Ref<NavigationMesh> r_mesh
|
||||
ERR_FAIL_COND(p_node == nullptr);
|
||||
|
||||
#ifndef _3D_DISABLED
|
||||
NavigationMeshGenerator::get_singleton()->clear(r_mesh);
|
||||
NavigationMeshGenerator::get_singleton()->bake(r_mesh, p_node);
|
||||
//NavigationMeshGenerator::get_singleton()->clear(r_mesh);
|
||||
//NavigationMeshGenerator::get_singleton()->bake(r_mesh, p_node);
|
||||
#endif
|
||||
}
|
||||
|
||||
|
@ -38,7 +38,7 @@
|
||||
#include "servers/navigation_2d_server.h"
|
||||
|
||||
#ifndef _3D_DISABLED
|
||||
#include "navigation_mesh_generator.h"
|
||||
//#include "navigation_mesh_generator.h"
|
||||
#endif
|
||||
|
||||
#ifdef TOOLS_ENABLED
|
||||
@ -46,7 +46,7 @@
|
||||
#endif
|
||||
|
||||
#ifndef _3D_DISABLED
|
||||
NavigationMeshGenerator *_nav_mesh_generator = nullptr;
|
||||
//NavigationMeshGenerator *_nav_mesh_generator = nullptr;
|
||||
#endif
|
||||
|
||||
NavigationServer *new_server() {
|
||||
@ -66,15 +66,15 @@ void register_navigation_types(ModuleRegistrationLevel p_level) {
|
||||
Navigation2DServerManager::set_default_server("PandemoniumNavigation", 10);
|
||||
|
||||
#ifndef _3D_DISABLED
|
||||
_nav_mesh_generator = memnew(NavigationMeshGenerator);
|
||||
ClassDB::register_class<NavigationMeshGenerator>();
|
||||
Engine::get_singleton()->add_singleton(Engine::Singleton("NavigationMeshGenerator", NavigationMeshGenerator::get_singleton()));
|
||||
//_nav_mesh_generator = memnew(NavigationMeshGenerator);
|
||||
//ClassDB::register_class<NavigationMeshGenerator>();
|
||||
//Engine::get_singleton()->add_singleton(Engine::Singleton("NavigationMeshGenerator", NavigationMeshGenerator::get_singleton()));
|
||||
#endif
|
||||
}
|
||||
|
||||
#ifdef TOOLS_ENABLED
|
||||
if (p_level == MODULE_REGISTRATION_LEVEL_EDITOR) {
|
||||
EditorPlugins::add_by_type<NavigationMeshEditorPlugin>();
|
||||
//EditorPlugins::add_by_type<NavigationMeshEditorPlugin>();
|
||||
}
|
||||
#endif
|
||||
}
|
||||
@ -82,9 +82,9 @@ void register_navigation_types(ModuleRegistrationLevel p_level) {
|
||||
void unregister_navigation_types(ModuleRegistrationLevel p_level) {
|
||||
#ifndef _3D_DISABLED
|
||||
if (p_level == MODULE_REGISTRATION_LEVEL_SINGLETON) {
|
||||
if (_nav_mesh_generator) {
|
||||
memdelete(_nav_mesh_generator);
|
||||
}
|
||||
//if (_nav_mesh_generator) {
|
||||
// memdelete(_nav_mesh_generator);
|
||||
//}
|
||||
}
|
||||
#endif
|
||||
}
|
||||
|
@ -31,7 +31,6 @@
|
||||
#include "navigation_mesh_generator.h"
|
||||
|
||||
#include "core/config/project_settings.h"
|
||||
#include "core/object/func_ref.h"
|
||||
|
||||
#include "scene/2d/navigation_geometry_parser_2d.h"
|
||||
#ifndef _3D_DISABLED
|
||||
|
@ -34,6 +34,7 @@
|
||||
#include "core/containers/rid.h"
|
||||
#include "core/object/class_db.h"
|
||||
#include "core/object/reference.h"
|
||||
#include "core/object/func_ref.h"
|
||||
|
||||
class Node;
|
||||
class NavigationGeometryParser2D;
|
||||
|
50
servers/navigation/navigation_mesh_generator_dummy.cpp
Normal file
50
servers/navigation/navigation_mesh_generator_dummy.cpp
Normal file
@ -0,0 +1,50 @@
|
||||
|
||||
#include "navigation_mesh_generator_dummy.h"
|
||||
|
||||
#include "core/config/project_settings.h"
|
||||
|
||||
#include "scene/2d/navigation_geometry_parser_2d.h"
|
||||
#ifndef _3D_DISABLED
|
||||
#include "scene/3d/navigation_geometry_parser_3d.h"
|
||||
#endif // _3D_DISABLED
|
||||
#include "scene/main/node.h"
|
||||
#include "scene/resources/navigation_mesh.h"
|
||||
#include "scene/resources/navigation_mesh_source_geometry_data_2d.h"
|
||||
#ifndef _3D_DISABLED
|
||||
#include "scene/resources/navigation_mesh_source_geometry_data_3d.h"
|
||||
#endif // _3D_DISABLED
|
||||
|
||||
void NavigationMeshGeneratorDummy::cleanup() {}
|
||||
void NavigationMeshGeneratorDummy::process() {}
|
||||
|
||||
// 2D //////////////////////////////
|
||||
void NavigationMeshGeneratorDummy::register_geometry_parser_2d(Ref<NavigationGeometryParser2D> p_geometry_parser) {}
|
||||
void NavigationMeshGeneratorDummy::unregister_geometry_parser_2d(Ref<NavigationGeometryParser2D> p_geometry_parser) {}
|
||||
|
||||
Ref<NavigationMeshSourceGeometryData2D> NavigationMeshGeneratorDummy::parse_2d_source_geometry_data(Ref<NavigationPolygon> p_navigation_polygon, Node *p_root_node, Ref<FuncRef> p_callback) {
|
||||
return Ref<NavigationMeshSourceGeometryData2D>();
|
||||
}
|
||||
void NavigationMeshGeneratorDummy::bake_2d_from_source_geometry_data(Ref<NavigationPolygon> p_navigation_polygon, Ref<NavigationMeshSourceGeometryData2D> p_source_geometry_data, Ref<FuncRef> p_callback) {}
|
||||
|
||||
void NavigationMeshGeneratorDummy::parse_and_bake_2d(Ref<NavigationPolygon> p_navigation_polygon, Node *p_root_node, Ref<FuncRef> p_callback) {}
|
||||
|
||||
bool NavigationMeshGeneratorDummy::is_navigation_polygon_baking(Ref<NavigationPolygon> p_navigation_polygon) const {
|
||||
return false;
|
||||
}
|
||||
|
||||
// 3D //////////////////////////////
|
||||
#ifndef _3D_DISABLED
|
||||
void NavigationMeshGeneratorDummy::register_geometry_parser_3d(Ref<NavigationGeometryParser3D> p_geometry_parser) {}
|
||||
void NavigationMeshGeneratorDummy::unregister_geometry_parser_3d(Ref<NavigationGeometryParser3D> p_geometry_parser) {}
|
||||
|
||||
Ref<NavigationMeshSourceGeometryData3D> NavigationMeshGeneratorDummy::parse_3d_source_geometry_data(Ref<NavigationMesh> p_navigation_mesh, Node *p_root_node, Ref<FuncRef> p_callback) {
|
||||
return Ref<NavigationMeshSourceGeometryData3D>();
|
||||
}
|
||||
void NavigationMeshGeneratorDummy::bake_3d_from_source_geometry_data(Ref<NavigationMesh> p_navigation_mesh, Ref<NavigationMeshSourceGeometryData3D> p_source_geometry_data, Ref<FuncRef> p_callback) {}
|
||||
|
||||
void NavigationMeshGeneratorDummy::parse_and_bake_3d(Ref<NavigationMesh> p_navigation_mesh, Node *p_root_node, Ref<FuncRef> p_callback) {}
|
||||
|
||||
bool NavigationMeshGeneratorDummy::is_navigation_mesh_baking(Ref<NavigationMesh> p_navigation_mesh) const {
|
||||
return false;
|
||||
}
|
||||
#endif // _3D_DISABLED
|
79
servers/navigation/navigation_mesh_generator_dummy.h
Normal file
79
servers/navigation/navigation_mesh_generator_dummy.h
Normal file
@ -0,0 +1,79 @@
|
||||
#ifndef NAVIGATION_MESH_GENERATOR_DUMMY_H
|
||||
#define NAVIGATION_MESH_GENERATOR_DUMMY_H
|
||||
|
||||
/**************************************************************************/
|
||||
/* navigation_mesh_generator_dummy.h */
|
||||
/**************************************************************************/
|
||||
/* This file is part of: */
|
||||
/* GODOT ENGINE */
|
||||
/* https://godotengine.org */
|
||||
/**************************************************************************/
|
||||
/* Copyright (c) 2014-present Godot Engine contributors (see AUTHORS.md). */
|
||||
/* Copyright (c) 2007-2014 Juan Linietsky, Ariel Manzur. */
|
||||
/* */
|
||||
/* Permission is hereby granted, free of charge, to any person obtaining */
|
||||
/* a copy of this software and associated documentation files (the */
|
||||
/* "Software"), to deal in the Software without restriction, including */
|
||||
/* without limitation the rights to use, copy, modify, merge, publish, */
|
||||
/* distribute, sublicense, and/or sell copies of the Software, and to */
|
||||
/* permit persons to whom the Software is furnished to do so, subject to */
|
||||
/* the following conditions: */
|
||||
/* */
|
||||
/* The above copyright notice and this permission notice shall be */
|
||||
/* included in all copies or substantial portions of the Software. */
|
||||
/* */
|
||||
/* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, */
|
||||
/* EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF */
|
||||
/* MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. */
|
||||
/* IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY */
|
||||
/* CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, */
|
||||
/* TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE */
|
||||
/* SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */
|
||||
/**************************************************************************/
|
||||
|
||||
#include "servers/navigation/navigation_mesh_generator.h"
|
||||
|
||||
#include "core/object/func_ref.h"
|
||||
|
||||
class Node;
|
||||
class NavigationGeometryParser2D;
|
||||
class NavigationGeometryParser3D;
|
||||
class NavigationMeshSourceGeometryData2D;
|
||||
class NavigationMeshSourceGeometryData3D;
|
||||
class NavigationPolygon;
|
||||
class NavigationMesh;
|
||||
class FuncRef;
|
||||
|
||||
class NavigationMeshGeneratorDummy : public NavigationMeshGenerator {
|
||||
GDCLASS(NavigationMeshGeneratorDummy, NavigationMeshGenerator);
|
||||
|
||||
public:
|
||||
virtual void cleanup();
|
||||
virtual void process();
|
||||
|
||||
// 2D //////////////////////////////
|
||||
virtual void register_geometry_parser_2d(Ref<NavigationGeometryParser2D> p_geometry_parser);
|
||||
virtual void unregister_geometry_parser_2d(Ref<NavigationGeometryParser2D> p_geometry_parser);
|
||||
|
||||
virtual Ref<NavigationMeshSourceGeometryData2D> parse_2d_source_geometry_data(Ref<NavigationPolygon> p_navigation_polygon, Node *p_root_node, Ref<FuncRef> p_callback = Ref<FuncRef>());
|
||||
virtual void bake_2d_from_source_geometry_data(Ref<NavigationPolygon> p_navigation_polygon, Ref<NavigationMeshSourceGeometryData2D> p_source_geometry_data, Ref<FuncRef> p_callback = Ref<FuncRef>());
|
||||
|
||||
virtual void parse_and_bake_2d(Ref<NavigationPolygon> p_navigation_polygon, Node *p_root_node, Ref<FuncRef> p_callback = Ref<FuncRef>());
|
||||
|
||||
virtual bool is_navigation_polygon_baking(Ref<NavigationPolygon> p_navigation_polygon) const;
|
||||
|
||||
// 3D //////////////////////////////
|
||||
#ifndef _3D_DISABLED
|
||||
virtual void register_geometry_parser_3d(Ref<NavigationGeometryParser3D> p_geometry_parser);
|
||||
virtual void unregister_geometry_parser_3d(Ref<NavigationGeometryParser3D> p_geometry_parser);
|
||||
|
||||
virtual Ref<NavigationMeshSourceGeometryData3D> parse_3d_source_geometry_data(Ref<NavigationMesh> p_navigation_mesh, Node *p_root_node, Ref<FuncRef> p_callback = Ref<FuncRef>());
|
||||
virtual void bake_3d_from_source_geometry_data(Ref<NavigationMesh> p_navigation_mesh, Ref<NavigationMeshSourceGeometryData3D> p_source_geometry_data, Ref<FuncRef> p_callback = Ref<FuncRef>());
|
||||
|
||||
virtual void parse_and_bake_3d(Ref<NavigationMesh> p_navigation_mesh, Node *p_root_node, Ref<FuncRef> p_callback = Ref<FuncRef>());
|
||||
|
||||
virtual bool is_navigation_mesh_baking(Ref<NavigationMesh> p_navigation_mesh) const;
|
||||
#endif // _3D_DISABLED
|
||||
};
|
||||
|
||||
#endif // NAVIGATION_MESH_GENERATOR_DUMMY_H
|
@ -52,6 +52,7 @@
|
||||
#include "audio/effects/audio_effect_stereo_enhance.h"
|
||||
#include "audio/effects/audio_stream_generator.h"
|
||||
#include "audio_server.h"
|
||||
#include "navigation/navigation_mesh_generator.h"
|
||||
#include "navigation_2d_server.h"
|
||||
#include "navigation_server.h"
|
||||
#include "physics/physics_server_sw.h"
|
||||
@ -111,6 +112,8 @@ void register_server_types() {
|
||||
ClassDB::register_virtual_class<Physics2DServer>();
|
||||
ClassDB::register_virtual_class<NavigationServer>();
|
||||
ClassDB::register_virtual_class<Navigation2DServer>();
|
||||
//ClassDB::register_class<NavigationMeshGeneratorManager>();
|
||||
ClassDB::register_virtual_class<NavigationMeshGenerator>();
|
||||
|
||||
shader_types = memnew(ShaderTypes);
|
||||
|
||||
@ -191,6 +194,10 @@ void register_server_types() {
|
||||
PhysicsServerManager::register_server("PandemoniumPhysics", &_createPandemoniumPhysicsCallback);
|
||||
PhysicsServerManager::set_default_server("PandemoniumPhysics");
|
||||
|
||||
// Navigation
|
||||
GLOBAL_DEF(NavigationMeshGeneratorManager::setting_property_name, "DEFAULT");
|
||||
ProjectSettings::get_singleton()->set_custom_property_info(NavigationMeshGeneratorManager::setting_property_name, PropertyInfo(Variant::STRING, NavigationMeshGeneratorManager::setting_property_name, PROPERTY_HINT_ENUM, "DEFAULT"));
|
||||
|
||||
// Navigation 2D
|
||||
GLOBAL_DEF(Navigation2DServerManager::setting_property_name, "DEFAULT");
|
||||
ProjectSettings::get_singleton()->set_custom_property_info(Navigation2DServerManager::setting_property_name, PropertyInfo(Variant::STRING, Navigation2DServerManager::setting_property_name, PROPERTY_HINT_ENUM, "DEFAULT"));
|
||||
|
Loading…
Reference in New Issue
Block a user