public GameMetadata GetMetadata(Game game) { var gameData = new Game("SteamGame") { GameId = game.GameId }; var gameId = game.ToSteamGameID(); if (gameId.IsMod) { var data = library.GetInstalledModFromFolder(game.InstallDirectory, ModInfo.GetModTypeOfGameID(gameId)); return(new GameMetadata(data, null, null, null)); } else { var data = UpdateGameWithMetadata(gameData); return(new GameMetadata(gameData, data.Icon, data.Image, data.BackgroundImage)); } }
public override GameMetadata GetMetadata(Game game) { var gameData = new Game("SteamGame") { GameId = game.GameId }; var gameId = game.ToSteamGameID(); if (gameId.IsMod) { var data = library.GetInstalledModFromFolder(game.InstallDirectory, ModInfo.GetModTypeOfGameID(gameId)); return(new GameMetadata(data, null, null, null)); } else { return(new MetadataProvider(apiClient).GetGameMetadata( gameId.AppID, library.LibrarySettings.BackgroundSource, library.LibrarySettings.DownloadVerticalCovers)); } }
static private void PopulateModInfoFromGameInfo(ref ModInfo modInfo, string path) { var gameInfo = new KeyValue(); gameInfo.ReadFileAsText(path); modInfo.GameId.AppID = gameInfo["FileSystem"]["SteamAppId"].AsUnsignedInteger(); modInfo.Name = gameInfo["game"].Value; if (gameInfo["developer"] != KeyValue.Invalid) { modInfo.Developer = gameInfo["developer"].Value; } if (gameInfo["manual"] != KeyValue.Invalid) { modInfo.Links.Add(new Link("Manual", gameInfo["manual"].Value)); } if (gameInfo["developer_url"] != KeyValue.Invalid) { modInfo.Links.Add(new Link("Developer URL", gameInfo["developer_url"].Value)); } if (gameInfo["type"] == KeyValue.Invalid || gameInfo["type"].Value == "singleplayer_only") { modInfo.Categories.Add("Single-Player"); } if (gameInfo["type"] == KeyValue.Invalid || gameInfo["type"].Value == "multiplayer_only") { modInfo.Categories.Add("Multi-Player"); } modInfo.IconPath = FindIcon(modInfo.InstallFolder, gameInfo["icon"] == KeyValue.Invalid ? null : gameInfo["icon"].Value); }
internal GameInfo GetInstalledModFromFolder(string path, ModInfo.ModType modType) { var modInfo = ModInfo.GetFromFolder(path, modType); if (modInfo == null) { return null; } var game = new GameInfo() { Source = "Steam", GameId = modInfo.GameId.ToString(), Name = modInfo.Name, InstallDirectory = path, PlayAction = CreatePlayTask(modInfo.GameId), IsInstalled = true, Developers = new List<string>() { modInfo.Developer }, Links = modInfo.Links, Tags = modInfo.Categories, Icon = modInfo.IconPath }; return game; }