From fbda0cc45c2f50b9b30175c4f2398b8a73d7bf4a Mon Sep 17 00:00:00 2001 From: Scayze Date: Fri, 25 Aug 2017 19:51:07 +0200 Subject: [PATCH] AutoUse Pencil on Polygon creation --- editor/plugins/collision_polygon_2d_editor_plugin.cpp | 4 ++++ editor/plugins/collision_polygon_editor_plugin.cpp | 4 ++++ editor/plugins/navigation_polygon_editor_plugin.cpp | 6 ++++++ editor/plugins/polygon_2d_editor_plugin.cpp | 4 ++++ 4 files changed, 18 insertions(+) diff --git a/editor/plugins/collision_polygon_2d_editor_plugin.cpp b/editor/plugins/collision_polygon_2d_editor_plugin.cpp index c90462db1d8..38f95d8278f 100644 --- a/editor/plugins/collision_polygon_2d_editor_plugin.cpp +++ b/editor/plugins/collision_polygon_2d_editor_plugin.cpp @@ -344,6 +344,10 @@ void CollisionPolygon2DEditor::edit(Node *p_collision_polygon) { if (p_collision_polygon) { node = Object::cast_to(p_collision_polygon); + //Enable the pencil tool if the polygon is empty + if (node->get_polygon().size() == 0) { + _menu_option(MODE_CREATE); + } if (!canvas_item_editor->get_viewport_control()->is_connected("draw", this, "_canvas_draw")) canvas_item_editor->get_viewport_control()->connect("draw", this, "_canvas_draw"); wip.clear(); diff --git a/editor/plugins/collision_polygon_editor_plugin.cpp b/editor/plugins/collision_polygon_editor_plugin.cpp index 3ac055e6509..24c4813771e 100644 --- a/editor/plugins/collision_polygon_editor_plugin.cpp +++ b/editor/plugins/collision_polygon_editor_plugin.cpp @@ -468,6 +468,10 @@ void CollisionPolygonEditor::edit(Node *p_collision_polygon) { if (p_collision_polygon) { node = Object::cast_to(p_collision_polygon); + //Enable the pencil tool if the polygon is empty + if (node->get_polygon().size() == 0) { + _menu_option(MODE_CREATE); + } wip.clear(); wip_active = false; edited_point = -1; diff --git a/editor/plugins/navigation_polygon_editor_plugin.cpp b/editor/plugins/navigation_polygon_editor_plugin.cpp index 76e969a339c..de8d4f9618a 100644 --- a/editor/plugins/navigation_polygon_editor_plugin.cpp +++ b/editor/plugins/navigation_polygon_editor_plugin.cpp @@ -69,6 +69,7 @@ void NavigationPolygonEditor::_create_nav() { 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); } void NavigationPolygonEditor::_menu_option(int p_option) { @@ -423,6 +424,11 @@ void NavigationPolygonEditor::edit(Node *p_collision_polygon) { if (p_collision_polygon) { node = Object::cast_to(p_collision_polygon); + //Enable the pencil tool if the polygon is empty + if (!node->get_navigation_polygon().is_null()) { + if (node->get_navigation_polygon()->get_polygon_count() == 0) + _menu_option(MODE_CREATE); + } if (!canvas_item_editor->get_viewport_control()->is_connected("draw", this, "_canvas_draw")) canvas_item_editor->get_viewport_control()->connect("draw", this, "_canvas_draw"); wip.clear(); diff --git a/editor/plugins/polygon_2d_editor_plugin.cpp b/editor/plugins/polygon_2d_editor_plugin.cpp index d04184f0557..be6f3429aa5 100644 --- a/editor/plugins/polygon_2d_editor_plugin.cpp +++ b/editor/plugins/polygon_2d_editor_plugin.cpp @@ -720,6 +720,10 @@ void Polygon2DEditor::edit(Node *p_collision_polygon) { if (p_collision_polygon) { node = Object::cast_to(p_collision_polygon); + //Enable the pencil tool if the polygon is empty + if (node->get_polygon().size() == 0) { + _menu_option(MODE_CREATE); + } if (!canvas_item_editor->get_viewport_control()->is_connected("draw", this, "_canvas_draw")) canvas_item_editor->get_viewport_control()->connect("draw", this, "_canvas_draw");