mirror of
https://github.com/AssetRipper/AssetRipper.git
synced 2025-12-11 20:15:29 +01:00
* WIP file system improvements * Switch to a hierarchial virtual file system * EnumerateFiles and EnumerateDirectories * Change import code to use FileSystem * Use FileSystem when loading assemblies * Use FileSystem in MonoManager initialization * Remove set method for PlatformGameStructure::RootPath * Renaming cleanup
34 lines
623 B
C#
34 lines
623 B
C#
namespace AssetRipper.IO.Files.Streams;
|
|
|
|
internal sealed class SplitNameComparer : IComparer<string>
|
|
{
|
|
public static SplitNameComparer Instance { get; } = new();
|
|
|
|
public int Compare(string? x, string? y)
|
|
{
|
|
int xNumber = GetSplitIndex(x);
|
|
int yNumber = GetSplitIndex(y);
|
|
return xNumber.CompareTo(yNumber);
|
|
}
|
|
|
|
private static int GetSplitIndex(string? value)
|
|
{
|
|
if (string.IsNullOrEmpty(value))
|
|
{
|
|
return -1;
|
|
}
|
|
|
|
int i;
|
|
for (i = value.Length - 1; i >= 0; i--)
|
|
{
|
|
if (!char.IsDigit(value[i]))
|
|
{
|
|
i++;
|
|
break;
|
|
}
|
|
}
|
|
string number = value.Substring(i);
|
|
return int.Parse(number);
|
|
}
|
|
}
|