using System;
using System.Collections.Generic;
using System.Linq;
using UnityEngine;
namespace Unity.VisualScripting
{
public class EnumOptionTree : FuzzyOptionTree
{
public EnumOptionTree(Type enumType) : base(new GUIContent(enumType.HumanName()))
{
Ensure.That(nameof(enumType)).IsNotNull(enumType);
enums = Enum.GetValues(enumType).Cast<Enum>().ToList();
}
private readonly List<Enum> enums;
public override IFuzzyOption Option(object item)
{
return new EnumOption((Enum)item);
}
public override IEnumerable<object> Root()
{
return enums.Cast<object>();
}
public override IEnumerable<object> Children(object item)
{
return Enumerable.Empty<object>();
}
public static EnumOptionTree For<T>()
{
return new EnumOptionTree(typeof(T));
}
}
}