|  |  |  | @tool | 
					
						
							|  |  |  | extends EditorPlugin | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | const PLUGIN_SCRIPTS: Array[GDScript] = [ | 
					
						
							|  |  |  |     preload("editor_import_plugins/sprite_frames.gd"), | 
					
						
							|  |  |  | ] | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | const Common = preload("common.gd") | 
					
						
							|  |  |  | const ImportPlugin = preload("editor_import_plugins/_animation_importer_base.gd") | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | var __import_plugins: Array[ImportPlugin] | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | var common_options: Array[Dictionary] = Common.create_common_animation_options() | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | func _enter_tree() -> void: | 
					
						
							|  |  |  |     __register_project_setting( | 
					
						
							|  |  |  |         Common.ASEPRITE_EXECUTABLE_PATH_SETTING_NAME, "", | 
					
						
							|  |  |  |         TYPE_STRING, PROPERTY_HINT_GLOBAL_FILE, "*.exe") | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     for plugin_script in PLUGIN_SCRIPTS: | 
					
						
							|  |  |  |         var import_plugin = plugin_script.new(self) | 
					
						
							|  |  |  |         add_import_plugin(import_plugin) | 
					
						
							|  |  |  |         __import_plugins.append(import_plugin) | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | func _exit_tree() -> void: | 
					
						
							|  |  |  |     for import_plugin in __import_plugins: | 
					
						
							|  |  |  |         remove_import_plugin(import_plugin) | 
					
						
							|  |  |  |     __import_plugins.clear() | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | func __register_project_setting(name: StringName, initial_value, type: int, hint: int, hint_string: String = "") -> void: | 
					
						
							|  |  |  |     if not ProjectSettings.has_setting(name): | 
					
						
							|  |  |  |         ProjectSettings.set_setting(name, initial_value) | 
					
						
							|  |  |  |         ProjectSettings.set_initial_value(name, initial_value) | 
					
						
							|  |  |  |         var property_info: Dictionary = { name = name, type = type, hint = hint } | 
					
						
							|  |  |  |         if hint_string: property_info.hint_string = hint_string | 
					
						
							|  |  |  |         ProjectSettings.add_property_info(property_info) |