diff --git a/OpenMetaverse/AppearanceManager.cs b/OpenMetaverse/AppearanceManager.cs index ab07707f..1671d719 100644 --- a/OpenMetaverse/AppearanceManager.cs +++ b/OpenMetaverse/AppearanceManager.cs @@ -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(); } } diff --git a/OpenMetaverse/AvatarManager.cs b/OpenMetaverse/AvatarManager.cs index b6519591..2fd68058 100644 --- a/OpenMetaverse/AvatarManager.cs +++ b/OpenMetaverse/AvatarManager.cs @@ -506,7 +506,7 @@ namespace OpenMetaverse /// 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); } + } } }); }