2021-09-27 12:42:46 +00:00
|
|
|
using System;
|
2022-05-30 20:50:24 +00:00
|
|
|
using System.Collections.Generic;
|
|
|
|
using System.Linq;
|
|
|
|
using System.Text.Json.Serialization;
|
2021-09-27 12:42:46 +00:00
|
|
|
using Wabbajack.DTOs;
|
|
|
|
using Wabbajack.Paths;
|
|
|
|
|
2021-10-23 16:51:17 +00:00
|
|
|
namespace Wabbajack.Compiler;
|
|
|
|
|
|
|
|
public class CompilerSettings
|
2021-09-27 12:42:46 +00:00
|
|
|
{
|
2021-10-23 16:51:17 +00:00
|
|
|
public bool ModlistIsNSFW { get; set; }
|
|
|
|
public AbsolutePath Source { get; set; }
|
|
|
|
public AbsolutePath Downloads { get; set; }
|
|
|
|
public Game Game { get; set; }
|
|
|
|
public AbsolutePath OutputFile { get; set; }
|
|
|
|
|
|
|
|
public AbsolutePath ModListImage { get; set; }
|
|
|
|
public bool UseGamePaths { get; set; }
|
2022-05-31 23:14:27 +00:00
|
|
|
|
|
|
|
public bool UseTextureRecompression { get; set; } = false;
|
2021-10-23 16:51:17 +00:00
|
|
|
public Game[] OtherGames { get; set; } = Array.Empty<Game>();
|
|
|
|
|
|
|
|
public TimeSpan MaxVerificationTime { get; set; } = TimeSpan.FromMinutes(1);
|
|
|
|
public string ModListName { get; set; } = "";
|
|
|
|
public string ModListAuthor { get; set; } = "";
|
|
|
|
public string ModListDescription { get; set; } = "";
|
2022-08-19 23:59:29 +00:00
|
|
|
public string ModListReadme { get; set; } = "";
|
2021-10-23 16:51:17 +00:00
|
|
|
public Uri? ModListWebsite { get; set; }
|
|
|
|
public Version ModlistVersion { get; set; } = Version.Parse("0.0.1.0");
|
2022-07-14 13:24:47 +00:00
|
|
|
public bool PublishUpdate { get; set; } = false;
|
|
|
|
public string MachineUrl { get; set; } = "";
|
2022-05-30 20:50:24 +00:00
|
|
|
|
|
|
|
/// <summary>
|
|
|
|
/// The main (default) profile
|
|
|
|
/// </summary>
|
|
|
|
public string Profile { get; set; } = "";
|
|
|
|
|
|
|
|
/// <summary>
|
|
|
|
/// Secondary profiles to include in the modlist
|
|
|
|
/// </summary>
|
|
|
|
public string[] AdditionalProfiles { get; set; } = Array.Empty<string>();
|
|
|
|
|
|
|
|
|
|
|
|
/// <summary>
|
|
|
|
/// All profiles to be added to the compiled modlist
|
|
|
|
/// </summary>
|
|
|
|
[JsonIgnore]
|
|
|
|
public IEnumerable<string> AllProfiles => AdditionalProfiles.Append(Profile);
|
|
|
|
|
2021-10-23 16:51:17 +00:00
|
|
|
|
2021-09-27 12:42:46 +00:00
|
|
|
|
2021-10-23 16:51:17 +00:00
|
|
|
/// <summary>
|
|
|
|
/// This file, or files in these folders, are automatically included if they don't match
|
|
|
|
/// any other step
|
|
|
|
/// </summary>
|
|
|
|
public RelativePath[] NoMatchInclude { get; set; } = Array.Empty<RelativePath>();
|
2021-09-27 12:42:46 +00:00
|
|
|
|
2021-10-23 16:51:17 +00:00
|
|
|
/// <summary>
|
|
|
|
/// These files are inlined into the modlist
|
|
|
|
/// </summary>
|
|
|
|
public RelativePath[] Include { get; set; } = Array.Empty<RelativePath>();
|
2022-01-05 13:59:30 +00:00
|
|
|
|
|
|
|
public RelativePath[] AlwaysEnabled { get; set; } = Array.Empty<RelativePath>();
|
2022-08-19 23:59:29 +00:00
|
|
|
public Version Version { get; set; }
|
|
|
|
public string Description { get; set; }
|
2021-09-27 12:42:46 +00:00
|
|
|
}
|