Files
2024-11-20 15:21:28 +01:00

65 lines
2.0 KiB
C#

using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.UI;
namespace Invector.vItemManager
{
[vClassHeader("vItemDisplay")]
public class vItemDisplay : vMonoBehaviour
{
[vEditorToolbar("Settings")]
public Image icon;
public Text itemName;
public Text type;
public Text amount;
[vEditorToolbar("ColorByType")]
public bool useColorByType;
public MaskableGraphic bgColor;
public ColorByType[] colorByTypes;
[System.Serializable]
public class ColorByType
{
public List<vItemType> types;
public Color color = Color.white;
public ColorByType()
{
Color color = Color.white;
}
}
[vHelpBox("Use {0} inside string format to inset the value")]
public string nameFormat = "Name: {0}";
public string typeFormat = "Type: {0}";
public string amountFormat = "Amount: {0}";
public bool displayAmountOnlyGreaterOne = true;
public void DisplayItem(vItemManager.CollectedItemInfo info)
{
if (useColorByType)
{
var colorType = System.Array.Find(colorByTypes, c => c.types.Contains(info.item.type));
if(colorType!=null)
bgColor.color = colorType.color;
}
icon.sprite = info.item.icon;
itemName.text = FormatText(nameFormat, info.item.name);
type.text =FormatText(typeFormat, info.item.type.ToString());
if (info.amount > 1 || !displayAmountOnlyGreaterOne)
{
amount.text = FormatText(amountFormat, info.amount.ToString());
}
else amount.text = "";
}
public string FormatText(string format,string value)
{
if (string.IsNullOrEmpty(format)) return value;
return string.Format(format, value);
}
}
}