private void LoadSaveList()
{
Worlds.Clear();
var list = new List<WorldResource>();
#region local saves
if (Directory.Exists(BaseLocalPath.SavesPath))
{
var userPaths = Directory.GetDirectories(BaseLocalPath.SavesPath);
foreach (var userPath in userPaths)
{
var userName = Path.GetFileName(userPath);
list.AddRange(FindSaveFiles(userPath, userName, SaveWorldType.Local, BaseLocalPath));
}
}
#endregion
#region Host Server
if (Directory.Exists(BaseDedicatedServerHostPath.SavesPath))
{
list.AddRange(FindSaveFiles(BaseDedicatedServerHostPath.SavesPath, "Local / Console", SaveWorldType.DedicatedServerHost, BaseDedicatedServerHostPath));
}
#endregion
#region Service Server
if (Directory.Exists(BaseDedicatedServerServicePath.SavesPath))
{
var instancePaths = Directory.GetDirectories(BaseDedicatedServerServicePath.SavesPath);
foreach (var instancePath in instancePaths)
{
var lastLoadedPath = Path.Combine(instancePath, "Saves");
if (Directory.Exists(lastLoadedPath))
{
var instanceName = Path.GetFileName(instancePath);
var dataPath = new UserDataPath(instancePath, "Saves", "Mods");
list.AddRange(FindSaveFiles(lastLoadedPath, instanceName, SaveWorldType.DedicatedServerService, dataPath));
}
}
}
#endregion
foreach (var item in list.OrderByDescending(w => w.LastLoadTime))
Worlds.Add(item);
}