diff --git a/OpenSim/Framework/AvatarAppearance.cs b/OpenSim/Framework/AvatarAppearance.cs
index 0c0cfd54cf..e1d0bbe8c2 100644
--- a/OpenSim/Framework/AvatarAppearance.cs
+++ b/OpenSim/Framework/AvatarAppearance.cs
@@ -28,8 +28,10 @@
using System;
using System.Collections;
using System.Collections.Generic;
+using System.Reflection;
using System.Runtime.Serialization;
using System.Security.Permissions;
+using log4net;
using OpenMetaverse;
using OpenMetaverse.Packets;
using OpenSim.Framework;
@@ -39,6 +41,9 @@ namespace OpenSim.Framework
[Serializable]
public class AvatarAppearance : ISerializable
{
+// private static readonly ILog m_log
+// = LogManager.GetLogger(MethodBase.GetCurrentMethod().DeclaringType);
+
// these are guessed at by the list here -
// http://wiki.secondlife.com/wiki/Avatar_Appearance. We'll
// correct them over time for when were are wrong.
@@ -258,7 +263,7 @@ namespace OpenSim.Framework
}
///
- ///
+ /// Set up appearance textures and avatar parameters, including a height calculation
///
///
///
@@ -266,7 +271,15 @@ namespace OpenSim.Framework
{
Primitive.TextureEntry textureEnt = new Primitive.TextureEntry(texture, 0, texture.Length);
m_texture = textureEnt;
-
+
+// m_log.DebugFormat("[APPEARANCE]: Setting an avatar appearance with {0} faces", m_texture.FaceTextures.Length);
+// for (int i = 0; i < m_texture.FaceTextures.Length; i++)
+// {
+// Primitive.TextureEntryFace face = m_texture.FaceTextures[i];
+// String textureIdString = (face != null ? face.TextureID.ToString() : "none");
+// m_log.DebugFormat("[APPEARANCE]: Texture {0} is {1}", i, textureIdString);
+// }
+
m_visualparams = visualParam.ToArray();
// Teravus : Nifty AV Height Getting Maaaaagical formula. Oh how we love turning 0-255 into meters.
@@ -297,10 +310,10 @@ namespace OpenSim.Framework
public override String ToString()
{
String s = "[Wearables] =>";
- s += "Body Item: " + BodyItem.ToString() + ";";
- s += "Skin Item: " + SkinItem.ToString() + ";";
- s += "Shirt Item: " + ShirtItem.ToString() + ";";
- s += "Pants Item: " + PantsItem.ToString() + ";";
+ s += " Body Item: " + BodyItem.ToString() + ";";
+ s += " Skin Item: " + SkinItem.ToString() + ";";
+ s += " Shirt Item: " + ShirtItem.ToString() + ";";
+ s += " Pants Item: " + PantsItem.ToString() + ";";
return s;
}
diff --git a/OpenSim/Framework/AvatarWearable.cs b/OpenSim/Framework/AvatarWearable.cs
index 62971ea78d..52f162eb78 100644
--- a/OpenSim/Framework/AvatarWearable.cs
+++ b/OpenSim/Framework/AvatarWearable.cs
@@ -73,19 +73,19 @@ namespace OpenSim.Framework
}
// Body
- defaultWearables[0].AssetID = new UUID("66c41e39-38f9-f75a-024e-585989bfab73");
- defaultWearables[0].ItemID = new UUID("66c41e39-38f9-f75a-024e-585989bfaba9");
+ defaultWearables[0].ItemID = new UUID("66c41e39-38f9-f75a-024e-585989bfaba9");
+ defaultWearables[0].AssetID = new UUID("66c41e39-38f9-f75a-024e-585989bfab73");
// Skin
- defaultWearables[1].ItemID = new UUID("77c41e39-38f9-f75a-024e-585989bfabc9");
+ defaultWearables[1].ItemID = new UUID("77c41e39-38f9-f75a-024e-585989bfabc9");
defaultWearables[1].AssetID = new UUID("77c41e39-38f9-f75a-024e-585989bbabbb");
// Shirt
- defaultWearables[4].ItemID = new UUID("77c41e39-38f9-f75a-0000-585989bf0000");
+ defaultWearables[4].ItemID = new UUID("77c41e39-38f9-f75a-0000-585989bf0000");
defaultWearables[4].AssetID = new UUID("00000000-38f9-1111-024e-222222111110");
// Pants
- defaultWearables[5].ItemID = new UUID("77c41e39-38f9-f75a-0000-5859892f1111");
+ defaultWearables[5].ItemID = new UUID("77c41e39-38f9-f75a-0000-5859892f1111");
defaultWearables[5].AssetID = new UUID("00000000-38f9-1111-024e-222222111120");
return defaultWearables;
diff --git a/OpenSim/Framework/Communications/Cache/AssetCache.cs b/OpenSim/Framework/Communications/Cache/AssetCache.cs
index 1a442ea2bf..1ae7eb71c4 100644
--- a/OpenSim/Framework/Communications/Cache/AssetCache.cs
+++ b/OpenSim/Framework/Communications/Cache/AssetCache.cs
@@ -334,6 +334,10 @@ namespace OpenSim.Framework.Communications.Cache
///
public void AddAsset(AssetBase asset)
{
+// m_log.DebugFormat(
+// "[ASSET CACHE]: Uploaded asset {0}, temporary {1}, store local {2}",
+// asset.ID, asset.Temporary, asset.Local);
+
if (asset.Type == (int)AssetType.Texture)
{
if (!Textures.ContainsKey(asset.FullID))
@@ -344,11 +348,23 @@ namespace OpenSim.Framework.Communications.Cache
if (StatsManager.SimExtraStats != null)
StatsManager.SimExtraStats.AddTexture(textur);
- if (!asset.Temporary)
+ // According to http://wiki.secondlife.com/wiki/AssetUploadRequest, Local signifies that the
+ // information is stored locally. It could disappear, in which case we could send the
+ // ImageNotInDatabase packet to tell the client this. However, when this was enabled in
+ // TextureNotFoundSender it ended up crashing clients - we need to go back and try this again.
+ //
+ // In the mean time, we're just going to push local assets to the permanent store instead.
+ // TODO: Need to come back and address this.
+ // TODO: Also, Temporary is now deprecated. We should start ignoring it and not passing it out from LLClientView.
+ if (!asset.Temporary || asset.Local)
{
m_assetServer.StoreAsset(asset);
}
}
+// else
+// {
+// m_log.DebugFormat("[ASSET CACHE]: Textures already contains {0}", asset.ID);
+// }
}
else
{
@@ -360,11 +376,16 @@ namespace OpenSim.Framework.Communications.Cache
if (StatsManager.SimExtraStats != null)
StatsManager.SimExtraStats.AddAsset(assetInf);
- if (!asset.Temporary)
+ // See comment above.
+ if (!asset.Temporary || asset.Local)
{
m_assetServer.StoreAsset(asset);
}
}
+// else
+// {
+// m_log.DebugFormat("[ASSET CACHE]: Assets already contains {0}", asset.ID);
+// }
}
}
@@ -394,6 +415,8 @@ namespace OpenSim.Framework.Communications.Cache
// See IAssetReceiver
public void AssetReceived(AssetBase asset, bool IsTexture)
{
+// m_log.DebugFormat("[ASSET CACHE]: Received asset {0}", asset.ID);
+
//check if it is a texture or not
//then add to the correct cache list
//then check for waiting requests for this asset/texture (in the Requested lists)
@@ -464,7 +487,7 @@ namespace OpenSim.Framework.Communications.Cache
// See IAssetReceiver
public void AssetNotFound(UUID assetID, bool IsTexture)
{
- //m_log.WarnFormat("[ASSET CACHE]: AssetNotFound for {0}", assetID);
+// m_log.WarnFormat("[ASSET CACHE]: AssetNotFound for {0}", assetID);
if (IsTexture)
{
diff --git a/OpenSim/Region/ClientStack/LindenUDP/LLClientView.cs b/OpenSim/Region/ClientStack/LindenUDP/LLClientView.cs
index aaa5e1ce97..86ec7e245b 100644
--- a/OpenSim/Region/ClientStack/LindenUDP/LLClientView.cs
+++ b/OpenSim/Region/ClientStack/LindenUDP/LLClientView.cs
@@ -2239,6 +2239,10 @@ namespace OpenSim.Region.ClientStack.LindenUDP
awb.AssetID = wearables[i].AssetID;
awb.ItemID = wearables[i].ItemID;
aw.WearableData[i] = awb;
+
+// m_log.DebugFormat(
+// "[APPEARANCE]: Sending wearable item/asset {0} {1} (index {2}) for {3}",
+// awb.ItemID, awb.AssetID, i, Name);
}
OutPacket(aw, ThrottleOutPacketType.Task);
@@ -4205,6 +4209,8 @@ Console.WriteLine(msgpack.ToString());
if (handlerRequestWearables != null)
{
+ m_log.DebugFormat("[APPEARANCE]: Wearables requested by {0}", Name);
+
handlerRequestWearables();
}
@@ -7076,7 +7082,6 @@ Console.WriteLine(msgpack.ToString());
public void SendAsset(AssetRequestToClient req)
{
-
//Console.WriteLine("sending asset " + req.RequestAssetID);
TransferInfoPacket Transfer = new TransferInfoPacket();
Transfer.TransferInfo.ChannelType = 2;
diff --git a/OpenSim/Region/Environment/Scenes/ScenePresence.cs b/OpenSim/Region/Environment/Scenes/ScenePresence.cs
index 7bc0360314..5a28f2fce1 100644
--- a/OpenSim/Region/Environment/Scenes/ScenePresence.cs
+++ b/OpenSim/Region/Environment/Scenes/ScenePresence.cs
@@ -1851,7 +1851,7 @@ namespace OpenSim.Region.Environment.Scenes
m_log.DebugFormat("[APPEARANCE]: Sending wearables to {0}", Name);
ControllingClient.SendWearables(m_appearance.Wearables, m_appearance.Serial++);
- // ControllingClient.SendAppearance(
+ //ControllingClient.SendAppearance(
// m_appearance.Owner,
// m_appearance.VisualParams,
// m_appearance.Texture.ToBytes()
@@ -1896,7 +1896,7 @@ namespace OpenSim.Region.Environment.Scenes
m_scene.CommsManager.AvatarService.UpdateUserAppearance(m_controllingClient.AgentId, m_appearance);
SendAppearanceToAllOtherAgents();
- SendWearables();
+ //SendWearables();
}
public void SetWearable(int wearableId, AvatarWearable wearable)