diff --git a/src/TextureFetcher.cs b/src/TextureFetcher.cs index 53f9ed1..da2205a 100644 --- a/src/TextureFetcher.cs +++ b/src/TextureFetcher.cs @@ -22,6 +22,8 @@ namespace OpenSim.Modules.TextureFetcher private static readonly ILog m_log = LogManager.GetLogger(MethodBase.GetCurrentMethod().DeclaringType); Scene m_scene = null; + List m_textureBlackList = new List(); + public string Name { get { return "TextureFetcher"; } @@ -74,7 +76,7 @@ namespace OpenSim.Modules.TextureFetcher private void AddObject(SceneObjectGroup obj) { - foreach(SceneObjectPart _part in obj.Parts) + foreach (SceneObjectPart _part in obj.Parts) copyTexturesToInventory(_part); } @@ -132,7 +134,9 @@ namespace OpenSim.Modules.TextureFetcher for(uint i = 0; i < allSides; i++) { TextureEntryFace face = textures.GetFace(i); - allTextures.Add(face.TextureID); + + if(!m_textureBlackList.Contains(face.TextureID)) + allTextures.Add(face.TextureID); } //Remove not existing textures @@ -143,7 +147,10 @@ namespace OpenSim.Modules.TextureFetcher bool[] existing = m_scene.AssetService.AssetsExist(_assetIDs); for (int i = 0; i < existing.Length; i++) if (existing[i] == false) + { + m_textureBlackList.Add(allTextures[i]); allTextures[i] = UUID.Zero; + } //Convert texture uuid list to inventar items. foreach (UUID texture in allTextures)