diff --git a/editor/editor_node.cpp b/editor/editor_node.cpp index 075909585..ac84425dc 100644 --- a/editor/editor_node.cpp +++ b/editor/editor_node.cpp @@ -126,7 +126,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_polygon_editor_plugin.h" #include "editor/plugins/packed_scene_editor_plugin.h" #include "editor/plugins/path_2d_editor_plugin.h" #include "editor/plugins/path_editor_plugin.h" @@ -7018,7 +7017,6 @@ EditorNode::EditorNode() { add_editor_plugin(memnew(Line2DEditorPlugin(this))); add_editor_plugin(memnew(Polygon2DEditorPlugin(this))); add_editor_plugin(memnew(LightOccluder2DEditorPlugin(this))); - add_editor_plugin(memnew(NavigationPolygonEditorPlugin(this))); add_editor_plugin(memnew(GradientEditorPlugin(this))); add_editor_plugin(memnew(CollisionShape2DEditorPlugin(this))); add_editor_plugin(memnew(CurveEditorPlugin(this))); diff --git a/editor/plugins/navigation_polygon_editor_plugin.cpp b/editor/plugins/navigation_polygon_editor_plugin.cpp deleted file mode 100644 index 741958aaf..000000000 --- a/editor/plugins/navigation_polygon_editor_plugin.cpp +++ /dev/null @@ -1,134 +0,0 @@ -/*************************************************************************/ -/* navigation_polygon_editor_plugin.cpp */ -/*************************************************************************/ -/* This file is part of: */ -/* GODOT ENGINE */ -/* https://godotengine.org */ -/*************************************************************************/ -/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */ -/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */ -/* */ -/* 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 "navigation_polygon_editor_plugin.h" - -#include "core/math/vector2.h" -#include "core/os/memory.h" -#include "core/object/undo_redo.h" -#include "core/string/ustring.h" -#include "core/containers/vector.h" -#include "scene/2d/navigation_polygon_instance.h" -#include "scene/resources/navigation_polygon.h" -#include "scene/main/node.h" - -class EditorNode; -class Node2D; - -Ref NavigationPolygonEditor::_ensure_navpoly() const { - Ref navpoly = node->get_navigation_polygon(); - if (!navpoly.is_valid()) { - navpoly = Ref(memnew(NavigationPolygon)); - node->set_navigation_polygon(navpoly); - } - return navpoly; -} - -Node2D *NavigationPolygonEditor::_get_node() const { - return node; -} - -void NavigationPolygonEditor::_set_node(Node *p_polygon) { - node = Object::cast_to(p_polygon); -} - -int NavigationPolygonEditor::_get_polygon_count() const { - Ref navpoly = node->get_navigation_polygon(); - if (navpoly.is_valid()) { - return navpoly->get_outline_count(); - } else { - return 0; - } -} - -Variant NavigationPolygonEditor::_get_polygon(int p_idx) const { - Ref navpoly = node->get_navigation_polygon(); - if (navpoly.is_valid()) { - return navpoly->get_outline(p_idx); - } else { - return Variant(Vector()); - } -} - -void NavigationPolygonEditor::_set_polygon(int p_idx, const Variant &p_polygon) const { - Ref navpoly = _ensure_navpoly(); - navpoly->set_outline(p_idx, p_polygon); - navpoly->make_polygons_from_outlines(); -} - -void NavigationPolygonEditor::_action_add_polygon(const Variant &p_polygon) { - Ref navpoly = _ensure_navpoly(); - undo_redo->add_do_method(navpoly.ptr(), "add_outline", p_polygon); - undo_redo->add_undo_method(navpoly.ptr(), "remove_outline", navpoly->get_outline_count()); - undo_redo->add_do_method(navpoly.ptr(), "make_polygons_from_outlines"); - undo_redo->add_undo_method(navpoly.ptr(), "make_polygons_from_outlines"); -} - -void NavigationPolygonEditor::_action_remove_polygon(int p_idx) { - Ref navpoly = _ensure_navpoly(); - undo_redo->add_do_method(navpoly.ptr(), "remove_outline", p_idx); - undo_redo->add_undo_method(navpoly.ptr(), "add_outline_at_index", navpoly->get_outline(p_idx), p_idx); - undo_redo->add_do_method(navpoly.ptr(), "make_polygons_from_outlines"); - undo_redo->add_undo_method(navpoly.ptr(), "make_polygons_from_outlines"); -} - -void NavigationPolygonEditor::_action_set_polygon(int p_idx, const Variant &p_previous, const Variant &p_polygon) { - Ref navpoly = _ensure_navpoly(); - undo_redo->add_do_method(navpoly.ptr(), "set_outline", p_idx, p_polygon); - undo_redo->add_undo_method(navpoly.ptr(), "set_outline", p_idx, p_previous); - undo_redo->add_do_method(navpoly.ptr(), "make_polygons_from_outlines"); - undo_redo->add_undo_method(navpoly.ptr(), "make_polygons_from_outlines"); -} - -bool NavigationPolygonEditor::_has_resource() const { - return node && node->get_navigation_polygon().is_valid(); -} - -void NavigationPolygonEditor::_create_resource() { - if (!node) { - return; - } - - undo_redo->create_action(TTR("Create Navigation Polygon")); - undo_redo->add_do_method(node, "set_navigation_polygon", Ref(memnew(NavigationPolygon))); - undo_redo->add_undo_method(node, "set_navigation_polygon", Variant(REF())); - undo_redo->commit_action(); - - _menu_option(MODE_CREATE); -} - -NavigationPolygonEditor::NavigationPolygonEditor(EditorNode *p_editor) : - AbstractPolygon2DEditor(p_editor) { - node = nullptr; -} - -NavigationPolygonEditorPlugin::NavigationPolygonEditorPlugin(EditorNode *p_node) : - AbstractPolygon2DEditorPlugin(p_node, memnew(NavigationPolygonEditor(p_node)), "NavigationPolygonInstance") { -} diff --git a/editor/plugins/navigation_polygon_editor_plugin.h b/editor/plugins/navigation_polygon_editor_plugin.h deleted file mode 100644 index 62be87ced..000000000 --- a/editor/plugins/navigation_polygon_editor_plugin.h +++ /dev/null @@ -1,78 +0,0 @@ -#ifndef NAVIGATIONPOLYGONEDITORPLUGIN_H -#define NAVIGATIONPOLYGONEDITORPLUGIN_H -/*************************************************************************/ -/* navigation_polygon_editor_plugin.h */ -/*************************************************************************/ -/* This file is part of: */ -/* GODOT ENGINE */ -/* https://godotengine.org */ -/*************************************************************************/ -/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */ -/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */ -/* */ -/* 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 "editor/plugins/abstract_polygon_2d_editor.h" - -#include "core/object/object.h" -#include "core/object/reference.h" -#include "core/variant/variant.h" - -class EditorNode; -class NavigationPolygon; -class NavigationPolygonInstance; -class Node2D; -class Node; - -class NavigationPolygonEditor : public AbstractPolygon2DEditor { - GDCLASS(NavigationPolygonEditor, AbstractPolygon2DEditor); - - NavigationPolygonInstance *node; - - Ref _ensure_navpoly() const; - -protected: - virtual Node2D *_get_node() const; - virtual void _set_node(Node *p_polygon); - - virtual int _get_polygon_count() const; - virtual Variant _get_polygon(int p_idx) const; - virtual void _set_polygon(int p_idx, const Variant &p_polygon) const; - - virtual void _action_add_polygon(const Variant &p_polygon); - virtual void _action_remove_polygon(int p_idx); - virtual void _action_set_polygon(int p_idx, const Variant &p_previous, const Variant &p_polygon); - - virtual bool _has_resource() const; - virtual void _create_resource(); - -public: - NavigationPolygonEditor(EditorNode *p_editor); -}; - -class NavigationPolygonEditorPlugin : public AbstractPolygon2DEditorPlugin { - GDCLASS(NavigationPolygonEditorPlugin, AbstractPolygon2DEditorPlugin); - -public: - NavigationPolygonEditorPlugin(EditorNode *p_node); -}; - -#endif // NAVIGATIONPOLYGONEDITORPLUGIN_H