Files
2025-04-26 10:41:46 -05:00

71 lines
2.2 KiB
GDScript

@tool
extends RefCounted
const _Result = preload("../result.gd").Class
const _Common = preload("../common.gd")
const _Options = preload("../options.gd")
class ImportResult:
extends _Result
var resource: Resource
var resource_saver_flags: ResourceSaver.SaverFlags
func _get_result_type_description() -> String:
return "Import"
func success(
resource: Resource,
resource_saver_flags: ResourceSaver.SaverFlags = ResourceSaver.FLAG_NONE
) -> void:
_success()
self.resource = resource
self.resource_saver_flags = resource_saver_flags
var __options: Array[Dictionary] = [
_Options.create_option(_Options.DEFAULT_ANIMATION_NAME, "default",
PROPERTY_HINT_NONE, "", PROPERTY_USAGE_DEFAULT),
_Options.create_option(_Options.DEFAULT_ANIMATION_DIRECTION, _Common.AnimationDirection.FORWARD,
PROPERTY_HINT_ENUM, ",".join(_Common.ANIMATION_DIRECTIONS_NAMES), PROPERTY_USAGE_DEFAULT),
_Options.create_option(_Options.DEFAULT_ANIMATION_REPEAT_COUNT, 0,
PROPERTY_HINT_RANGE, "0,,1,or_greater", PROPERTY_USAGE_DEFAULT),
_Options.create_option(_Options.AUTOPLAY_ANIMATION_NAME, "",
PROPERTY_HINT_NONE, "", PROPERTY_USAGE_DEFAULT),
_Options.create_option(_Options.ATLAS_TEXTURES_REGION_FILTER_CLIP_ENABLED, false,
PROPERTY_HINT_NONE, "", PROPERTY_USAGE_DEFAULT),
]
var __name: String
var __resource_type: StringName
var __save_extension: String
func _init(
name: String,
resource_type: String,
save_extension: String,
options: Array[Dictionary] = []) -> void:
__name = name
__resource_type = resource_type
__save_extension = save_extension
__options.append_array(options)
func get_name() -> String:
return __name
func get_resource_type() -> StringName:
return __resource_type
func get_save_extension() -> String:
return __save_extension
func get_options() -> Array[Dictionary]:
return __options
func import(
source_file_path: String,
atlas: Texture2D,
sprite_sheet: _Common.SpriteSheetInfo,
animation_library: _Common.AnimationLibraryInfo,
options: Dictionary,
save_path: String) -> ImportResult:
assert(false, "This method is abstract and must be overriden.")
var result: ImportResult = ImportResult.new()
result.fail(ERR_UNCONFIGURED, "This method is abstract and must be overriden.")
return result