pir-serious-game-ethics/addons/dialogic/Editor/Events/Common/Characters/CharacterAndPortraitPicker.gd
2021-04-16 16:35:07 +02:00

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