init commit
This commit is contained in:
76
addons/nklbdev.importality/editor_plugin.gd
Normal file
76
addons/nklbdev.importality/editor_plugin.gd
Normal file
@@ -0,0 +1,76 @@
|
||||
@tool
|
||||
extends EditorPlugin
|
||||
|
||||
const ExporterBase = preload("export/_.gd")
|
||||
const _AtlasMaker = preload("atlas_maker.gd")
|
||||
|
||||
const EXPORTERS_SCRIPTS: Array[GDScript] = [
|
||||
preload("export/aseprite.gd"),
|
||||
preload("export/krita.gd"),
|
||||
preload("export/pencil2d.gd"),
|
||||
preload("export/piskel.gd"),
|
||||
preload("export/pixelorama.gd"),
|
||||
]
|
||||
|
||||
const ImporterBase = preload("import/_.gd")
|
||||
const IMPORTERS_SCRIPTS: Array[GDScript] = [
|
||||
preload("import/animated_sprite_2d.gd"),
|
||||
preload("import/animated_sprite_3d.gd"),
|
||||
preload("import/sprite_2d_with_animation_player.gd"),
|
||||
preload("import/sprite_3d_with_animation_player.gd"),
|
||||
preload("import/sprite_frames.gd"),
|
||||
preload("import/texture_rect_with_animation_player.gd"),
|
||||
preload("import/sprite_sheet.gd"),
|
||||
]
|
||||
|
||||
const StandaloneImageFormatLoaderExtension = preload("standalone_image_format_loader_extension.gd")
|
||||
const STANDALONE_IMAGE_FORMAT_LOADER_EXTENSIONS: Array[GDScript] = [
|
||||
preload("command_line_image_format_loader_extension.gd")
|
||||
]
|
||||
|
||||
const CombinedEditorImportPlugin = preload("combined_editor_import_plugin.gd")
|
||||
|
||||
var __editor_import_plugins: Array[EditorImportPlugin]
|
||||
var __image_format_loader_extensions: Array[ImageFormatLoaderExtension]
|
||||
|
||||
func _enter_tree() -> void:
|
||||
var editor_interface: EditorInterface = get_editor_interface()
|
||||
var editor_file_system: EditorFileSystem = editor_interface.get_resource_filesystem()
|
||||
var editor_settings: EditorSettings = editor_interface.get_editor_settings()
|
||||
|
||||
var exporters: Array[ExporterBase]
|
||||
for Exporter in EXPORTERS_SCRIPTS:
|
||||
var exporter: ExporterBase = Exporter.new(editor_file_system)
|
||||
for setting in exporter.get_settings():
|
||||
setting.register(editor_settings)
|
||||
exporters.push_back(exporter)
|
||||
var image_format_loader_extension: ImageFormatLoaderExtension = \
|
||||
exporter.get_image_format_loader_extension()
|
||||
if image_format_loader_extension:
|
||||
__image_format_loader_extensions.push_back(image_format_loader_extension)
|
||||
image_format_loader_extension.add_format_loader()
|
||||
var importers: Array[ImporterBase]
|
||||
for Importer in IMPORTERS_SCRIPTS:
|
||||
importers.push_back(Importer.new())
|
||||
var atlas_maker: _AtlasMaker = _AtlasMaker.new(editor_file_system)
|
||||
for exporter in exporters:
|
||||
for importer in importers:
|
||||
var editor_import_plugin: EditorImportPlugin = \
|
||||
CombinedEditorImportPlugin.new(exporter, importer, atlas_maker, editor_file_system)
|
||||
__editor_import_plugins.push_back(editor_import_plugin)
|
||||
add_import_plugin(editor_import_plugin)
|
||||
for Extension in STANDALONE_IMAGE_FORMAT_LOADER_EXTENSIONS:
|
||||
var image_format_loader_extension: StandaloneImageFormatLoaderExtension = \
|
||||
Extension.new() as StandaloneImageFormatLoaderExtension
|
||||
for setting in image_format_loader_extension.get_settings():
|
||||
setting.register(editor_settings)
|
||||
__image_format_loader_extensions.push_back(image_format_loader_extension)
|
||||
image_format_loader_extension.add_format_loader()
|
||||
|
||||
func _exit_tree() -> void:
|
||||
for editor_import_plugin in __editor_import_plugins:
|
||||
remove_import_plugin(editor_import_plugin)
|
||||
__editor_import_plugins.clear()
|
||||
for image_format_loader_extension in __image_format_loader_extensions:
|
||||
image_format_loader_extension.remove_format_loader()
|
||||
__image_format_loader_extensions.clear()
|
||||
Reference in New Issue
Block a user