public static void SaveSimAssets(AssetManager assetManager, AssetType assetType, UUID assetID, UUID itemID, UUID primID, string assetsPath)
{
int count = 0;
AutoResetEvent AllPropertiesReceived = new AutoResetEvent(false);
assetManager.RequestAsset(assetID, itemID, primID, assetType, false, SourceType.SimInventoryItem, UUID.Random(), (transfer, asset) =>
{
string extension = string.Empty;
if (ArchiveConstants.ASSET_TYPE_TO_EXTENSION.ContainsKey(assetType))
extension = ArchiveConstants.ASSET_TYPE_TO_EXTENSION[assetType];
if (asset == null)
{
AllPropertiesReceived.Set();
return;
}
File.WriteAllBytes(Path.Combine(assetsPath, assetID.ToString() + extension), asset.AssetData);
++count;
AllPropertiesReceived.Set();
});
AllPropertiesReceived.WaitOne(5000);
Logger.Log("Copied " + count + " textures to the asset archive folder", Helpers.LogLevel.Info);
}