public static OSD ToOSD(WearableCacheItem[] pcacheItems, IAssetCache dataCache) { OSDArray arr = new OSDArray(); foreach (WearableCacheItem item in pcacheItems) { OSDMap itemmap = new OSDMap(); itemmap.Add("textureindex", OSD.FromUInteger(item.TextureIndex)); itemmap.Add("cacheid", OSD.FromUUID(item.CacheId)); itemmap.Add("textureid", OSD.FromUUID(item.TextureID)); if (dataCache != null) { if (dataCache.Check(item.TextureID.ToString())) { AssetBase assetItem; dataCache.Get(item.TextureID.ToString(), out assetItem); if (assetItem != null) { itemmap.Add("assetdata", OSD.FromBinary(assetItem.Data)); itemmap.Add("assetcreator", OSD.FromString(assetItem.CreatorID)); itemmap.Add("assetname", OSD.FromString(assetItem.Name)); } } } arr.Add(itemmap); } return(arr); }