using UnityEngine;
using UnityEditor;
 
[CustomEditor(typeof(DeikstraSystem))]
public class DeikstraSystemEditor : Editor
{
   
 
    // отрисовка в сцене, здесь в отличии от компонента, где мы использовали
    // для отрисовки класс Gizmos используется клас Handles (манипуляторы)
    public void OnSceneGUI()
    {
 
        DeikstraSystem sys = target as DeikstraSystem;
        if (sys) 
        {
			for (int i=0;i<sys.Waypoints.Length;i++) {
				Handles.Label(sys.Waypoints[i].mesh.transform.position+Vector3.up*2,"Waypoint ID:  "+sys.Waypoints[i].id);
				sys.Waypoints[i].id = i;
				sys.Waypoints[i].mesh.parent = sys.transform;
				
			}
			for (int n=0;n<sys.Edges.Length;n++) {
				Handles.DrawLine(sys.Waypoints[sys.Edges[n].begin].mesh.position,sys.Waypoints[sys.Edges[n].end].mesh.position);
				sys.Edges[n].name = "Edge("+sys.Edges[n].begin+";"+sys.Edges[n].end+")";
			}
			
			if (sys.Type==DeikstraType.line) 
			{
				for (int c=0;c<sys.Edges.Length;c++)
				{
					sys.Edges[c].begin = c;
					sys.Edges[c].end = c+1;
				}
			}
			
        }
 
        // если мы двигали контрольные точки, то мы должны указать редактору,
        // что объект изменился (стал "грязным")
        if (GUI.changed)
            EditorUtility.SetDirty(target);
    }
 
}