You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 

71 lines
2.2 KiB

tool
extends ScrollContainer
var editor_reference
onready var master_tree = get_node('../MasterTreeContainer/MasterTree')
var current_definition = null
onready var nodes = {
'name' : $VBoxContainer/HBoxContainer/VBoxContainer/Name,
'extra_editor': $VBoxContainer/HBoxContainer/ExtraInfo,
'extra_title': $VBoxContainer/HBoxContainer/ExtraInfo/Title,
'extra_text': $VBoxContainer/HBoxContainer/ExtraInfo/Text,
'extra_extra': $VBoxContainer/HBoxContainer/ExtraInfo/Extra,
}
func _ready():
editor_reference = find_parent('EditorView')
reset_editor()
nodes['name'].connect('text_changed', self, '_on_name_changed')
nodes['name'].connect('focus_exited', self, '_update_name_on_tree')
func is_selected(id: String):
return current_definition != null and current_definition['id'] == id
func load_definition(id):
current_definition = DialogicResources.get_default_definition_item(id)
reset_editor()
nodes['name'].editable = true
nodes['name'].text = current_definition['name']
nodes['extra_title'].text = current_definition['title']
nodes['extra_text'].text = current_definition['text']
nodes['extra_extra'].text = current_definition['extra']
func reset_editor():
nodes['name'].text = ''
nodes['extra_title'].text = ''
nodes['extra_text'].text = ''
nodes['extra_extra'].text = ''
func _on_name_changed(text):
if current_definition != null:
save_definition()
func _input(event):
if event is InputEventKey and event.pressed:
if nodes['name'].has_focus():
if event.scancode == KEY_ENTER:
nodes['name'].release_focus()
func _update_name_on_tree():
var item = master_tree.get_selected()
item.set_text(0, nodes['name'].text)
if current_definition != null:
save_definition()
master_tree.build_definitions(current_definition['id'])
func create_glossary_entry() -> String:
var id = DialogicUtil.generate_random_id()
DialogicResources.set_default_definition_glossary(id, 'New glossary entry', '', '', '')
return id
func save_definition():
if current_definition != null and current_definition['id'] != '':
DialogicResources.set_default_definition_glossary(current_definition['id'], nodes['name'].text, nodes['extra_title'].text, nodes['extra_text'].text, nodes['extra_extra'].text)