39 lines
855 B
GDScript
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()
|