* Update tracked avatar texture from AvatarAppearancePacket

* Only wait for uploads to complete when we have something to wait for
* When sim requests rebake, only sent AgentSetAppearance once

git-svn-id: http://libopenmetaverse.googlecode.com/svn/libopenmetaverse/trunk@2851 52acb1d6-8a22-11de-b505-999d5b087335
This commit is contained in:
Latif Khalifa
2009-06-06 17:25:35 +00:00
parent 3f403efd5e
commit 5922fbc84c
2 changed files with 20 additions and 8 deletions

View File

@@ -832,7 +832,10 @@ namespace OpenMetaverse
RebakeLayer((BakeType)i);
}
CachedResponseEvent.WaitOne();
if (PendingUploads.Count > 0)
{
CachedResponseEvent.WaitOne();
}
Client.Assets.OnAssetUploaded -= Assets_OnAssetUploaded;
SendAgentSetAppearance();
}
@@ -1269,17 +1272,21 @@ namespace OpenMetaverse
lock (AgentTextures)
{
Client.Assets.OnAssetUploaded += Assets_OnAssetUploaded;
for (int i = 0; i < AgentTextures.Length; i++)
{
{
if(AgentTextures[i] == data.TextureData.TextureID)
{
// Its one of our baked layers, rebake this one
RebakeLayer((TextureIndex)i);
//Kick the appearance setting as well, this sim probably wants this too a it asked for bakes
SendAgentSetAppearance();
}
}
if (PendingUploads.Count > 0)
{
CachedResponseEvent.WaitOne();
}
Client.Assets.OnAssetUploaded -= Assets_OnAssetUploaded;
SendAgentSetAppearance();
}
}

View File

@@ -506,7 +506,7 @@ namespace OpenMetaverse
/// <param name="sim"></param>
private void AvatarAppearanceHandler(Packet packet, Simulator sim)
{
if (OnAvatarAppearance != null)
if (OnAvatarAppearance != null || Client.Settings.AVATAR_TRACKING)
{
AvatarAppearancePacket appearance = (AvatarAppearancePacket)packet;
sim.ObjectsAvatars.ForEach(delegate(Avatar av)
@@ -525,8 +525,13 @@ namespace OpenMetaverse
Primitive.TextureEntryFace defaultTexture = textureEntry.DefaultTexture;
Primitive.TextureEntryFace[] faceTextures = textureEntry.FaceTextures;
try { OnAvatarAppearance(appearance.Sender.ID, appearance.Sender.IsTrial, defaultTexture, faceTextures, visualParams); }
catch (Exception e) { Logger.Log(e.Message, Helpers.LogLevel.Error, Client, e); }
av.Textures = textureEntry;
if (OnAvatarAppearance != null)
{
try { OnAvatarAppearance(appearance.Sender.ID, appearance.Sender.IsTrial, defaultTexture, faceTextures, visualParams); }
catch (Exception e) { Logger.Log(e.Message, Helpers.LogLevel.Error, Client, e); }
}
}
});
}