Blobby/addons/AsepriteWizard/config/config.gd

176 lines
5.3 KiB
GDScript

tool
extends Reference
# GLOBAL CONFIGS
const CONFIG_FILE_PATH = 'user://aseprite_wizard.cfg'
const _CONFIG_SECTION_KEY = 'aseprite'
const _COMMAND_KEY = 'command'
const _IMPORTER_ENABLE_KEY = 'is_importer_enabled'
const _REMOVE_SOURCE_FILES_KEY = 'remove_source_files'
const _LOOP_ENABLED = 'loop_enabled'
const _LOOP_EXCEPTION_PREFIX = 'loop_config_prefix'
const _DEFAULT_LOOP_EX_PREFIX = '_'
const _DEFAULT_EXCLUSION_PATTERN_KEY = 'default_layer_ex_pattern'
# IMPORT CONFIGS
const _IMPORT_SECTION_KEY = 'file_locations'
const _I_LAST_SOURCE_PATH_KEY = 'source'
const _I_LAST_OUTPUT_DIR_KEY = 'output'
const _I_SHOULD_SPLIT_LAYERS_KEY = 'split_layers'
const _I_EXCEPTIONS_KEY = 'exceptions_key'
const _I_ONLY_VISIBLE_LAYERS_KEY = 'only_visible_layers'
const _I_CUSTOM_NAME_KEY = 'custom_name'
const _I_DO_NOT_CREATE_RES_KEY = 'disable_resource_creation'
# INTERFACE CONFIGS
var _icon_arrow_down: Texture
var _icon_arrow_right: Texture
var _config := ConfigFile.new()
func load_config() -> void:
_config = ConfigFile.new()
_config.load(CONFIG_FILE_PATH)
func save() -> void:
_config.save(CONFIG_FILE_PATH)
#######################################################
# GLOBAL CONFIGS
######################################################
func default_command() -> String:
return 'aseprite'
func get_command() -> String:
var command = _config.get_value(_CONFIG_SECTION_KEY, _COMMAND_KEY, "")
return command if command != "" else default_command()
func set_command(aseprite_command: String) -> void:
if aseprite_command == "":
_config.set_value(_CONFIG_SECTION_KEY, _COMMAND_KEY, default_command())
else:
_config.set_value(_CONFIG_SECTION_KEY, _COMMAND_KEY, aseprite_command)
func is_importer_enabled() -> bool:
return _config.get_value(_CONFIG_SECTION_KEY, _IMPORTER_ENABLE_KEY, false)
func set_importer_enabled(is_enabled: bool) -> void:
_config.set_value(_CONFIG_SECTION_KEY, _IMPORTER_ENABLE_KEY, is_enabled)
func should_remove_source_files() -> bool:
return _config.get_value(_CONFIG_SECTION_KEY, _REMOVE_SOURCE_FILES_KEY, true)
func set_remove_source_files(should_remove: bool) -> void:
_config.set_value(_CONFIG_SECTION_KEY, _REMOVE_SOURCE_FILES_KEY, should_remove)
func is_default_animation_loop_enabled() -> bool:
return _config.get_value(_CONFIG_SECTION_KEY, _LOOP_ENABLED, true)
func set_default_animation_loop(should_loop: bool) -> void:
_config.set_value(_CONFIG_SECTION_KEY, _LOOP_ENABLED, should_loop)
func get_animation_loop_exception_prefix() -> String:
return _config.get_value(_CONFIG_SECTION_KEY, _LOOP_EXCEPTION_PREFIX, _DEFAULT_LOOP_EX_PREFIX)
func set_animation_loop_exception_prefix(prefix: String) -> void:
_config.set_value(_CONFIG_SECTION_KEY, _LOOP_EXCEPTION_PREFIX, prefix if prefix != "" else _DEFAULT_LOOP_EX_PREFIX)
func get_default_exclusion_pattern() -> String:
return _config.get_value(_CONFIG_SECTION_KEY, _DEFAULT_EXCLUSION_PATTERN_KEY, "")
func set_default_exclusion_pattern(pattern: String) -> void:
_config.set_value(_CONFIG_SECTION_KEY, _DEFAULT_EXCLUSION_PATTERN_KEY, pattern)
#######################################################
# IMPORT CONFIGS
######################################################
func get_last_source_path() -> String:
return _config.get_value(_IMPORT_SECTION_KEY, _I_LAST_SOURCE_PATH_KEY, "")
func set_last_source_path(source_path: String) -> void:
_config.set_value(_IMPORT_SECTION_KEY, _I_LAST_SOURCE_PATH_KEY, source_path)
func get_last_output_path() -> String:
return _config.get_value(_IMPORT_SECTION_KEY, _I_LAST_OUTPUT_DIR_KEY, "")
func set_last_output_path(output_path: String) -> void:
_config.set_value(_IMPORT_SECTION_KEY, _I_LAST_OUTPUT_DIR_KEY, output_path)
func should_split_layers() -> bool:
return _config.get_value(_IMPORT_SECTION_KEY, _I_SHOULD_SPLIT_LAYERS_KEY, false)
func set_split_layers(should_split: bool) -> void:
_config.set_value(_IMPORT_SECTION_KEY, _I_SHOULD_SPLIT_LAYERS_KEY, false)
func get_exception_pattern() -> String:
return _config.get_value(_IMPORT_SECTION_KEY, _I_EXCEPTIONS_KEY, "")
func set_exception_pattern(pattern: String) -> void:
_config.set_value(_IMPORT_SECTION_KEY, _I_EXCEPTIONS_KEY, pattern)
func should_include_only_visible_layers() -> bool:
return _config.get_value(_IMPORT_SECTION_KEY, _I_ONLY_VISIBLE_LAYERS_KEY, false)
func set_include_only_visible_layers(include_only_visible: bool) -> void:
_config.set_value(_IMPORT_SECTION_KEY, _I_ONLY_VISIBLE_LAYERS_KEY, include_only_visible)
func get_last_custom_name() -> String:
return _config.get_value(_IMPORT_SECTION_KEY, _I_CUSTOM_NAME_KEY, "")
func set_custom_name(custom_name: String) -> void:
_config.set_value(_IMPORT_SECTION_KEY, _I_CUSTOM_NAME_KEY, custom_name)
func should_not_create_resource() -> bool:
return _config.get_value(_IMPORT_SECTION_KEY, _I_DO_NOT_CREATE_RES_KEY, false)
func set_do_not_create_resource(do_no_create: bool) -> void:
_config.set_value(_IMPORT_SECTION_KEY, _I_DO_NOT_CREATE_RES_KEY, do_no_create)
#######################################################
# INTERFACE CONFIGS
######################################################
func set_icon_arrow_down(icon: Texture) -> void:
_icon_arrow_down = icon
func get_icon_arrow_down() -> Texture:
return _icon_arrow_down
func set_icon_arrow_right(icon: Texture) -> void:
_icon_arrow_right = icon
func get_icon_arrow_right() -> Texture:
return _icon_arrow_right