Added PropertyFile

This commit is contained in:
erri120 2019-10-11 13:09:34 +02:00
parent 14a05beba8
commit 4f8e996863
No known key found for this signature in database
GPG Key ID: A8C0A18D8D4D3135
3 changed files with 30 additions and 4 deletions

View File

@ -272,9 +272,6 @@ namespace Wabbajack
GatherArchives();
BuildPatches();
if (ModList != null)
if (File.Exists(ModListImage) && !File.Exists(Path.Combine(MO2ProfileDir, Path.GetFileName(ModListImage)))) File.Copy(ModListImage, Path.Combine(MO2ProfileDir, Path.GetFileName(ModListImage)));
ModList = new ModList
{
GameType = GameRegistry.Games.Values.First(f => f.MO2Name == MO2Ini.General.gameName).Game,
@ -283,7 +280,7 @@ namespace Wabbajack
Name = ModListName ?? MO2Profile,
Author = ModListAuthor ?? "",
Description = ModListDescription ?? "",
Image = ModListImage != null ? Path.Combine("profiles", MO2Profile, Path.GetFileName(ModListImage)) : "",
Image = ModListImage ?? "",
Website = ModListWebsite ?? ""
};
@ -617,6 +614,7 @@ namespace Wabbajack
Info("Generating compilation stack");
return new List<Func<RawSourceFile, Directive>>
{
IncludePropertyFiles(),
IgnoreStartsWith("logs\\"),
IncludeRegex("^downloads\\\\.*\\.meta"),
IgnoreStartsWith("downloads\\"),
@ -673,6 +671,20 @@ namespace Wabbajack
};
}
private Func<RawSourceFile, Directive> IncludePropertyFiles()
{
return source =>
{
if (source.AbsolutePath != ModListImage) return null;
if (!File.Exists(ModListImage)) return null;
var result = source.EvolveTo<PropertyFile>();
result.Type = PropertyType.Banner;
result.SourceDataID = IncludeFile(File.ReadAllBytes(ModListImage));
ModListImage = result.SourceDataID;
return result;
};
}
private Func<RawSourceFile, Directive> IgnoreWabbajackInstallCruft()
{
var cruft_files = new HashSet<string>

View File

@ -111,6 +111,17 @@ namespace Wabbajack
public string SourceDataID;
}
public enum PropertyType { Banner }
/// <summary>
/// File meant to be extracted before the installation
/// </summary>
[Serializable]
public class PropertyFile : InlineFile
{
public PropertyType Type;
}
[Serializable]
public class CleanedESM : InlineFile
{

View File

@ -104,6 +104,9 @@ namespace Wabbajack
foreach (var directive in files.OrderBy(f => f.GetType().Name).ThenByDescending(f => f.To))
switch (directive)
{
case PropertyFile i:
NoWrapText($"* `{i.OriginalName}` as a `{Enum.GetName(typeof(PropertyType),i.Type)}`");
break;
case FromArchive f:
//NoWrapText($"* `{f.To}` from `{f.FullPath}`");
break;