pir-serious-game-ethics/addons/dialogic/Editor/Events/Question.gd
2021-04-12 10:59:12 +02:00

66 lines
1.7 KiB
GDScript

tool
extends Control
var editor_reference
var editorPopup
# This is the information of this event and it will get parsed and saved to the JSON file.
var event_data = {
'question': '',
'options': [],
'character': '',
'portrait': '',
}
onready var portrait_picker = $PanelContainer/VBoxContainer/Header/PortraitPicker
func _ready():
$PanelContainer/VBoxContainer/Header/CharacterPicker.connect('character_selected', self , '_on_character_selected')
portrait_picker.get_popup().connect("index_pressed", self, '_on_portrait_selected')
var c_list = DialogicUtil.get_sorted_character_list()
if c_list.size() == 0:
$PanelContainer/VBoxContainer/Header/CharacterPicker.visible = false
else:
# Default Speaker
for c in c_list:
if c['default_speaker']:
event_data['character'] = c['file']
func load_data(data):
event_data = data
if not event_data.has('character'):
event_data['character'] = ''
if not event_data.has('portrait'):
event_data['portrait'] = ''
$PanelContainer/VBoxContainer/Header/LineEdit.text = event_data['question']
update_preview()
func _on_LineEdit_text_changed(new_text):
event_data['question'] = new_text
func _on_character_selected(data):
event_data['character'] = data['file']
update_preview()
func _on_portrait_selected(index):
var text = portrait_picker.get_popup().get_item_text(index)
if text == "[Don't change]":
text = ''
portrait_picker.text = ''
event_data['portrait'] = text
update_preview()
func update_preview():
portrait_picker.set_character(event_data['character'], event_data['portrait'])
for c in DialogicUtil.get_character_list():
if c['file'] == event_data['character']:
$PanelContainer/VBoxContainer/Header/CharacterPicker.set_data_by_file(event_data['character'])