public async Task ExportTexturesAsync(string textureDir, IProgress<string> progress = null, CancellationToken cancellation = default(CancellationToken)) {
foreach (var texture in Textures.Values) {
if (cancellation.IsCancellationRequested) return;
progress?.Report(texture.Name);
await FileUtils.WriteAllBytesAsync(Path.Combine(textureDir, texture.Name), TexturesData[texture.Name], cancellation);
}
}
}