wabbajack/Wabbajack.DTOs/Game/GameMetaData.cs

54 lines
2.0 KiB
C#
Raw Normal View History

2021-09-27 12:42:46 +00:00
using System;
using Wabbajack.Paths;
2021-10-23 16:51:17 +00:00
namespace Wabbajack.DTOs;
public class GameMetaData
2021-09-27 12:42:46 +00:00
{
2021-10-23 16:51:17 +00:00
public Game Game { get; internal init; }
2021-09-27 12:42:46 +00:00
2021-10-23 16:51:17 +00:00
public bool IsGenericMO2Plugin { get; internal init; }
2021-09-27 12:42:46 +00:00
2021-10-23 16:51:17 +00:00
public string? MO2ArchiveName { get; internal init; }
2021-09-27 12:42:46 +00:00
2021-10-23 16:51:17 +00:00
public string? NexusName { get; internal init; }
2021-09-27 12:42:46 +00:00
2021-10-23 16:51:17 +00:00
// Nexus DB id for the game, used in some specific situations
public long NexusGameId { get; internal init; }
public string? MO2Name { get; internal init; }
2021-09-27 12:42:46 +00:00
2021-10-23 16:51:17 +00:00
// to get steam ids: https://steamdb.info
public int[] SteamIDs { get; internal init; } = Array.Empty<int>();
2021-09-27 12:42:46 +00:00
2021-10-23 16:51:17 +00:00
// to get gog ids: https://www.gogdb.org
public int[] GOGIDs { get; internal init; } = Array.Empty<int>();
2021-09-27 12:42:46 +00:00
2021-10-23 16:51:17 +00:00
// to get these ids, split the numbers from the letters in file names found in
// C:\ProgramData\Origin\LocalContent\{game name)\*.mfst
// So for DA:O this is "DR208591800.mfst" -> "DR:208591800"
// EAPlay games may have @subscription appended to the file name
public string[] OriginIDs { get; set; } = Array.Empty<string>();
2021-09-27 12:42:46 +00:00
2021-10-23 16:51:17 +00:00
public string[] EpicGameStoreIDs { get; internal init; } = Array.Empty<string>();
2021-09-27 12:42:46 +00:00
2021-10-23 16:51:17 +00:00
// to get BethNet IDs: check the registry
public int BethNetID { get; internal init; }
2021-09-27 12:42:46 +00:00
2021-10-23 16:51:17 +00:00
//for BethNet games only!
public string RegString { get; internal init; } = string.Empty;
2021-09-27 12:42:46 +00:00
2021-10-23 16:51:17 +00:00
// file to check if the game is present, useful when steamIds and gogIds dont help
public RelativePath[] RequiredFiles { get; internal init; } = Array.Empty<RelativePath>();
2021-09-27 12:42:46 +00:00
2021-10-23 16:51:17 +00:00
public RelativePath? MainExecutable { get; internal init; }
2021-09-27 12:42:46 +00:00
2021-10-23 16:51:17 +00:00
// Games that this game are commonly confused with, for example Skyrim SE vs Skyrim LE
public Game[] CommonlyConfusedWith { get; set; } = Array.Empty<Game>();
2021-09-27 12:42:46 +00:00
2021-10-23 16:51:17 +00:00
/// <summary>
/// Other games this game can pull source files from (if the game is installed on the user's machine)
/// </summary>
public Game[] CanSourceFrom { get; set; } = Array.Empty<Game>();
2021-09-27 12:42:46 +00:00
2021-10-23 16:51:17 +00:00
public string HumanFriendlyGameName => Game.GetDescription();
2021-09-27 12:42:46 +00:00
}