JD2022-TU1/main/tools/apps/Packager/BuildConfigurations/DlcTaskList.cs

157 lines
No EOL
6.2 KiB
C#

using System.ComponentModel;
using System.IO;
using JD.Core.ProjectManaging;
using Packager.Parameters;
using Packager.Tasks;
namespace Packager.BuildConfigurations
{
/// <summary>
/// to generate the bundles for the DLC
/// All console platforms
/// </summary>
public class DlcTaskList : TaskList
{
[Browsable(true)]
public Parameters.Platform Platform { get; set; }
[Browsable(true)]
public string BundleType { get; set; }
[Browsable(true)]
public string MapListFilePath { get; set; }
[Browsable(true)]
public string OutputPath { get; set; }
protected void InitializeProperties()
{
if (OutputPath == null)
{
OutputPath = Path.Combine(DataPath.GetAbsolutePath("output"), Platform + "_" + BundleType);
}
}
protected RunOnIscTask RunOnIscTask { get; set; }
protected FileListTask CreateMapListTask { get; set; }
protected CookTask CookingTask { get; set; }
protected FilterFailedFiles RemoveFailedMapsTask { get; set; }
protected GenDependenciesTask MapDependenciesTask { get; set; }
protected MapListTask MapListTask { get; set; }
protected LogFilterTask LogFilterTask { get; set; }
protected FilterFileListTask RemoveSongWaveFileTask { get; set; }
protected SecureFatTask SecureFatTask { get; set; }
protected GenDlcDescriptorTask DlcDescriptorTask { get; set; }
protected BundlingTask MapBundleTask { get; set; }
protected BuildDLCTask BuildDlcPackageTask { get; set; }
protected CleanFolderTask CleanOutputFolderTask { get; set; }
protected CopyFileTask CopyFilesToOutputFolderTask { get; set; }
protected GenGUIDTask GenCacheTask { get; set; }
public override void Initialize()
{
InitializeProperties();
GenCacheTask = AddTask<GenGUIDTask>("Gen Cache Key");
MapListTask = AddTask<MapListTask>("Map List");
MapListTask.MapList.Add(DataPath.GetAbsolutePath(MapListFilePath));
DlcDescriptorTask = AddTask<GenDlcDescriptorTask>("Generate DLC descriptor");
DlcDescriptorTask.MapList.Add(MapListTask.Maps);
RunOnIscTask = AddTask<RunOnIscTask>("Run On Isc");
RunOnIscTask.MapList.Add(MapListTask.Maps);
LogFilterTask = AddTask<LogFilterTask>("Log Filter");
LogFilterTask.MapList.Add(RunOnIscTask.LoadingLogs);
MapDependenciesTask = AddTask<GenDependenciesTask>("Map Dependencies");
MapDependenciesTask.CacheKey = GenCacheTask.Guid;
MapDependenciesTask.RootFilePaths.Add(MapListTask.Maps);
RemoveSongWaveFileTask = AddTask<FilterFileListTask>("Remove Song Wave File");
RemoveSongWaveFileTask.FileList.Add(MapDependenciesTask.DependenciesFilePaths);
RemoveSongWaveFileTask.Filters.CleanAdd(@"*");
RemoveSongWaveFileTask.RemoveList.Add(DataPath.GetAbsolutePath(@"EngineData\Maplists\DLC\wav_exclude_list.txt"));
CookingTask = AddTask<CookTask>("Cooking");
CookingTask.CacheKey = GenCacheTask.Guid;
CookingTask.AssetsList.Add(MapDependenciesTask.DependenciesFilePaths, LogFilterTask.GlobalLogs);
RemoveFailedMapsTask = AddTask<FilterFailedFiles>("Remove Failed Maps");
RemoveFailedMapsTask.Dependencies.Add(MapDependenciesTask.DependenciesFilePaths);
RemoveFailedMapsTask.FailedFiles.Add(CookingTask.FailedFiles);
RemoveFailedMapsTask.MapList.Add(MapListTask.Maps);
CreateMapListTask = AddTask<FileListTask>("Create Map List");
CreateMapListTask.FileList.Add(RemoveFailedMapsTask.MapList);
CreateMapListTask.FileName.Add("mapFile.txt");
MapBundleTask = AddTask<BundlingTask>("Map Bundle");
MapBundleTask.CacheKey = GenCacheTask.Guid;
MapBundleTask.AssetsList.Add(LogFilterTask.LogicLogs, LogFilterTask.ResourceLogs, MapDependenciesTask.DependenciesFilePaths);
MapBundleTask.BundleName.Add(MapListTask.Names);
MapBundleTask.RemoveAssetsList.Add(RemoveSongWaveFileTask.OtherFilesList);
SecureFatTask = AddTask<SecureFatTask>("Secure Fat");
SecureFatTask.CacheKey = GenCacheTask.Guid;
SecureFatTask.BundleList.Add(MapBundleTask.BundlePaths);
GeneratePackageConfigTask generatePackageConfigTask = null;
if (Platform.IsX1OrPs4())
{
generatePackageConfigTask = AddTask<GeneratePackageConfigTask>("Generate Package Config");
generatePackageConfigTask.PackageOrderFile.Value =
DataPath.GetAbsolutePath(@"EngineData\GameToolPackageTask\packageorderDLC.xml");
generatePackageConfigTask.RequiredFiles.Add(MapBundleTask.BundlePaths, SecureFatTask.SecureFat,
DlcDescriptorTask.DlcDescFile);
generatePackageConfigTask.TemplateFile.Value =
DataPath.GetAbsolutePath(@"EngineData\GameToolPackageTask\chunkmappingtemplateDLC.xml");
}
CleanOutputFolderTask = AddTask<CleanFolderTask>("Clean Output Folder");
CleanOutputFolderTask.ExtFilter.Value = @".ipk;.gf;.preload;.preres;.ckd;.txt";
CleanOutputFolderTask.Folder.Value = OutputPath;
BuildDlcPackageTask = AddTask<BuildDLCTask>("Build DLC package");
BuildDlcPackageTask.DlcDescList.Add(DlcDescriptorTask.DlcDescFile);
BuildDlcPackageTask.FileList.Add(MapBundleTask.BundlePaths, SecureFatTask.SecureFat);
if (Platform.IsX1OrPs4())
{
BuildDlcPackageTask.FileList.Add(generatePackageConfigTask.UpdatedPackageOrder,
generatePackageConfigTask.PackageConfig, generatePackageConfigTask.IdTable);
}
BuildDlcPackageTask.OutputFolder.Value = CleanOutputFolderTask.Folder.Value;
CopyFilesToOutputFolderTask = AddTask<CopyFileTask>("Copy Files to Output Folder");
CopyFilesToOutputFolderTask.OutputFolder.Value = CleanOutputFolderTask.Folder.Value;
}
}
}