TRX/tools/installer/TRX_InstallerLib/Installers/BaseInstallSource.cs
lahm86 e16fcda94b tools/installer: create common installer library
This creates a generic common installer WPF library for both games.
2025-03-30 12:34:54 +01:00

38 lines
1.1 KiB
C#

using System.IO;
using TRX_InstallerLib.Models;
using TRX_InstallerLib.Utils;
namespace TRX_InstallerLib.Installers;
public abstract class BaseInstallSource : IInstallSource
{
public abstract IEnumerable<string> DirectoriesToTry { get; }
public virtual string ImageSource
{
get => AssemblyUtils.GetEmbeddedResourcePath($"{SourceName}.png");
}
public abstract bool IsImportingSavesSupported { get; }
public abstract string SourceName { get; }
public virtual string SuggestedInstallationDirectory
{
get => Path.Combine(
Environment.GetFolderPath(Environment.SpecialFolder.MyDocuments),
TRXConstants.Instance.Game!);
}
public abstract Task CopyOriginalGameFiles(
string sourceDirectory,
string targetDirectory,
IProgress<InstallProgress> progress,
bool importSaves
);
public abstract bool IsDownloadingMusicNeeded(string sourceDirectory);
public abstract bool IsDownloadingExpansionNeeded(string sourceDirectory);
public abstract bool IsGameFound(string sourceDirectory);
}