using System.Collections.Generic;
using Cielonos.MainGame.Inventory;
using SLSUtilities.General;
using SLSUtilities.UI;
using TMPro;
using UnityEngine;
using UnityEngine.UI;
namespace Cielonos.MainGame.UI
{
///
/// 单条物品描述条目 UI 组件。
/// 渲染管线:Localize → DisplayTextResolver.Resolve → InputGlyphParser.Parse → TMP_Text。
///
public class ItemDescriptionEntry : MonoBehaviour
{
private const string LocalizationTable = "Items";
[Tooltip("描述文本,显示 descriptionKey 的本地化内容(含动态数值替换和按键图标解析)。")]
public TMP_Text descriptionText;
///
/// 使用 的数据填充描述条目。
/// 完整渲染管线:本地化 → {key} 占位符替换 → [Token] 按键图标解析。
///
/// 描述数据。
/// 可选的动态值字典,用于替换本地化文本中的 {key} 占位符。
public void SetDescription(ItemDescription description, Dictionary descriptionArgs = null)
{
if (description == null)
{
Clear();
return;
}
if (descriptionText == null) return;
if (string.IsNullOrEmpty(description.descriptionKey))
{
descriptionText.text = string.Empty;
return;
}
string localizedText = description.descriptionKey.Localize(LocalizationTable);
localizedText = DisplayTextResolver.Resolve(localizedText, descriptionArgs);
descriptionText.text = InputGlyphParser.Parse(localizedText);
}
/// 清空条目内容。
public void Clear()
{
if (descriptionText != null)
{
descriptionText.text = string.Empty;
}
}
}
}