using System.Collections.Generic;
using System.Linq;
namespace PKHeX.Core
{
public static class BoxManipUtil
{
///
/// Grouped categories of different .
///
public static readonly IReadOnlyList[] ManipCategories =
{
BoxManipDefaults.ClearCommon,
BoxManipDefaults.SortCommon,
BoxManipDefaults.SortAdvanced,
BoxManipDefaults.ModifyCommon,
};
public static readonly string[] ManipCategoryNames =
{
"Delete",
"Sort",
"SortAdvanced",
"Modify",
};
///
/// Gets a reference that carries out the action of the requested .
///
/// Manipulation type.
/// Reference to .
public static IBoxManip GetManip(this BoxManipType type) => ManipCategories.SelectMany(c => c).First(m => m.Type == type);
///
/// Gets the corresponding name from for the requested .
///
/// Manipulation type.
/// Category Name
public static string? GetManipCategoryName(this BoxManipType type)
{
for (int i = 0; i < ManipCategories.Length; i++)
{
if (ManipCategories[i].Any(z => z.Type == type))
return ManipCategoryNames[i];
}
return null;
}
///
/// Gets the corresponding name from for the requested .
///
/// Manipulation type.
/// Category Name
public static string? GetManipCategoryName(this IBoxManip manip)
{
for (int i = 0; i < ManipCategories.Length; i++)
{
if (ManipCategories[i].Any(z => z == manip))
return ManipCategoryNames[i];
}
return null;
}
}
}