﻿using System.Collections.Generic;
using Gamelogic;
using Gamelogic.Grids;
using UnityEngine;

public class ImageMapGrid : GridBehaviour<PointyHexPoint>
{
	public Texture2D texture;
	public ImageMapMode mode;

	private readonly List<Material> materials = new List<Material>();

	public override void InitGrid()
	{
		foreach (var material in materials)
		{
			DestroyImmediate(material);
		}

		var imageMap =
			new UVImageMap<PointyHexPoint>(
				Grid, 
				Map.To2D(),
				mode);

		foreach (var point in Grid)
		{
			var cell = (UVCell) Grid[point];
			cell.transform.SetLocalRotationX(-90);
			cell.SetTexture(texture);
			cell.name = point.ToString();

			var imagePoint = imageMap[point];
			cell.Color = Color.white;
			
			cell.SetUVs(imagePoint, imageMap.GetCellDimensions(point));
		}
	}
}
