xiandie/ui/text_helper.gd

39 lines
855 B
GDScript

@tool
extends Node
@export var property_name := "text"
@export var translation_key := "":
set(val):
translation_key = val
if is_node_ready():
refresh()
@export var vertical := false
@export_tool_button("刷新") var _refresh = refresh.bind(true)
func _ready() -> void:
refresh()
# res://asset/dialogue/item_description.zh_CN.translation
var items_translation = preload("uid://c1x5bqwulamey") as Translation
func refresh(from_tool := false):
if property_name and translation_key:
var msg = tr(translation_key)
if from_tool:
msg = items_translation.get_message(translation_key)
msg = msg.replace("{br}", "\n")
if vertical:
var new_text = ""
for c in msg:
new_text += c + "\n"
msg = new_text
set(property_name, msg)
func _notification(what: int) -> void:
if what == NOTIFICATION_TRANSLATION_CHANGED:
refresh()