appearance now survives logout. Tommorrow will involve moving
the MSSQL and MYSQL mappers back in under datastores and looking at doing gid bits for this0.6.0-stable
parent
afd5da6851
commit
fc77364972
|
@ -62,19 +62,19 @@ namespace OpenSim.Data
|
||||||
public AvatarAppearance GetUserAppearance(LLUUID user) {
|
public AvatarAppearance GetUserAppearance(LLUUID user) {
|
||||||
AvatarAppearance aa;
|
AvatarAppearance aa;
|
||||||
try {
|
try {
|
||||||
m_log.Info("[APPEARANCE] Found appearance for " + user.ToString());
|
|
||||||
aa = aplist[user];
|
aa = aplist[user];
|
||||||
|
m_log.Info("[APPEARANCE] Found appearance for " + user.ToString() + aa.ToString());
|
||||||
} catch (System.Collections.Generic.KeyNotFoundException e) {
|
} catch (System.Collections.Generic.KeyNotFoundException e) {
|
||||||
m_log.Info("[APPEARANCE] Setting up default appearance for " + user.ToString());
|
|
||||||
aplist[user] = new AvatarAppearance();
|
aplist[user] = new AvatarAppearance();
|
||||||
aplist[user].Owner = user;
|
aplist[user].Owner = user;
|
||||||
aa = aplist[user];
|
aa = aplist[user];
|
||||||
|
m_log.Info("[APPEARANCE] Setting up default appearance for " + user.ToString() + aa.ToString());
|
||||||
}
|
}
|
||||||
return aa;
|
return aa;
|
||||||
}
|
}
|
||||||
public void UpdateUserAppearance(LLUUID user, AvatarAppearance appearance) {
|
public void UpdateUserAppearance(LLUUID user, AvatarAppearance appearance) {
|
||||||
aplist[user] = appearance;
|
aplist[user] = appearance;
|
||||||
m_log.Info("[APPEARANCE] Setting appearance for " + user.ToString());
|
m_log.Info("[APPEARANCE] Setting appearance for " + user.ToString() + appearance.ToString() );
|
||||||
}
|
}
|
||||||
public abstract void AddAttachment(LLUUID user, LLUUID item);
|
public abstract void AddAttachment(LLUUID user, LLUUID item);
|
||||||
public abstract void RemoveAttachment(LLUUID user, LLUUID item);
|
public abstract void RemoveAttachment(LLUUID user, LLUUID item);
|
||||||
|
|
|
@ -293,6 +293,16 @@ namespace OpenSim.Framework
|
||||||
return textu;
|
return textu;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
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() + ";";
|
||||||
|
return s;
|
||||||
|
}
|
||||||
|
|
||||||
protected AvatarAppearance(SerializationInfo info, StreamingContext context)
|
protected AvatarAppearance(SerializationInfo info, StreamingContext context)
|
||||||
{
|
{
|
||||||
//System.Console.WriteLine("AvatarAppearance Deserialize BGN");
|
//System.Console.WriteLine("AvatarAppearance Deserialize BGN");
|
||||||
|
|
|
@ -1509,8 +1509,8 @@ namespace OpenSim.Region.Environment.Scenes
|
||||||
public void SetAppearance(byte[] texture, List<byte> visualParam)
|
public void SetAppearance(byte[] texture, List<byte> visualParam)
|
||||||
{
|
{
|
||||||
m_appearance.SetAppearance(texture, visualParam);
|
m_appearance.SetAppearance(texture, visualParam);
|
||||||
m_scene.CommsManager.UserService.UpdateUserAppearance(m_controllingClient.AgentId, m_appearance);
|
|
||||||
SetHeight(m_appearance.AvatarHeight);
|
SetHeight(m_appearance.AvatarHeight);
|
||||||
|
m_scene.CommsManager.UserService.UpdateUserAppearance(m_controllingClient.AgentId, m_appearance);
|
||||||
|
|
||||||
SendAppearanceToAllOtherAgents();
|
SendAppearanceToAllOtherAgents();
|
||||||
}
|
}
|
||||||
|
@ -1518,6 +1518,7 @@ namespace OpenSim.Region.Environment.Scenes
|
||||||
public void SetWearable(int wearableId, AvatarWearable wearable)
|
public void SetWearable(int wearableId, AvatarWearable wearable)
|
||||||
{
|
{
|
||||||
m_appearance.SetWearable(wearableId, wearable);
|
m_appearance.SetWearable(wearableId, wearable);
|
||||||
|
m_scene.CommsManager.UserService.UpdateUserAppearance(m_controllingClient.AgentId, m_appearance);
|
||||||
}
|
}
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
|
|
|
@ -274,47 +274,37 @@ namespace OpenSim.Region.Modules.AvatarFactory
|
||||||
{
|
{
|
||||||
IClientAPI clientView = (IClientAPI)sender;
|
IClientAPI clientView = (IClientAPI)sender;
|
||||||
CachedUserInfo profile = m_scene.CommsManager.UserProfileCacheService.GetUserDetails(clientView.AgentId);
|
CachedUserInfo profile = m_scene.CommsManager.UserProfileCacheService.GetUserDetails(clientView.AgentId);
|
||||||
|
AvatarAppearance avatAppearance = m_scene.CommsManager.UserService.GetUserAppearance(clientView.AgentId);
|
||||||
if (profile != null)
|
if (profile != null)
|
||||||
{
|
{
|
||||||
if (profile.RootFolder != null)
|
if (profile.RootFolder != null)
|
||||||
{
|
{
|
||||||
if (m_avatarsAppearance.ContainsKey(clientView.AgentId))
|
|
||||||
|
foreach (AvatarWearingArgs.Wearable wear in e.NowWearing)
|
||||||
{
|
{
|
||||||
AvatarAppearance avatAppearance = null;
|
if (wear.Type < 13)
|
||||||
lock (m_avatarsAppearance)
|
|
||||||
{
|
{
|
||||||
avatAppearance = m_avatarsAppearance[clientView.AgentId];
|
if (wear.ItemID == LLUUID.Zero)
|
||||||
}
|
|
||||||
|
|
||||||
foreach (AvatarWearingArgs.Wearable wear in e.NowWearing)
|
|
||||||
{
|
|
||||||
if (wear.Type < 13)
|
|
||||||
{
|
{
|
||||||
if (wear.ItemID == LLUUID.Zero)
|
avatAppearance.Wearables[wear.Type].ItemID = LLUUID.Zero;
|
||||||
|
avatAppearance.Wearables[wear.Type].AssetID = LLUUID.Zero;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
LLUUID assetId;
|
||||||
|
|
||||||
|
InventoryItemBase baseItem = profile.RootFolder.FindItem(wear.ItemID);
|
||||||
|
|
||||||
|
if (baseItem != null)
|
||||||
{
|
{
|
||||||
avatAppearance.Wearables[wear.Type].ItemID = LLUUID.Zero;
|
assetId = baseItem.AssetID;
|
||||||
avatAppearance.Wearables[wear.Type].AssetID = LLUUID.Zero;
|
avatAppearance.Wearables[wear.Type].AssetID = assetId;
|
||||||
|
avatAppearance.Wearables[wear.Type].ItemID = wear.ItemID;
|
||||||
UpdateDatabase(clientView.AgentId, avatAppearance);
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
LLUUID assetId;
|
|
||||||
|
|
||||||
InventoryItemBase baseItem = profile.RootFolder.FindItem(wear.ItemID);
|
|
||||||
|
|
||||||
if (baseItem != null)
|
|
||||||
{
|
|
||||||
assetId = baseItem.AssetID;
|
|
||||||
avatAppearance.Wearables[wear.Type].AssetID = assetId;
|
|
||||||
avatAppearance.Wearables[wear.Type].ItemID = wear.ItemID;
|
|
||||||
|
|
||||||
UpdateDatabase(clientView.AgentId, avatAppearance);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
m_scene.CommsManager.UserService.UpdateUserAppearance(clientView.AgentId, avatAppearance);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue