91 lines
5.9 KiB
C#
91 lines
5.9 KiB
C#
using System.IO;
|
|
using JDSongConverter.Tasks;
|
|
using TeaBox.Macros;
|
|
|
|
namespace JDSongConverter.Converters
|
|
{
|
|
public class Jd5CatalogToJd2016Converter : Converter
|
|
{
|
|
private readonly CreateMapFromTemplateTask _createMapFromTemplateTask = new CreateMapFromTemplateTask();
|
|
|
|
private readonly CopyDirectoryTask _copyPictogramsTask = new CopyDirectoryTask { Name = "Copy pictogram directory" };
|
|
private readonly CreateTrkFileTask _createTrkFileTask = new CreateTrkFileTask();
|
|
private readonly ConvertTimelineToDtapeTask _convertTimelineToDtape = new ConvertTimelineToDtapeTask();
|
|
private readonly ConvertTimelineToKtapeTask _convertTimelineToKtape = new ConvertTimelineToKtapeTask();
|
|
private readonly CopyMovesTask _copyMoves = new CopyMovesTask();
|
|
private readonly CreatePictoTfiTask _createPictoTfiTask = new CreatePictoTfiTask();
|
|
private readonly RepairTrkTask _repairTrkTask = new RepairTrkTask();
|
|
private readonly ConvertPictogramsToPngTask _convertTgaToPng = new ConvertPictogramsToPngTask();
|
|
private readonly CreateAmbiantTask _createAmbiantTask = new CreateAmbiantTask();
|
|
private readonly CleanWaveHeaderTask _cleanWaveHeaderTask = new CleanWaveHeaderTask();
|
|
private readonly CopyFileTask _copyStapeTask = new CopyFileTask { Name = "Copy stape file" };
|
|
private readonly CopyFileTask _copyBtapeTask = new CopyFileTask { Name = "Copy btape file" };
|
|
private readonly ChangeWaveSamplerateTask _changeWaveSamplerateTask = new ChangeWaveSamplerateTask();
|
|
private readonly CopyDirectoryTask _copyUiCoversTask = new CopyDirectoryTask { Name = "Copy UI covers" };
|
|
|
|
public Jd5CatalogToJd2016Converter()
|
|
{
|
|
Tasks.Add(_createMapFromTemplateTask);
|
|
Tasks.Add(_copyPictogramsTask);
|
|
Tasks.Add(_cleanWaveHeaderTask);
|
|
Tasks.Add(_changeWaveSamplerateTask);
|
|
Tasks.Add(_createTrkFileTask);
|
|
Tasks.Add(_convertTimelineToDtape);
|
|
Tasks.Add(_convertTimelineToKtape);
|
|
Tasks.Add(_createAmbiantTask);
|
|
Tasks.Add(_repairTrkTask);
|
|
Tasks.Add(_copyMoves);
|
|
Tasks.Add(_createPictoTfiTask);
|
|
Tasks.Add(_convertTgaToPng);
|
|
Tasks.Add(_copyStapeTask);
|
|
Tasks.Add(_copyBtapeTask);
|
|
Tasks.Add(_copyUiCoversTask);
|
|
|
|
Tasks.AddRange(new JD2015ToJd2016Converter().Tasks);
|
|
}
|
|
|
|
public override void Process(JDSong song, string outputDir, string mapPathRelative, IExecutionContext logger)
|
|
{
|
|
var pictoInputDir = AppDefinitions.Default.AbsoluteMapPath(MapPathType.PictosDir, song);
|
|
var pictoOutputDir = AppDefinitions.Default.AbsoluteMapPath(MapPathType.PictosDir, outputDir, song.Name, JDSongVersion.JD2015, JDFolderLayout.Engine);
|
|
var tplFile = AppDefinitions.Default.AbsoluteMapPath(MapPathType.TimelineTpl, song);
|
|
var tmlFile = AppDefinitions.Default.AbsoluteMapPath(MapPathType.TimelineTml, song);
|
|
var dtapeFile = AppDefinitions.Default.AbsoluteMapPath(MapPathType.DanceTapeFile, outputDir, song.Name, JDSongVersion.JD2015, JDFolderLayout.Engine);
|
|
var ktapeFile = AppDefinitions.Default.AbsoluteMapPath(MapPathType.KaraokeTapeFile, outputDir, song.Name, JDSongVersion.JD2015, JDFolderLayout.Engine);
|
|
var lyricsFile = AppDefinitions.Default.AbsoluteMapPath(MapPathType.LyricsFile, outputDir, song.Name, JDSongVersion.JD2015, JDFolderLayout.Engine);
|
|
var inputWav = AppDefinitions.Default.AbsoluteMapPath(MapPathType.WavFile, song);
|
|
var outputWav = AppDefinitions.Default.AbsoluteMapPath(MapPathType.WavFile, outputDir, song.Name, JDSongVersion.JD2015, JDFolderLayout.Engine);
|
|
var outputTrk = AppDefinitions.Default.AbsoluteMapPath(MapPathType.TrkFile, outputDir, song.Name, JDSongVersion.JD2015, JDFolderLayout.Engine);
|
|
var stapeInputFile = AppDefinitions.Default.AbsoluteMapPath(MapPathType.SignatureTapeFile, song);
|
|
var stapeOutputFile = AppDefinitions.Default.AbsoluteMapPath(MapPathType.SignatureTapeFile, outputDir, song.Name, JDSongVersion.JD2015, JDFolderLayout.Engine);
|
|
var btapeInputFile = AppDefinitions.Default.AbsoluteMapPath(MapPathType.BlockTapeFile, song);
|
|
var btapeOutputFile = AppDefinitions.Default.AbsoluteMapPath(MapPathType.BlockTapeFile, outputDir, song.Name, JDSongVersion.JD2015, JDFolderLayout.Engine);
|
|
var uiCoverInputDir = AppDefinitions.Default.AbsoluteMapPath(MapPathType.CoverAndCoachLobby, song);
|
|
var uiCoverOutputDir = AppDefinitions.Default.AbsoluteMapPath(MapPathType.CoverAndCoachLobby, outputDir, song.Name, JDSongVersion.JD2015, JDFolderLayout.Engine);
|
|
|
|
_copyPictogramsTask.Init(pictoInputDir, pictoOutputDir);
|
|
_convertTimelineToDtape.Init(tplFile, dtapeFile);
|
|
_convertTimelineToKtape.Init(File.Exists(tmlFile) ? tmlFile : tplFile, ktapeFile, lyricsFile);
|
|
_cleanWaveHeaderTask.Init(inputWav, outputWav);
|
|
_changeWaveSamplerateTask.Init(outputWav, outputWav);
|
|
_createTrkFileTask.Init(outputWav, outputTrk);
|
|
_createPictoTfiTask.Init(pictoOutputDir, pictoOutputDir);
|
|
_copyStapeTask.Init(stapeInputFile, stapeOutputFile);
|
|
_copyStapeTask.ReplaceEntries.Add(new ReplaceEntry
|
|
{
|
|
Pattern = @"world\\pmsources\\" + song.Name + @"\\",
|
|
Replacement = mapPathRelative + "/"
|
|
});
|
|
_copyBtapeTask.Init(btapeInputFile, btapeOutputFile);
|
|
_copyBtapeTask.ReplaceEntries.Add(new ReplaceEntry
|
|
{
|
|
Pattern = @"world\\pmsources\\" + song.Name + @"\\",
|
|
Replacement = mapPathRelative + "/"
|
|
});
|
|
_copyUiCoversTask.Init(uiCoverInputDir, uiCoverOutputDir);
|
|
base.Process(song, outputDir, mapPathRelative, logger);
|
|
}
|
|
}
|
|
|
|
|
|
}
|