/****************************************************************************
* 2024.7 LXD
****************************************************************************/
using System;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.UI;
using QFramework;
using I2.Loc;
namespace QFramework
{
public partial class ToolMessageElement : UIElement
{
///
/// 高度基准
///
private float heightBasic = 219.6412f;
///
/// 展示工具信息
///
public void ShowToolInfo(ToolConfigInfo toolConfigInfo)
{
ToolName.text = toolConfigInfo.toolName;
//"\u3000"首行缩进没效果,改用透明占位符
ToolMessage.text = "占位" + toolConfigInfo.toolDescription.Replace(" ", "\u3000");
#region 多语言
if (LocalizationConfig.localization && LocalizationManager.CurrentLanguage == "English")
{
ToolName.text = toolConfigInfo.en_toolName;
ToolMessage.text = "XXXX" + toolConfigInfo.en_toolDescription.Replace(" ", "\u00A0"); ;
}
#endregion
Content.SetHeight(ToolMessage.preferredHeight);
ToolConfigProxy toolConfigProxy = DAL.Instance.Get();
Sprite tmpSprite = toolConfigProxy.GetSpriteByToolName(toolConfigInfo.toolName);
if (tmpSprite != null)
{
ToolIcon.sprite = tmpSprite;
SetInfoOfImage(ToolIcon.sprite);
}
else
{
ToolIcon.sprite = null;
}
}
///
/// 设置Image信息
///
///
private void SetInfoOfImage(Sprite _sprite)
{
if (_sprite == null) return;
float width = _sprite.texture.width * CalculateScale(_sprite.texture.height);
float height = _sprite.texture.height * CalculateScale(_sprite.texture.height);
ToolIcon.rectTransform.sizeDelta = new Vector2(width, height);
ToolIcon.sprite = _sprite;
}
///
/// 计算比例,以高度为基数计算
///
///
private float CalculateScale(float _spriteHeight)
{
if (_spriteHeight <= heightBasic)
{
return 1;
}
else
{
return heightBasic / _spriteHeight;
}
}
}
}