using System;
using UnityEngine;
using UnityEditor;
namespace Framework.Selection {
  /// 
  ///   Assists the user in editing ground definitions for the navigation system
  /// 
  [CustomEditor(typeof(SelectionTracker), true)]
  public class SelectionTrackerEditor : Editor {
    /// Called when Unity wants to layout or draw the inspector
    public override void OnInspectorGUI() {
      base.OnInspectorGUI();
      
      if(Application.isPlaying) {
        var tracker = target as SelectionTracker;
        GUILayout.Label("Selected items: " + tracker.SelectedObjects.Count.ToString());
        using(new EditorGUILayout.VerticalScope()) {
          int index = 0;
          foreach(Selectable selectable in tracker.SelectedObjects) {
            ++index;
            if(index > 3) {
              break;
            }
            GUILayout.Label(((Component) selectable).name);
          }
        }
        GUILayout.Label("Highlighted items: " + tracker.HighlightedObjects.Count.ToString());
        using(new EditorGUILayout.VerticalScope()) {
          int index = 0;
          foreach(Selectable selectable in tracker.HighlightedObjects) {
            ++index;
            if(index > 3) {
              break;
            }
            GUILayout.Label(((Component) selectable).name);
          }
        }
      }
    }
  }
} // namespace Framework.Selection