diff options
Diffstat (limited to 'editor/plugins/navigation_polygon_editor_plugin.h')
| -rwxr-xr-x[-rw-r--r--] | editor/plugins/navigation_polygon_editor_plugin.h | 74 |
1 files changed, 18 insertions, 56 deletions
diff --git a/editor/plugins/navigation_polygon_editor_plugin.h b/editor/plugins/navigation_polygon_editor_plugin.h index 7dd555e9c9..54cc347a8c 100644..100755 --- a/editor/plugins/navigation_polygon_editor_plugin.h +++ b/editor/plugins/navigation_polygon_editor_plugin.h @@ -30,83 +30,45 @@ #ifndef NAVIGATIONPOLYGONEDITORPLUGIN_H #define NAVIGATIONPOLYGONEDITORPLUGIN_H -#include "editor/editor_node.h" -#include "editor/editor_plugin.h" +#include "editor/plugins/abstract_polygon_2d_editor.h" #include "scene/2d/navigation_polygon.h" -#include "scene/gui/tool_button.h" /** @author Juan Linietsky <reduzio@gmail.com> */ -class CanvasItemEditor; +class NavigationPolygonEditor : public AbstractPolygon2DEditor { -class NavigationPolygonEditor : public HBoxContainer { + GDCLASS(NavigationPolygonEditor, AbstractPolygon2DEditor); - GDCLASS(NavigationPolygonEditor, HBoxContainer); - - UndoRedo *undo_redo; - enum Mode { - - MODE_CREATE, - MODE_EDIT, - - }; - - Mode mode; - - ToolButton *button_create; - ToolButton *button_edit; - - ConfirmationDialog *create_nav; - - CanvasItemEditor *canvas_item_editor; - EditorNode *editor; - Panel *panel; NavigationPolygonInstance *node; - MenuButton *options; - int edited_outline; - int edited_point; - Vector2 edited_point_pos; - PoolVector<Vector2> pre_move_edit; - Vector<Vector2> wip; - bool wip_active; + Ref<NavigationPolygon> _ensure_navpoly() const; - void _wip_close(); - void _canvas_draw(); - void _create_nav(); +protected: + virtual Node2D *_get_node() const; + virtual void _set_node(Node *p_polygon); - void _menu_option(int p_option); + 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; -protected: - void _notification(int p_what); - void _node_removed(Node *p_node); - static void _bind_methods(); + 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: - bool forward_gui_input(const Ref<InputEvent> &p_event); - void edit(Node *p_collision_polygon); NavigationPolygonEditor(EditorNode *p_editor); }; -class NavigationPolygonEditorPlugin : public EditorPlugin { +class NavigationPolygonEditorPlugin : public AbstractPolygon2DEditorPlugin { - GDCLASS(NavigationPolygonEditorPlugin, EditorPlugin); - - NavigationPolygonEditor *collision_polygon_editor; - EditorNode *editor; + GDCLASS(NavigationPolygonEditorPlugin, AbstractPolygon2DEditorPlugin); public: - virtual bool forward_canvas_gui_input(const Transform2D &p_canvas_xform, const Ref<InputEvent> &p_event) { return collision_polygon_editor->forward_gui_input(p_event); } - - virtual String get_name() const { return "NavigationPolygonInstance"; } - bool has_main_screen() const { return false; } - virtual void edit(Object *p_object); - virtual bool handles(Object *p_object) const; - virtual void make_visible(bool p_visible); - NavigationPolygonEditorPlugin(EditorNode *p_node); - ~NavigationPolygonEditorPlugin(); }; #endif // NAVIGATIONPOLYGONEDITORPLUGIN_H |
