mirror of
https://github.com/wabbajack-tools/wabbajack.git
synced 2024-08-30 18:42:17 +00:00
54 lines
2.0 KiB
C#
54 lines
2.0 KiB
C#
using System;
|
|
using Wabbajack.Paths;
|
|
|
|
namespace Wabbajack.DTOs;
|
|
|
|
public class GameMetaData
|
|
{
|
|
public Game Game { get; internal init; }
|
|
|
|
public bool IsGenericMO2Plugin { get; internal init; }
|
|
|
|
public string? MO2ArchiveName { get; internal init; }
|
|
|
|
public string? NexusName { get; internal init; }
|
|
|
|
// Nexus DB id for the game, used in some specific situations
|
|
public long NexusGameId { get; internal init; }
|
|
public string? MO2Name { get; internal init; }
|
|
|
|
// to get steam ids: https://steamdb.info
|
|
public int[] SteamIDs { get; internal init; } = Array.Empty<int>();
|
|
|
|
// to get gog ids: https://www.gogdb.org
|
|
public int[] GOGIDs { get; internal init; } = Array.Empty<int>();
|
|
|
|
// 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>();
|
|
|
|
public string[] EpicGameStoreIDs { get; internal init; } = Array.Empty<string>();
|
|
|
|
// to get BethNet IDs: check the registry
|
|
public int BethNetID { get; internal init; }
|
|
|
|
//for BethNet games only!
|
|
public string RegString { get; internal init; } = string.Empty;
|
|
|
|
// file to check if the game is present, useful when steamIds and gogIds dont help
|
|
public RelativePath[] RequiredFiles { get; internal init; } = Array.Empty<RelativePath>();
|
|
|
|
public RelativePath? MainExecutable { get; internal init; }
|
|
|
|
// Games that this game are commonly confused with, for example Skyrim SE vs Skyrim LE
|
|
public Game[] CommonlyConfusedWith { get; set; } = Array.Empty<Game>();
|
|
|
|
/// <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>();
|
|
|
|
public string HumanFriendlyGameName => Game.GetDescription();
|
|
} |