In UuidGatherer, gather materials referenced in the prim's TextureEntry

Signed-off-by: dahlia <dahlia@nomail>
0.8.0.3
Oren Hurvitz 2014-01-22 16:14:42 +02:00 committed by dahlia
parent b2878eb773
commit abb193ec94
1 changed files with 15 additions and 2 deletions

View File

@ -161,7 +161,7 @@ namespace OpenSim.Region.Framework.Scenes
{ {
// Get the prim's default texture. This will be used for faces which don't have their own texture // Get the prim's default texture. This will be used for faces which don't have their own texture
if (textureEntry.DefaultTexture != null) if (textureEntry.DefaultTexture != null)
assetUuids[textureEntry.DefaultTexture.TextureID] = (sbyte)AssetType.Texture; GatherTextureEntryAssets(textureEntry.DefaultTexture, assetUuids);
if (textureEntry.FaceTextures != null) if (textureEntry.FaceTextures != null)
{ {
@ -169,7 +169,7 @@ namespace OpenSim.Region.Framework.Scenes
foreach (Primitive.TextureEntryFace texture in textureEntry.FaceTextures) foreach (Primitive.TextureEntryFace texture in textureEntry.FaceTextures)
{ {
if (texture != null) if (texture != null)
assetUuids[texture.TextureID] = (sbyte)AssetType.Texture; GatherTextureEntryAssets(texture, assetUuids);
} }
} }
} }
@ -233,6 +233,19 @@ namespace OpenSim.Region.Framework.Scenes
} }
} }
/// <summary>
/// Gather all the asset uuids found in one face of a Texture Entry.
/// </summary>
private void GatherTextureEntryAssets(Primitive.TextureEntryFace texture, IDictionary<UUID, sbyte> assetUuids)
{
assetUuids[texture.TextureID] = (sbyte)AssetType.Texture;
if (texture.MaterialID != UUID.Zero)
{
GatherAssetUuids(texture.MaterialID, (sbyte)OpenSimAssetType.Material, assetUuids);
}
}
// /// <summary> // /// <summary>
// /// The callback made when we request the asset for an object from the asset service. // /// The callback made when we request the asset for an object from the asset service.
// /// </summary> // /// </summary>