wabbajack/Wabbajack.Compiler/CompilerSettings.cs

74 lines
2.5 KiB
C#
Raw Permalink Normal View History

2021-09-27 12:42:46 +00:00
using System;
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; }
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");
public bool PublishUpdate { get; set; } = false;
public string MachineUrl { get; set; } = "";
/// <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);
2022-09-27 03:02:39 +00:00
[JsonIgnore] public bool IsMO2Modlist => AllProfiles.Any(p => !string.IsNullOrWhiteSpace(p));
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-08-23 22:38:47 +00:00
/// <summary>
2022-11-04 16:41:45 +00:00
/// These files are ignored when compiling the modlist
2022-08-23 22:38:47 +00:00
/// </summary>
public RelativePath[] Ignore { 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
}