31 lines
935 B
GDScript
31 lines
935 B
GDScript
class_name DialogueUtil extends RefCounted
|
|
|
|
static func concact_content_from_lines(lines:=[]):
|
|
if lines.is_empty():
|
|
return ""
|
|
var content = ""
|
|
for i in range(len(lines) - 1):
|
|
var line = lines[i] as DialogueLine
|
|
content += TranslationServer.tr(line.translation_key) + "\n"
|
|
# last line without "\n"
|
|
content += TranslationServer.tr(lines[-1].translation_key)
|
|
return content
|
|
|
|
static func get_lines(res: DialogueResource, title: String) -> Array:
|
|
var lines = []
|
|
var current_line = await res.get_next_dialogue_line(title)
|
|
while current_line:
|
|
lines.append(current_line)
|
|
if current_line.next_id != "end":
|
|
current_line = await res.get_next_dialogue_line(current_line.next_id)
|
|
else:
|
|
break
|
|
return lines
|
|
|
|
# pop os lines
|
|
static func generate_lines(content: String) -> Array:
|
|
var text = "~ title\n" + content + "\n=> END"
|
|
var res = DialogueManager.create_resource_from_text(text)
|
|
return await get_lines(res, "title")
|
|
|