88 lines
3.9 KiB
GDScript
88 lines
3.9 KiB
GDScript
@tool
|
|
extends HBoxContainer
|
|
|
|
var current_animation_path = ""
|
|
|
|
func _ready():
|
|
%JoinDefault.get_suggestions_func = get_join_animation_suggestions
|
|
%JoinDefault.enable_pretty_name = true
|
|
%LeaveDefault.get_suggestions_func = get_leave_animation_suggestions
|
|
%LeaveDefault.enable_pretty_name = true
|
|
|
|
func refresh():
|
|
%CustomAnimationsFolderOpener.icon = get_theme_icon("Folder", "EditorIcons")
|
|
%CustomAnimationsFolder.text = DialogicUtil.get_project_setting('dialogic/animations/custom_folder', 'res://addons/dialogic_additions/Animations')
|
|
%PortraitMode.select(DialogicUtil.get_project_setting('dialogic/portrait_mode', 0))
|
|
|
|
%JoinDefault.resource_icon = get_theme_icon("Animation", "EditorIcons")
|
|
%LeaveDefault.resource_icon = get_theme_icon("Animation", "EditorIcons")
|
|
%JoinDefault.set_value(DialogicUtil.pretty_name(DialogicUtil.get_project_setting('dialogic/animations/join_default',
|
|
get_script().resource_path.get_base_dir().path_join('DefaultAnimations/fade_in_up.gd'))))
|
|
%LeaveDefault.set_value(DialogicUtil.get_project_setting('dialogic/animations/leave_default',
|
|
get_script().resource_path.get_base_dir().path_join('DefaultAnimations/fade_out_down.gd')))
|
|
%JoinDefaultLength.set_value(DialogicUtil.get_project_setting('dialogic/animations/join_default_length', 0.5))
|
|
%LeaveDefaultLength.set_value(DialogicUtil.get_project_setting('dialogic/animations/leave_default_length', 0.5))
|
|
%LeaveDefaultWait.button_pressed = DialogicUtil.get_project_setting('dialogic/animations/leave_default_wait', true)
|
|
%JoinDefaultWait.button_pressed = DialogicUtil.get_project_setting('dialogic/animations/join_default_wait', true)
|
|
|
|
|
|
func _on_LeaveDefault_value_changed(property_name, value):
|
|
ProjectSettings.set_setting('dialogic/animations/leave_default', value)
|
|
ProjectSettings.save()
|
|
|
|
|
|
func _on_JoinDefault_value_changed(property_name, value):
|
|
ProjectSettings.set_setting('dialogic/animations/join_default', value)
|
|
ProjectSettings.save()
|
|
|
|
|
|
func _on_JoinDefaultLength_value_changed(value):
|
|
ProjectSettings.set_setting('dialogic/animations/join_default_length', value)
|
|
ProjectSettings.save()
|
|
|
|
|
|
func _on_LeaveDefaultLength_value_changed(value):
|
|
ProjectSettings.set_setting('dialogic/animations/leave_default_length', value)
|
|
ProjectSettings.save()
|
|
|
|
func _on_JoinDefaultWait_toggled(button_pressed):
|
|
ProjectSettings.set_setting('dialogic/animations/join_default_wait', button_pressed)
|
|
ProjectSettings.save()
|
|
|
|
func _on_LeaveDefaultWait_toggled(button_pressed):
|
|
ProjectSettings.set_setting('dialogic/animations/leave_default_wait', button_pressed)
|
|
ProjectSettings.save()
|
|
|
|
|
|
func get_join_animation_suggestions(search_text:String) -> Dictionary:
|
|
var suggestions = {}
|
|
for anim in list_animations():
|
|
if '_in' in anim.get_file():
|
|
suggestions[DialogicUtil.pretty_name(anim)] = {'value':anim, 'icon':get_theme_icon('Animation', 'EditorIcons')}
|
|
return suggestions
|
|
|
|
func get_leave_animation_suggestions(search_text:String) -> Dictionary:
|
|
var suggestions = {}
|
|
for anim in list_animations():
|
|
if '_out' in anim.get_file():
|
|
suggestions[DialogicUtil.pretty_name(anim)] = {'value':anim, 'icon':get_theme_icon('Animation', 'EditorIcons')}
|
|
return suggestions
|
|
|
|
func list_animations() -> Array:
|
|
var list = DialogicUtil.listdir(get_script().resource_path.get_base_dir().path_join('DefaultAnimations'), true, false, true)
|
|
list.append_array(DialogicUtil.listdir(DialogicUtil.get_project_setting('dialogic/animations/custom_folder', 'res://addons/dialogic_additions/Animations'), true, false, true))
|
|
return list
|
|
|
|
|
|
func _on_CustomAnimationsFolderOpener_pressed():
|
|
find_parent('EditorView').godot_file_dialog(custom_anims_folder_selected, '', EditorFileDialog.FILE_MODE_OPEN_DIR, 'Select custom animation folder')
|
|
|
|
func custom_anims_folder_selected(path):
|
|
%CustomAnimationsFolder.text = path
|
|
ProjectSettings.set_setting('dialogic/animations/custom_folder', path)
|
|
ProjectSettings.save()
|
|
|
|
|
|
func _on_PortraitMode_item_selected(index):
|
|
ProjectSettings.set_setting('dialogic/portrait_mode', index)
|
|
ProjectSettings.save()
|