tool extends EditorPlugin const DataManagerAddonSettings = preload("res://addons/data_manager/resources/data_manager_addon_settings.gd") const _main_panel : PackedScene = preload("res://addons/data_manager/panels/MainPanel.tscn") const _script_icon : Texture = preload("res://addons/data_manager/icons/icon_multi_line.png") var settings : DataManagerAddonSettings = null var _main_panel_instance : Control func _enter_tree(): load_settings() _main_panel_instance = _main_panel.instance() as Control _main_panel_instance.set_plugin(self) _main_panel_instance.connect("inspect_data", self, "inspect_data") get_editor_interface().get_editor_viewport().add_child(_main_panel_instance) make_visible(false) func _exit_tree(): _main_panel_instance.queue_free() func has_main_screen(): return true func make_visible(visible): if visible: _main_panel_instance.show() else: _main_panel_instance.hide() func get_plugin_icon(): return _script_icon func get_plugin_name(): return "Data" func inspect_data(var data : Resource) -> void: get_editor_interface().inspect_object(data) func ensure_data_dir_exists() -> void: var dir : Directory = Directory.new() if !dir.dir_exists("res://addons/data_manager/_data/"): dir.make_dir("res://addons/data_manager/_data/") func load_settings() -> void: ensure_data_dir_exists() var dir : Directory = Directory.new() if !dir.file_exists("res://addons/data_manager/_data/settings.tres"): settings = DataManagerAddonSettings.new() ResourceSaver.save("res://addons/data_manager/_data/settings.tres", settings) else: settings = ResourceLoader.load("res://addons/data_manager/_data/settings.tres")