Repository URL to install this package:
|
Version:
1.3.2 ▾
|
using Fluctio.FluctioSim.Common.Icons;
using Fluctio.FluctioSim.EditorUtils.Gui;
using UnityEngine;
namespace Fluctio.FluctioSim.EditorCore.HierarchyIcons
{
public class HierarchyIconsDrawer
{
private Rect _currentIconRect;
private readonly Vector2 _rectShift;
public HierarchyIconsDrawer(Rect rowRect)
{
var verticalPadding = Mathf.Min(rowRect.height / 10, 2);
var squareSide = rowRect.height - verticalPadding*2;
var horizontalPadding = Mathf.Min(squareSide / 5, 10);
_rectShift = new Vector2(-(squareSide + horizontalPadding), 0);
_currentIconRect = new Rect(rowRect.xMax - squareSide, rowRect.y + verticalPadding, squareSide, squareSide);
}
public void DrawIcon(Texture2D icon)
{
var iconInfo = HierarchyIconsSettings.IconsInfo[icon];
if (iconInfo != null)
{
DrawIcon(icon, iconInfo);
}
}
public void DrawIcon(Texture2D icon, HierarchyIconInfo iconInfo)
{
if (!iconInfo.IsEnabled)
{
return;
}
var whiteIcon = DefinedIcons.GetWhiteVersion(icon);
if (whiteIcon == null)
{
Debug.LogWarning($"Could not find recolorable version of icon {icon}");
GUI.DrawTexture(_currentIconRect, icon);
}
else
{
using (new ColorScope(iconInfo.Color))
{
GUI.DrawTexture(_currentIconRect, whiteIcon);
}
}
_currentIconRect.position += _rectShift;
}
}
}