UI/SpawnMenu/SpawnMenuCategory.cs
public static class SpawnMenuCategory
{
public static string Root( string category )
{
var normalized = Normalize( category );
if ( string.IsNullOrEmpty( normalized ) ) return "Other";
var separator = normalized.IndexOf( '/' );
return separator < 0 ? normalized : normalized[..separator];
}
public static bool Matches( string category, string parentCategory, bool includeSubcategories = true )
{
var path = Normalize( category );
var parent = Normalize( parentCategory );
if ( string.IsNullOrEmpty( parent ) ) return false;
if ( string.IsNullOrEmpty( path ) ) return string.Equals( parent, "Other", StringComparison.OrdinalIgnoreCase );
if ( string.Equals( path, parent, StringComparison.OrdinalIgnoreCase ) ) return true;
return includeSubcategories && path.StartsWith( $"{parent}/", StringComparison.OrdinalIgnoreCase );
}
static string Normalize( string category )
{
return category?.Trim().Trim( '/' ) ?? "";
}
}