JD2022-TU1/main/tools/apps/Packager/Tasks/GenerateCoverImagesTask.cs

77 lines
No EOL
2.2 KiB
C#

using System;
using System.ComponentModel;
using System.Linq;
using JD.Asset.Types.Map;
using JD.LogService;
using Packager.Parameters;
using ILogger = Plume.Core.Logging.ILogger;
namespace Packager.Tasks
{
[DisplayName(@"Generate Map Cover Images")]
public class GenerateCoverImagesTask : Task
{
[Input("Map Specific Dependency File List", IOCardinality.Multi, IOType.String)]
public ReferenceList MapNames { get; set; }
public GenerateCoverImagesTask()
{
MapNames = new ReferenceList();
}
protected override void StartInternal(BuildConfiguration profile, cookerWrapper cooker)
{
foreach (var mapName in MapNames.Where(reference => !string.IsNullOrEmpty(reference)))
{
var map = Map.FromName(mapName);
LogMessage(false, $"Generating cover images for map {mapName}");
foreach (var coverImage in map.CoverImages)
{
coverImage.Generate(new PlumeLogger(Logger), true);
}
}
}
private class PlumeLogger : ILogger
{
private readonly JD.LogService.ILogger _logger;
public PlumeLogger(JD.LogService.ILogger logger)
{
_logger = logger;
}
public void Debug(string message, Exception exception = null)
{
_logger.LogMessage(message);
}
public void Error(string message, Exception exception = null)
{
_logger.LogError(message);
}
public void Fatal(string message, Exception exception = null)
{
_logger.LogError(message);
}
public void Info(string message, Exception exception = null)
{
_logger.LogMessage(message);
}
public void Trace(string message, Exception exception = null)
{
}
public void Warn(string message, Exception exception = null)
{
_logger.LogWarning(message);
}
public string Name { get; }
}
}
}