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; } } } }