From 59c2c21b152aad4a9b925aab98ecdb85fee6867d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?R=C3=A9mi=20Verschelde?= Date: Wed, 30 May 2018 15:59:42 +0200 Subject: [PATCH] Move NavigationMeshEditorPlugin to Recast module as should be Modules can register their own editor plugins (like GridMap does), so no need to put module-specific classes in the `editor/` folder. Also cleans up the previous SCons env pollution from the Recast module, integrating its code into libmodules as other modules. --- editor/editor_node.cpp | 2 -- modules/recast/SCsub | 12 +++++------- .../recast}/navigation_mesh_editor_plugin.cpp | 5 +---- .../recast}/navigation_mesh_editor_plugin.h | 3 --- .../recast}/navigation_mesh_generator.cpp | 4 ---- .../recast}/navigation_mesh_generator.h | 11 ++--------- modules/recast/register_types.cpp | 7 ++++++- 7 files changed, 14 insertions(+), 30 deletions(-) rename {editor/plugins => modules/recast}/navigation_mesh_editor_plugin.cpp (99%) rename {editor/plugins => modules/recast}/navigation_mesh_editor_plugin.h (98%) rename {editor/plugins => modules/recast}/navigation_mesh_generator.cpp (99%) rename {editor/plugins => modules/recast}/navigation_mesh_generator.h (98%) diff --git a/editor/editor_node.cpp b/editor/editor_node.cpp index 4b068f10008..7e3af2b7551 100644 --- a/editor/editor_node.cpp +++ b/editor/editor_node.cpp @@ -88,7 +88,6 @@ #include "editor/plugins/mesh_editor_plugin.h" #include "editor/plugins/mesh_instance_editor_plugin.h" #include "editor/plugins/multimesh_editor_plugin.h" -#include "editor/plugins/navigation_mesh_editor_plugin.h" #include "editor/plugins/navigation_polygon_editor_plugin.h" #include "editor/plugins/particles_2d_editor_plugin.h" #include "editor/plugins/particles_editor_plugin.h" @@ -5365,7 +5364,6 @@ EditorNode::EditorNode() { add_editor_plugin(memnew(TextureEditorPlugin(this))); add_editor_plugin(memnew(AudioBusesEditorPlugin(audio_bus_editor))); add_editor_plugin(memnew(AudioBusesEditorPlugin(audio_bus_editor))); - add_editor_plugin(memnew(NavigationMeshEditorPlugin(this))); add_editor_plugin(memnew(SkeletonEditorPlugin(this))); add_editor_plugin(memnew(PhysicalBonePlugin(this))); diff --git a/modules/recast/SCsub b/modules/recast/SCsub index 530df9a37ce..f56be72b245 100644 --- a/modules/recast/SCsub +++ b/modules/recast/SCsub @@ -1,8 +1,9 @@ #!/usr/bin/env python Import('env') +Import('env_modules') -# Not building in a separate env as core needs it +env_recast = env_modules.Clone() # Thirdparty source files if env['builtin_recast']: @@ -22,13 +23,10 @@ if env['builtin_recast']: ] thirdparty_sources = [thirdparty_dir + file for file in thirdparty_sources] - env.Append(CPPPATH=[thirdparty_dir, thirdparty_dir + "/Include"]) - - lib = env.add_library("recast_builtin", thirdparty_sources) - env.Append(LIBS=[lib]) + env_recast.add_source_files(env.modules_sources, thirdparty_sources) + env_recast.Append(CPPPATH=[thirdparty_dir + "/Include"]) # Godot source files -env.add_source_files(env.modules_sources, "*.cpp") -env.Append(CCFLAGS=['-DRECAST_ENABLED']) +env_recast.add_source_files(env.modules_sources, "*.cpp") Export('env') diff --git a/editor/plugins/navigation_mesh_editor_plugin.cpp b/modules/recast/navigation_mesh_editor_plugin.cpp similarity index 99% rename from editor/plugins/navigation_mesh_editor_plugin.cpp rename to modules/recast/navigation_mesh_editor_plugin.cpp index da3c7443246..8556b7aa0ab 100644 --- a/editor/plugins/navigation_mesh_editor_plugin.cpp +++ b/modules/recast/navigation_mesh_editor_plugin.cpp @@ -29,13 +29,12 @@ /*************************************************************************/ #include "navigation_mesh_editor_plugin.h" + #include "io/marshalls.h" #include "io/resource_saver.h" #include "scene/3d/mesh_instance.h" #include "scene/gui/box_container.h" -#ifdef RECAST_ENABLED - void NavigationMeshEditor::_node_removed(Node *p_node) { if (p_node == node) { @@ -162,5 +161,3 @@ NavigationMeshEditorPlugin::NavigationMeshEditorPlugin(EditorNode *p_node) { NavigationMeshEditorPlugin::~NavigationMeshEditorPlugin() { } - -#endif // RECAST_ENABLED diff --git a/editor/plugins/navigation_mesh_editor_plugin.h b/modules/recast/navigation_mesh_editor_plugin.h similarity index 98% rename from editor/plugins/navigation_mesh_editor_plugin.h rename to modules/recast/navigation_mesh_editor_plugin.h index 9382467d85d..4f3e2220024 100644 --- a/editor/plugins/navigation_mesh_editor_plugin.h +++ b/modules/recast/navigation_mesh_editor_plugin.h @@ -31,8 +31,6 @@ #ifndef NAVIGATION_MESH_GENERATOR_PLUGIN_H #define NAVIGATION_MESH_GENERATOR_PLUGIN_H -#ifdef RECAST_ENABLED - #include "editor/editor_node.h" #include "editor/editor_plugin.h" #include "navigation_mesh_generator.h" @@ -83,5 +81,4 @@ public: ~NavigationMeshEditorPlugin(); }; -#endif // RECAST_ENABLED #endif // NAVIGATION_MESH_GENERATOR_PLUGIN_H diff --git a/editor/plugins/navigation_mesh_generator.cpp b/modules/recast/navigation_mesh_generator.cpp similarity index 99% rename from editor/plugins/navigation_mesh_generator.cpp rename to modules/recast/navigation_mesh_generator.cpp index 0537c5c31f2..64c4b85269a 100644 --- a/editor/plugins/navigation_mesh_generator.cpp +++ b/modules/recast/navigation_mesh_generator.cpp @@ -30,8 +30,6 @@ #include "navigation_mesh_generator.h" -#ifdef RECAST_ENABLED - void NavigationMeshGenerator::_add_vertex(const Vector3 &p_vec3, Vector &p_verticies) { p_verticies.push_back(p_vec3.x); p_verticies.push_back(p_vec3.y); @@ -304,5 +302,3 @@ void NavigationMeshGenerator::clear(Ref p_nav_mesh) { p_nav_mesh->set_vertices(PoolVector()); } } - -#endif //RECAST_ENABLED diff --git a/editor/plugins/navigation_mesh_generator.h b/modules/recast/navigation_mesh_generator.h similarity index 98% rename from editor/plugins/navigation_mesh_generator.h rename to modules/recast/navigation_mesh_generator.h index d26f541b8d1..3588539ef12 100644 --- a/editor/plugins/navigation_mesh_generator.h +++ b/modules/recast/navigation_mesh_generator.h @@ -31,16 +31,11 @@ #ifndef NAVIGATION_MESH_GENERATOR_H #define NAVIGATION_MESH_GENERATOR_H -#ifdef RECAST_ENABLED - #include "editor/editor_node.h" #include "editor/editor_settings.h" - -#include "scene/3d/mesh_instance.h" - -#include "scene/3d/navigation_mesh.h" - #include "os/thread.h" +#include "scene/3d/mesh_instance.h" +#include "scene/3d/navigation_mesh.h" #include "scene/resources/shape.h" #include @@ -61,6 +56,4 @@ public: static void clear(Ref p_nav_mesh); }; -#endif // RECAST_ENABLED - #endif // NAVIGATION_MESH_GENERATOR_H diff --git a/modules/recast/register_types.cpp b/modules/recast/register_types.cpp index 913857c591b..f2f18fc86f0 100644 --- a/modules/recast/register_types.cpp +++ b/modules/recast/register_types.cpp @@ -30,5 +30,10 @@ #include "register_types.h" -void register_recast_types() {} +#include "navigation_mesh_editor_plugin.h" + +void register_recast_types() { + EditorPlugins::add_by_type(); +} + void unregister_recast_types() {}