35 lines
787 B
GDScript
35 lines
787 B
GDScript
@tool
|
|
extends Node
|
|
|
|
@export var property_name := "text"
|
|
@export var translation_key := ""
|
|
@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()
|