56 lines
1.4 KiB
GDScript
56 lines
1.4 KiB
GDScript
tool
|
|
extends HBoxContainer
|
|
|
|
onready var character_picker = $CharacterPicker
|
|
onready var portrait_picker = $PortraitPicker
|
|
|
|
signal character_changed(character, portrait)
|
|
|
|
var allow_portrait_dont_change := true
|
|
|
|
var character := {}
|
|
var portrait: String
|
|
|
|
|
|
func _ready():
|
|
character_picker.connect('character_selected', self , '_on_character_selected')
|
|
portrait_picker.connect("portrait_selected", self, '_on_portrait_selected')
|
|
|
|
|
|
func set_allow_portrait_dont_change(dont_allow: bool):
|
|
allow_portrait_dont_change = dont_allow
|
|
portrait_picker.allow_dont_change = dont_allow
|
|
|
|
|
|
func set_data(c: String, p: String):
|
|
character = {}
|
|
for ch in DialogicUtil.get_character_list():
|
|
if ch['file'] == c:
|
|
character = ch
|
|
|
|
if character.has('name') and character.has('color'):
|
|
character_picker.set_data(character['name'], Color(character['color']))
|
|
portrait_picker.set_character(character, p)
|
|
else:
|
|
character_picker.set_data('', Color('#FFFFFF'))
|
|
portrait_picker.set_character({}, '')
|
|
|
|
|
|
|
|
func _on_character_selected(data: Dictionary):
|
|
character = data
|
|
if allow_portrait_dont_change or character.keys().size() == 0:
|
|
portrait = ''
|
|
else:
|
|
portrait = 'Default'
|
|
portrait_picker.set_character(character)
|
|
emit_signal("character_changed", character, portrait)
|
|
|
|
|
|
func _on_portrait_selected(p: String):
|
|
portrait = p
|
|
emit_signal("character_changed", character, portrait)
|
|
|
|
|
|
func get_selected_character() -> Dictionary:
|
|
return character
|