@tool extends Node @export var property_name := "text" # 优先使用 inspect_title @export var inspect_title := "": set(val): inspect_title = val if is_node_ready(): refresh() @export var translation_key := "": set(val): translation_key = val if is_node_ready(): refresh() @export var vertical := false @warning_ignore("unused_private_class_variable") @export_tool_button("刷新") var _refresh = refresh func _ready() -> void: refresh() # res://asset/dialogue/item_description.zh_CN.translation var items_translation = preload("uid://c1x5bqwulamey") as Translation func refresh(): if property_name: if inspect_title: set(property_name, _get_tr_content()) elif translation_key: var msg = tr(translation_key) if Engine.is_editor_hint(): 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() func _get_tr_content(): if inspect_title == "": return "" var inspection_note = "" # get note content var line_id = GlobalConfig.DIALOG_INSPECT.titles.get(inspect_title) while line_id and line_id != "end": var line = GlobalConfig.DIALOG_INSPECT.lines[line_id] if line.has("text"): inspection_note += tr(line.get("translation_key")) + "\n" line_id = line.get("next_id") return inspection_note