pokepurple/addons/twitcher/media/native/GIF2SpriteFramesPlugin.gd

54 lines
1.3 KiB
GDScript3
Raw Normal View History

# Derived from https://github.com/jegor377/godot-gdgifexporter
@tool
extends EditorImportPlugin
class_name GifImporterNative
enum Presets { DEFAULT }
func _get_importer_name() -> String:
return "gif.animated.texture.plugin"
func _get_visible_name() -> String:
return "Sprite Frames (Native)"
func _get_recognized_extensions() -> PackedStringArray:
return ["gif"]
func _get_save_extension() -> String:
return "res"
func _get_resource_type() -> String:
return "SpriteFrames"
func _get_priority() -> float:
return 90.0;
func _get_preset_count() -> int:
return Presets.size()
func _get_preset_name(preset_index: int) -> String:
return "Default"
func _get_import_options(path: String, preset_index: int) -> Array[Dictionary]:
return []
func _get_import_order() -> int:
return 0
func _get_option_visibility(path: String, option_name: StringName, options: Dictionary) -> bool:
return true
func _import(source_file: String, save_path: String, options: Dictionary, platform_variants: Array[String], gen_files: Array[String]) -> Error:
var reader = GifReader.new()
var tex = reader.read(source_file)
if tex == null:
return FAILED
var filename = save_path + "." + _get_save_extension()
return ResourceSaver.save(
tex,
"%s.%s" % [save_path, _get_save_extension()],
ResourceSaver.SaverFlags.FLAG_COMPRESS
)