#include "editor_plugin.h" #include "editor/mat_maker_gd_editor.h" #include "nodes/mm_material.h" void MaterialMakerEditorPlugin::make_visible(bool p_visible) { if (tool_button) { if (p_visible) { tool_button->show(); } else { //if tool_button.pressed: // tool_button.pressed = false; if (!tool_button->is_pressed()) { tool_button->hide(); } } } } void MaterialMakerEditorPlugin::edit(Object *p_object) { //if editor_scene: // make_bottom_panel_item_visible(editor_scene) if (p_object->is_class("MMMaterial")) { editor_scene->set_mm_material(Ref<MMMaterial>(p_object)); } } bool MaterialMakerEditorPlugin::handles(Object *p_object) const { return p_object->is_class("MMMaterial"); } MaterialMakerEditorPlugin::MaterialMakerEditorPlugin(EditorNode *p_node) { _editor_node = p_node; editor_scene = nullptr; tool_button = nullptr; } MaterialMakerEditorPlugin::~MaterialMakerEditorPlugin() { } void MaterialMakerEditorPlugin::_notification(int p_what) { if (p_what == NOTIFICATION_ENTER_TREE) { editor_scene = memnew(MatMakerGDEditor); editor_scene->set_undo_redo(&get_undo_redo()); tool_button = add_control_to_bottom_panel(editor_scene, "MMGD"); tool_button->hide(); } else if (p_what == NOTIFICATION_EXIT_TREE) { remove_control_from_bottom_panel(editor_scene); if (editor_scene) { editor_scene->queue_delete(); } editor_scene = nullptr; tool_button = nullptr; } }