using OWML.Utils; using System; using System.Collections.Generic; namespace NewHorizons.Utility.OWML { public static class EnumUtilities { private static List Enums = new List(); public static void ClearCache() { foreach (var @enum in Enums) { if (@enum == null) continue; EnumUtils.Remove(@enum.GetType(), @enum); } Enums.Clear(); } public static T Create(string name) where T : Enum { T @enum = EnumUtils.Create(name); Enums.SafeAdd(@enum); return @enum; } public static void Create(string name, T value) where T : Enum { EnumUtils.Create(name, value); Enums.SafeAdd(value); } public static void Remove(string name) where T : Enum { T @enum = EnumUtils.Parse(name); Enums.Remove(@enum); EnumUtils.Remove(name); } public static void Remove(T value) where T : Enum { Enums.Remove(value); EnumUtils.Remove(value); } } }