]> Untitled Git - wolf-seeking-sheep.git/blob - addons/dialogic/Editor/CharacterEditor/char_edit_section_general.gd
Squashed commit of the following:
[wolf-seeking-sheep.git] / addons / dialogic / Editor / CharacterEditor / char_edit_section_general.gd
1 @tool
2 extends DialogicCharacterEditorMainSection
3
4 var min_width := 200
5
6 ## The general character settings tab
7 func _get_title() -> String:
8         return "General"
9
10
11 func _start_opened() -> bool:
12         return true
13
14
15 func _ready() -> void:
16         # Connecting all necessary signals
17         %ColorPickerButton.custom_minimum_size.x = DialogicUtil.get_editor_scale() * 30
18         %ColorPickerButton.color_changed.connect(character_editor.something_changed)
19         %DisplayNameLineEdit.text_changed.connect(character_editor.something_changed)
20         %NicknameLineEdit.text_changed.connect(character_editor.something_changed)
21         %DescriptionTextEdit.text_changed.connect(character_editor.something_changed)
22         min_width = get_minimum_size().x
23         resized.connect(_on_resized)
24
25 func _load_character(resource:DialogicCharacter) -> void:
26         %DisplayNameLineEdit.text = resource.display_name
27         %ColorPickerButton.color = resource.color
28
29         %NicknameLineEdit.text = ""
30         for nickname in resource.nicknames:
31                 %NicknameLineEdit.text += nickname +", "
32         %NicknameLineEdit.text = %NicknameLineEdit.text.trim_suffix(', ')
33
34         %DescriptionTextEdit.text = resource.description
35
36
37 func _save_changes(resource:DialogicCharacter) -> DialogicCharacter:
38         resource.display_name = %DisplayNameLineEdit.text
39         resource.color = %ColorPickerButton.color
40         var nicknames := []
41         for n_name in %NicknameLineEdit.text.split(','):
42                 nicknames.append(n_name.strip_edges())
43         resource.nicknames = nicknames
44         resource.description = %DescriptionTextEdit.text
45
46         return resource
47
48
49 func _on_resized() -> void:
50         if size.x > min_width+20:
51                 self.columns = 2
52         else:
53                 self.columns = 1