diff --git a/src/TextureFetcher.cs b/src/TextureFetcher.cs index 59c470f..8173edf 100644 --- a/src/TextureFetcher.cs +++ b/src/TextureFetcher.cs @@ -135,6 +135,16 @@ namespace OpenSim.Modules.TextureFetcher allTextures.Add(face.TextureID); } + //Remove not existing textures + String[] _assetIDs = new string[allTextures.Count]; + for (int i = 0; i < allTextures.Count; i++) + _assetIDs[i] = allTextures[i].ToString(); + + bool[] existing = m_scene.AssetService.AssetsExist(_assetIDs); + for (int i = 0; i < existing.Length; i++) + if (existing[i] == false) + allTextures[i] = UUID.Zero; + //Convert texture uuid list to inventar items. foreach (UUID texture in allTextures) { @@ -166,6 +176,7 @@ namespace OpenSim.Modules.TextureFetcher if (!isAssetInInventory(part, item.AssetID)) { updateNeeded = true; + part.ParentGroup.RootPart.Inventory.AddInventoryItem(item, false); } }