]> Untitled Git - wolf-seeking-sheep.git/blob - addons/dialogic/Modules/Character/settings_portraits.gd
Updated export config options
[wolf-seeking-sheep.git] / addons / dialogic / Modules / Character / settings_portraits.gd
1 @tool
2 extends DialogicSettingsPage
3
4
5 const POSITION_SUGGESTION_KEY := 'dialogic/portraits/position_suggestion_names'
6
7 const DEFAULT_PORTRAIT_SCENE_KEY := 'dialogic/portraits/default_portrait'
8
9 const ANIMATION_JOIN_DEFAULT_KEY                        := 'dialogic/animations/join_default'
10 const ANIMATION_JOIN_DEFAULT_LENGTH_KEY         := 'dialogic/animations/join_default_length'
11 const ANIMATION_JOIN_DEFAULT_WAIT_KEY           := 'dialogic/animations/join_default_wait'
12 const ANIMATION_LEAVE_DEFAULT_KEY                       := 'dialogic/animations/leave_default'
13 const ANIMATION_LEAVE_DEFAULT_LENGTH_KEY        := 'dialogic/animations/leave_default_length'
14 const ANIMATION_LEAVE_DEFAULT_WAIT_KEY          := 'dialogic/animations/leave_default_wait'
15 const ANIMATION_CROSSFADE_DEFAULT_KEY           := 'dialogic/animations/cross_fade_default'
16 const ANIMATION_CROSSFADE_DEFAULT_LENGTH_KEY:= 'dialogic/animations/cross_fade_default_length'
17
18
19 func _ready():
20         %JoinDefault.get_suggestions_func = get_join_animation_suggestions
21         %JoinDefault.mode = 1
22         %LeaveDefault.get_suggestions_func = get_leave_animation_suggestions
23         %LeaveDefault.mode = 1
24         %CrossFadeDefault.get_suggestions_func = get_crossfade_animation_suggestions
25         %CrossFadeDefault.mode = 1
26
27         %PositionSuggestions.text_submitted.connect(save_setting.bind(POSITION_SUGGESTION_KEY))
28         %CustomPortraitScene.value_changed.connect(save_setting_with_name.bind(DEFAULT_PORTRAIT_SCENE_KEY))
29
30         %JoinDefault.value_changed.connect(
31                 save_setting_with_name.bind(ANIMATION_JOIN_DEFAULT_KEY))
32         %JoinDefaultLength.value_changed.connect(
33                 save_setting.bind(ANIMATION_JOIN_DEFAULT_LENGTH_KEY))
34         %JoinDefaultWait.toggled.connect(
35                 save_setting.bind(ANIMATION_JOIN_DEFAULT_WAIT_KEY))
36
37         %LeaveDefault.value_changed.connect(
38                 save_setting_with_name.bind(ANIMATION_LEAVE_DEFAULT_KEY))
39         %LeaveDefaultLength.value_changed.connect(
40                 save_setting.bind(ANIMATION_LEAVE_DEFAULT_LENGTH_KEY))
41         %LeaveDefaultWait.toggled.connect(
42                 save_setting.bind(ANIMATION_LEAVE_DEFAULT_WAIT_KEY))
43
44         %CrossFadeDefault.value_changed.connect(
45                 save_setting_with_name.bind(ANIMATION_CROSSFADE_DEFAULT_KEY))
46         %CrossFadeDefaultLength.value_changed.connect(
47                 save_setting.bind(ANIMATION_CROSSFADE_DEFAULT_LENGTH_KEY))
48
49
50 func _refresh():
51         %PositionSuggestions.text = ProjectSettings.get_setting(POSITION_SUGGESTION_KEY, 'leftmost, left, center, right, rightmost')
52
53         %CustomPortraitScene.resource_icon = get_theme_icon(&"PackedScene", &"EditorIcons")
54         %CustomPortraitScene.set_value(ProjectSettings.get_setting(DEFAULT_PORTRAIT_SCENE_KEY, ''))
55
56         # JOIN
57         %JoinDefault.resource_icon = get_theme_icon(&"Animation", &"EditorIcons")
58         %JoinDefault.set_value(ProjectSettings.get_setting(ANIMATION_JOIN_DEFAULT_KEY, "Fade In Up"))
59         %JoinDefaultLength.set_value(ProjectSettings.get_setting(ANIMATION_JOIN_DEFAULT_LENGTH_KEY, 0.5))
60         %JoinDefaultWait.button_pressed = ProjectSettings.get_setting(ANIMATION_JOIN_DEFAULT_WAIT_KEY, true)
61
62         # LEAVE
63         %LeaveDefault.resource_icon = get_theme_icon(&"Animation", &"EditorIcons")
64         %LeaveDefault.set_value(ProjectSettings.get_setting(ANIMATION_LEAVE_DEFAULT_KEY, "Fade Out Down"))
65         %LeaveDefaultLength.set_value(ProjectSettings.get_setting(ANIMATION_LEAVE_DEFAULT_LENGTH_KEY, 0.5))
66         %LeaveDefaultWait.button_pressed = ProjectSettings.get_setting(ANIMATION_LEAVE_DEFAULT_WAIT_KEY, true)
67
68         # CROSS FADE
69         %CrossFadeDefault.resource_icon = get_theme_icon(&"Animation", &"EditorIcons")
70         %CrossFadeDefault.set_value(ProjectSettings.get_setting(ANIMATION_CROSSFADE_DEFAULT_KEY, "Fade Cross"))
71         %CrossFadeDefaultLength.set_value(ProjectSettings.get_setting(ANIMATION_CROSSFADE_DEFAULT_LENGTH_KEY, 0.5))
72
73
74 func save_setting_with_name(property_name:String, value:Variant, settings_key:String) -> void:
75         save_setting(value, settings_key)
76
77
78 func save_setting(value:Variant, settings_key:String) -> void:
79         ProjectSettings.set_setting(settings_key, value)
80         ProjectSettings.save()
81
82
83 func get_join_animation_suggestions(search_text:String) -> Dictionary:
84         return DialogicPortraitAnimationUtil.get_suggestions(search_text, %JoinDefault.current_value, "", DialogicPortraitAnimationUtil.AnimationType.IN)
85
86
87 func get_leave_animation_suggestions(search_text:String) -> Dictionary:
88         return DialogicPortraitAnimationUtil.get_suggestions(search_text, %LeaveDefault.current_value, "", DialogicPortraitAnimationUtil.AnimationType.OUT)
89
90
91 func get_crossfade_animation_suggestions(search_text:String) -> Dictionary:
92         return DialogicPortraitAnimationUtil.get_suggestions(search_text, %CrossFadeDefault.current_value, "", DialogicPortraitAnimationUtil.AnimationType.CROSSFADE)