Files
RobustToolbox/Robust.Packaging/AssetProcessing/Passes/AssetPassPrefix.cs
metalgearsloth 2733435218 Audio rework unrevert + audio packaging (#4555)
Co-authored-by: Pieter-Jan Briers <pieterjan.briers@gmail.com>
2023-11-27 22:12:26 +11:00

29 lines
813 B
C#

namespace Robust.Packaging.AssetProcessing.Passes;
/// <summary>
/// Appends a prefix to file paths of passed-through files.
/// </summary>
public sealed class AssetPassPrefix : AssetPass
{
public string Prefix { get; set; }
public AssetPassPrefix(string prefix)
{
Prefix = prefix;
}
protected override AssetFileAcceptResult AcceptFile(AssetFile file)
{
var newPath = Prefix + file.Path;
var newFile = file switch
{
AssetFileDisk disk => (AssetFile) new AssetFileDisk(newPath, disk.DiskPath),
AssetFileMemory memory => new AssetFileMemory(newPath, memory.Memory),
_ => throw new ArgumentOutOfRangeException(nameof(file))
};
SendFile(newFile);
return AssetFileAcceptResult.Consumed;
}
}