Why Gemfury? Push, build, and install  RubyGems npm packages Python packages Maven artifacts PHP packages Go Modules Debian packages RPM packages NuGet packages

Repository URL to install this package:

Details    
ai.fluctio.fluctio-sim / EditorCore / HierarchyIcons / HierarchyIconsDrawer.cs
Size: Mime:
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;
		}
	}
}