/// <summary> /// Tries adding a game to the collection with the provided executable path /// </summary> /// <param name="exePath"></param> /// <returns></returns> public UserGameInfo TryAddGame(string exePath) { string lower = exePath.ToLower(); string fileName = Path.GetFileName(exePath).ToLower(); string dir = Path.GetDirectoryName(exePath); var possibilities = Games.Values.Where(c => c.ExecutableName == fileName); foreach (GenericGameInfo game in possibilities) { // check if the Context matches string[] context = game.ExecutableContext; bool notAdd = false; if (context != null) { for (int j = 0; j < context.Length; j++) { string con = Path.Combine(dir, context[j]); if (!File.Exists(con) && !Directory.Exists(con)) { notAdd = true; break; } } } if (notAdd) { continue; } // search for the same exe on the user profile if (GameManager.Instance.User.Games.Any(c => c.ExePath.ToLower() == lower)) { continue; } #if RELEASE if (game.Debug) { continue; } #endif Log.WriteLine($"Found game: {game.GameName}, full path: {exePath}"); UserGameInfo uinfo = new UserGameInfo(); uinfo.InitializeDefault(game, exePath); GameManager.Instance.User.Games.Add(uinfo); GameManager.Instance.SaveUserProfile(); return(uinfo); } return(null); }
public UserGameInfo AddGame(GenericGameInfo game, string exePath) { UserGameInfo gInfo = new UserGameInfo(); gInfo.InitializeDefault(game, exePath); user.Games.Add(gInfo); SaveUserProfile(); return(gInfo); }
/// <summary> /// Tries adding a game to the collection with the provided executable path /// </summary> /// <param name="exePath"></param> /// <returns></returns> public UserGameInfo TryAddGame(string exePath) { string lower = exePath.ToLower(); string dir = Path.GetDirectoryName(exePath); var possibilities = GetAllHandlers(exePath); foreach (GameHandlerMetadata metadata in possibilities) { // check if the Context matches string[] context = metadata.ExeContext; bool notAdd = false; if (context != null) { for (int j = 0; j < context.Length; j++) { string con = Path.Combine(dir, context[j]); if (!File.Exists(con) && !Directory.Exists(con)) { notAdd = true; break; } } } if (notAdd || user.Games.Any(c => c.ExePath.ToLower() == lower)) { continue; } Log.WriteLine($"Found game: {metadata.Title}, on path: {exePath}"); UserGameInfo uinfo = new UserGameInfo(); uinfo.InitializeDefault(metadata, exePath); user.Games.Add(uinfo); user.Save(); return(uinfo); } return(null); }
/// <summary> /// Tries adding a game to the collection with the provided IGameInfo /// </summary> /// <param name="exePath"></param> /// <returns></returns> public UserGameInfo TryAddGame(string exePath, GameHandlerMetadata metadata) { string lower = exePath.ToLower(); string dir = Path.GetDirectoryName(exePath); if (user.Games.Any(c => c.ExePath.ToLower() == lower)) { return(null); } Log.WriteLine($"Added game: {metadata.Title}, on path: {exePath}"); UserGameInfo uinfo = new UserGameInfo(); uinfo.InitializeDefault(metadata, exePath); user.Games.Add(uinfo); user.Save(); return(uinfo); }
/// <summary> /// Tries adding a game to the collection with the provided IGameInfo /// </summary> /// <param name="exePath"></param> /// <returns></returns> public UserGameInfo TryAddGame(string exePath, GenericGameInfo game) { string lower = exePath.ToLower(); // search for the same exe on the user profile if (GameManager.Instance.User.Games.Any(c => c.ExePath.ToLower() == lower)) { return(null); } Log.WriteLine($"Found game: {game.GameName}, full path: {exePath}"); UserGameInfo uinfo = new UserGameInfo(); uinfo.InitializeDefault(game, exePath); GameManager.Instance.User.Games.Add(uinfo); GameManager.Instance.SaveUserProfile(); return(uinfo); }