From 77e43f480154b0a950d9d5f54df5c225fc64e77a Mon Sep 17 00:00:00 2001
From: Diva Canto
Date: Mon, 11 Jan 2010 17:30:05 -0800
Subject: Fixed a couple of bugs with Appearance. Appearance is all good now.
---
.../RemoteController/RemoteAdminPlugin.cs | 4 +-
.../Rest/Inventory/RestAppearanceServices.cs | 4 +-
.../Client/MXP/PacketHandler/MXPPacketServer.cs | 2 +-
OpenSim/Region/Application/OpenSimBase.cs | 1 -
.../Region/ClientStack/LindenUDP/LLClientView.cs | 1 +
.../Avatar/AvatarFactory/AvatarFactoryModule.cs | 17 +--
.../Avatar/LocalAvatarServiceConnector.cs | 10 +-
OpenSim/Region/Framework/Scenes/Scene.Inventory.cs | 4 +-
OpenSim/Region/Framework/Scenes/Scene.cs | 2 +-
.../Framework/Scenes/SceneCommunicationService.cs | 4 +-
OpenSim/Region/Framework/Scenes/ScenePresence.cs | 4 +
.../Region/OptionalModules/World/NPC/NPCModule.cs | 2 +-
OpenSim/Services/AvatarService/AvatarService.cs | 6 +
OpenSim/Services/Interfaces/IAvatarService.cs | 123 ++++++++++++++-------
OpenSim/Services/LLLoginService/LLLoginService.cs | 2 +-
bin/config-include/StandaloneHypergrid.ini | 6 +
16 files changed, 124 insertions(+), 68 deletions(-)
diff --git a/OpenSim/ApplicationPlugins/RemoteController/RemoteAdminPlugin.cs b/OpenSim/ApplicationPlugins/RemoteController/RemoteAdminPlugin.cs
index d9458af..457177d 100644
--- a/OpenSim/ApplicationPlugins/RemoteController/RemoteAdminPlugin.cs
+++ b/OpenSim/ApplicationPlugins/RemoteController/RemoteAdminPlugin.cs
@@ -1397,7 +1397,7 @@ namespace OpenSim.ApplicationPlugins.RemoteController
AvatarAppearance ava = null;
AvatarData avatar = m_app.SceneManager.CurrentOrFirstScene.AvatarService.GetAvatar(srca);
if (avatar != null)
- ava = avatar.ToAvatarAppearance();
+ ava = avatar.ToAvatarAppearance(srca);
// If the model has no associated appearance we're done.
@@ -1639,7 +1639,7 @@ namespace OpenSim.ApplicationPlugins.RemoteController
// While the inventory is being fetched, setup for appearance processing
AvatarData adata = m_app.SceneManager.CurrentOrFirstScene.AvatarService.GetAvatar(ID);
if (adata != null)
- mava = adata.ToAvatarAppearance();
+ mava = adata.ToAvatarAppearance(ID);
else
mava = new AvatarAppearance();
diff --git a/OpenSim/ApplicationPlugins/Rest/Inventory/RestAppearanceServices.cs b/OpenSim/ApplicationPlugins/Rest/Inventory/RestAppearanceServices.cs
index 5429890..b70a511 100644
--- a/OpenSim/ApplicationPlugins/Rest/Inventory/RestAppearanceServices.cs
+++ b/OpenSim/ApplicationPlugins/Rest/Inventory/RestAppearanceServices.cs
@@ -304,7 +304,7 @@ namespace OpenSim.ApplicationPlugins.Rest.Inventory
String.Format("appearance data not found for user {0} {1}",
rdata.userProfile.FirstName, rdata.userProfile.SurName));
}
- rdata.userAppearance = adata.ToAvatarAppearance();
+ rdata.userAppearance = adata.ToAvatarAppearance(rdata.userProfile.ID);
rdata.initXmlWriter();
@@ -446,7 +446,7 @@ namespace OpenSim.ApplicationPlugins.Rest.Inventory
if (adata != null)
{
- AvatarAppearance old = adata.ToAvatarAppearance();
+ AvatarAppearance old = adata.ToAvatarAppearance(rdata.userProfile.ID);
rdata.userAppearance = new AvatarAppearance();
rdata.userAppearance.Owner = old.Owner;
adata = new AvatarData(rdata.userAppearance);
diff --git a/OpenSim/Client/MXP/PacketHandler/MXPPacketServer.cs b/OpenSim/Client/MXP/PacketHandler/MXPPacketServer.cs
index c4b3dda..821aea2 100644
--- a/OpenSim/Client/MXP/PacketHandler/MXPPacketServer.cs
+++ b/OpenSim/Client/MXP/PacketHandler/MXPPacketServer.cs
@@ -536,7 +536,7 @@ namespace OpenSim.Client.MXP.PacketHandler
agent.CapsPath = "http://localhost/";
AvatarData avatar = scene.AvatarService.GetAvatar(account.PrincipalID);
if (avatar != null)
- agent.Appearance = avatar.ToAvatarAppearance(); //userService.GetUserAppearance(userProfile.ID);
+ agent.Appearance = avatar.ToAvatarAppearance(account.PrincipalID); //userService.GetUserAppearance(userProfile.ID);
if (agent.Appearance == null)
{
diff --git a/OpenSim/Region/Application/OpenSimBase.cs b/OpenSim/Region/Application/OpenSimBase.cs
index c6932cf..f3f715a 100644
--- a/OpenSim/Region/Application/OpenSimBase.cs
+++ b/OpenSim/Region/Application/OpenSimBase.cs
@@ -197,7 +197,6 @@ namespace OpenSim
LoadPlugins();
foreach (IApplicationPlugin plugin in m_plugins)
{
- m_log.Debug("XXX PostInitialise " + plugin.Name);
plugin.PostInitialise();
}
diff --git a/OpenSim/Region/ClientStack/LindenUDP/LLClientView.cs b/OpenSim/Region/ClientStack/LindenUDP/LLClientView.cs
index 795b099..b937226 100644
--- a/OpenSim/Region/ClientStack/LindenUDP/LLClientView.cs
+++ b/OpenSim/Region/ClientStack/LindenUDP/LLClientView.cs
@@ -5474,6 +5474,7 @@ namespace OpenSim.Region.ClientStack.LindenUDP
// for the client session anyway, in order to protect ourselves against bad code in plugins
try
{
+
byte[] visualparams = new byte[appear.VisualParam.Length];
for (int i = 0; i < appear.VisualParam.Length; i++)
visualparams[i] = appear.VisualParam[i].ParamValue;
diff --git a/OpenSim/Region/CoreModules/Avatar/AvatarFactory/AvatarFactoryModule.cs b/OpenSim/Region/CoreModules/Avatar/AvatarFactory/AvatarFactoryModule.cs
index 87d0b0d..c01d66a 100644
--- a/OpenSim/Region/CoreModules/Avatar/AvatarFactory/AvatarFactoryModule.cs
+++ b/OpenSim/Region/CoreModules/Avatar/AvatarFactory/AvatarFactoryModule.cs
@@ -50,7 +50,7 @@ namespace OpenSim.Region.CoreModules.Avatar.AvatarFactory
//if ((profile != null) && (profile.RootFolder != null))
if (avatar != null)
{
- appearance = avatar.ToAvatarAppearance();
+ appearance = avatar.ToAvatarAppearance(avatarId);
return true;
}
@@ -153,6 +153,8 @@ namespace OpenSim.Region.CoreModules.Avatar.AvatarFactory
///
public void AvatarIsWearing(Object sender, AvatarWearingArgs e)
{
+ m_log.DebugFormat("[APPEARANCE]: AvatarIsWearing");
+
IClientAPI clientView = (IClientAPI)sender;
ScenePresence sp = m_scene.GetScenePresence(clientView.AgentId);
@@ -162,12 +164,12 @@ namespace OpenSim.Region.CoreModules.Avatar.AvatarFactory
return;
}
- AvatarAppearance avatAppearance = null;
- if (!TryGetAvatarAppearance(clientView.AgentId, out avatAppearance))
- {
- m_log.Warn("[APPEARANCE]: We didn't seem to find the appearance, falling back to ScenePresence");
- avatAppearance = sp.Appearance;
- }
+ AvatarAppearance avatAppearance = sp.Appearance;
+ //if (!TryGetAvatarAppearance(clientView.AgentId, out avatAppearance))
+ //{
+ // m_log.Warn("[APPEARANCE]: We didn't seem to find the appearance, falling back to ScenePresence");
+ // avatAppearance = sp.Appearance;
+ //}
//m_log.DebugFormat("[APPEARANCE]: Received wearables for {0}", clientView.Name);
@@ -194,6 +196,7 @@ namespace OpenSim.Region.CoreModules.Avatar.AvatarFactory
public void UpdateDatabase(UUID user, AvatarAppearance appearance)
{
+ m_log.DebugFormat("[APPEARANCE]: UpdateDatabase");
AvatarData adata = new AvatarData(appearance);
m_scene.AvatarService.SetAvatar(user, adata);
diff --git a/OpenSim/Region/CoreModules/ServiceConnectorsOut/Avatar/LocalAvatarServiceConnector.cs b/OpenSim/Region/CoreModules/ServiceConnectorsOut/Avatar/LocalAvatarServiceConnector.cs
index 0c8ee61..47f19a3 100644
--- a/OpenSim/Region/CoreModules/ServiceConnectorsOut/Avatar/LocalAvatarServiceConnector.cs
+++ b/OpenSim/Region/CoreModules/ServiceConnectorsOut/Avatar/LocalAvatarServiceConnector.cs
@@ -72,7 +72,7 @@ namespace OpenSim.Region.CoreModules.ServiceConnectorsOut.Avatar
IConfig userConfig = source.Configs["AvatarService"];
if (userConfig == null)
{
- m_log.Error("[USER CONNECTOR]: AvatarService missing from OpenSim.ini");
+ m_log.Error("[AVATAR CONNECTOR]: AvatarService missing from OpenSim.ini");
return;
}
@@ -81,7 +81,7 @@ namespace OpenSim.Region.CoreModules.ServiceConnectorsOut.Avatar
if (serviceDll == String.Empty)
{
- m_log.Error("[USER CONNECTOR]: No LocalServiceModule named in section AvatarService");
+ m_log.Error("[AVATAR CONNECTOR]: No LocalServiceModule named in section AvatarService");
return;
}
@@ -92,11 +92,11 @@ namespace OpenSim.Region.CoreModules.ServiceConnectorsOut.Avatar
if (m_AvatarService == null)
{
- m_log.Error("[USER CONNECTOR]: Can't load user account service");
+ m_log.Error("[AVATAR CONNECTOR]: Can't load user account service");
return;
}
m_Enabled = true;
- m_log.Info("[USER CONNECTOR]: Local avatar connector enabled");
+ m_log.Info("[AVATAR CONNECTOR]: Local avatar connector enabled");
}
}
}
@@ -118,7 +118,7 @@ namespace OpenSim.Region.CoreModules.ServiceConnectorsOut.Avatar
if (!m_Enabled)
return;
- scene.RegisterModuleInterface(m_AvatarService);
+ scene.RegisterModuleInterface(this);
}
public void RemoveRegion(Scene scene)
diff --git a/OpenSim/Region/Framework/Scenes/Scene.Inventory.cs b/OpenSim/Region/Framework/Scenes/Scene.Inventory.cs
index 3f71715..70aea75 100644
--- a/OpenSim/Region/Framework/Scenes/Scene.Inventory.cs
+++ b/OpenSim/Region/Framework/Scenes/Scene.Inventory.cs
@@ -2358,7 +2358,7 @@ namespace OpenSim.Region.Framework.Scenes
InventoryItemBase item = new InventoryItemBase(itemID, remoteClient.AgentId);
item = InventoryService.GetItem(item);
- presence.Appearance.SetAttachment((int)AttachmentPt, itemID, item.AssetID /*att.UUID*/);
+ presence.Appearance.SetAttachment((int)AttachmentPt, itemID, /*item.AssetID*/ att.UUID);
}
return att.UUID;
}
@@ -2403,7 +2403,7 @@ namespace OpenSim.Region.Framework.Scenes
// XXYY!!
InventoryItemBase item = new InventoryItemBase(itemID, remoteClient.AgentId);
item = InventoryService.GetItem(item);
- presence.Appearance.SetAttachment((int)AttachmentPt, itemID, item.AssetID /*att.UUID*/);
+ presence.Appearance.SetAttachment((int)AttachmentPt, itemID, /*item.AssetID*/ att.UUID);
if (m_AvatarFactory != null)
{
diff --git a/OpenSim/Region/Framework/Scenes/Scene.cs b/OpenSim/Region/Framework/Scenes/Scene.cs
index db0da34..db7b3ff 100644
--- a/OpenSim/Region/Framework/Scenes/Scene.cs
+++ b/OpenSim/Region/Framework/Scenes/Scene.cs
@@ -300,7 +300,7 @@ namespace OpenSim.Region.Framework.Scenes
get
{
if (m_AvatarService == null)
- m_AvatarService = RequestModuleInterface();
+ m_AvatarService = RequestModuleInterface();
return m_AvatarService;
}
}
diff --git a/OpenSim/Region/Framework/Scenes/SceneCommunicationService.cs b/OpenSim/Region/Framework/Scenes/SceneCommunicationService.cs
index 7d9b427..11cb8cd 100644
--- a/OpenSim/Region/Framework/Scenes/SceneCommunicationService.cs
+++ b/OpenSim/Region/Framework/Scenes/SceneCommunicationService.cs
@@ -250,7 +250,7 @@ namespace OpenSim.Region.Framework.Scenes
{
InformClientOfNeighbourDelegate icon = (InformClientOfNeighbourDelegate) iar.AsyncState;
icon.EndInvoke(iar);
- m_log.WarnFormat(" --> InformClientOfNeighbourCompleted");
+ //m_log.WarnFormat(" --> InformClientOfNeighbourCompleted");
}
///
@@ -456,7 +456,7 @@ namespace OpenSim.Region.Framework.Scenes
int count = 0;
foreach (GridRegion neighbour in neighbours)
{
- m_log.WarnFormat("--> Going to send child agent to {0}", neighbour.RegionName);
+ //m_log.WarnFormat("--> Going to send child agent to {0}", neighbour.RegionName);
// Don't do it if there's already an agent in that region
if (newRegions.Contains(neighbour.RegionHandle))
newAgent = true;
diff --git a/OpenSim/Region/Framework/Scenes/ScenePresence.cs b/OpenSim/Region/Framework/Scenes/ScenePresence.cs
index 47eaa95..ae586a1 100644
--- a/OpenSim/Region/Framework/Scenes/ScenePresence.cs
+++ b/OpenSim/Region/Framework/Scenes/ScenePresence.cs
@@ -2565,14 +2565,18 @@ namespace OpenSim.Region.Framework.Scenes
}
}
}
+
}
+
#endregion Bake Cache Check
m_appearance.SetAppearance(textureEntry, visualParams);
if (m_appearance.AvatarHeight > 0)
SetHeight(m_appearance.AvatarHeight);
+
AvatarData adata = new AvatarData(m_appearance);
+
m_scene.AvatarService.SetAvatar(m_controllingClient.AgentId, adata);
SendAppearanceToAllOtherAgents();
diff --git a/OpenSim/Region/OptionalModules/World/NPC/NPCModule.cs b/OpenSim/Region/OptionalModules/World/NPC/NPCModule.cs
index a6d4a93..6e742f1 100644
--- a/OpenSim/Region/OptionalModules/World/NPC/NPCModule.cs
+++ b/OpenSim/Region/OptionalModules/World/NPC/NPCModule.cs
@@ -67,7 +67,7 @@ namespace OpenSim.Region.OptionalModules.World.NPC
AvatarData adata = scene.AvatarService.GetAvatar(target);
if (adata != null)
{
- AvatarAppearance x = adata.ToAvatarAppearance();
+ AvatarAppearance x = adata.ToAvatarAppearance(target);
m_appearanceCache.Add(target, x);
diff --git a/OpenSim/Services/AvatarService/AvatarService.cs b/OpenSim/Services/AvatarService/AvatarService.cs
index 0b351a2..19e662c 100644
--- a/OpenSim/Services/AvatarService/AvatarService.cs
+++ b/OpenSim/Services/AvatarService/AvatarService.cs
@@ -73,6 +73,12 @@ namespace OpenSim.Services.AvatarService
public bool SetAvatar(UUID principalID, AvatarData avatar)
{
+ int count = 0;
+ foreach (KeyValuePair kvp in avatar.Data)
+ if (kvp.Key.StartsWith("_"))
+ count++;
+
+ m_log.DebugFormat("[AVATAR SERVICE]: SetAvatar for {0}, attachs={1}", principalID, count);
m_Database.Delete("PrincipalID", principalID.ToString());
AvatarBaseData av = new AvatarBaseData();
diff --git a/OpenSim/Services/Interfaces/IAvatarService.cs b/OpenSim/Services/Interfaces/IAvatarService.cs
index ea08ea5..564c406 100644
--- a/OpenSim/Services/Interfaces/IAvatarService.cs
+++ b/OpenSim/Services/Interfaces/IAvatarService.cs
@@ -131,17 +131,15 @@ namespace OpenSim.Services.Interfaces
AvatarType = 1; // SL avatars
Data = new Dictionary();
+ Data["Serial"] = appearance.Serial.ToString();
// Wearables
Data["AvatarHeight"] = appearance.AvatarHeight.ToString();
Data["BodyItem"] = appearance.BodyItem.ToString();
Data["EyesItem"] = appearance.EyesItem.ToString();
Data["GlovesItem"] = appearance.GlovesItem.ToString();
Data["HairItem"] = appearance.HairItem.ToString();
- //Data["HipOffset"] = appearance.HipOffset.ToString();
Data["JacketItem"] = appearance.JacketItem.ToString();
- Data["Owner"] = appearance.Owner.ToString();
Data["PantsItem"] = appearance.PantsItem.ToString();
- Data["Serial"] = appearance.Serial.ToString();
Data["ShirtItem"] = appearance.ShirtItem.ToString();
Data["ShoesItem"] = appearance.ShoesItem.ToString();
Data["SkinItem"] = appearance.SkinItem.ToString();
@@ -150,53 +148,92 @@ namespace OpenSim.Services.Interfaces
Data["UnderPantsItem"] = appearance.UnderPantsItem.ToString();
Data["UnderShirtItem"] = appearance.UnderShirtItem.ToString();
+ Data["BodyAsset"] = appearance.BodyAsset.ToString();
+ Data["EyesAsset"] = appearance.EyesAsset.ToString();
+ Data["GlovesAsset"] = appearance.GlovesAsset.ToString();
+ Data["HairAsset"] = appearance.HairAsset.ToString();
+ Data["JacketAsset"] = appearance.JacketAsset.ToString();
+ Data["PantsAsset"] = appearance.PantsAsset.ToString();
+ Data["ShirtAsset"] = appearance.ShirtAsset.ToString();
+ Data["ShoesAsset"] = appearance.ShoesAsset.ToString();
+ Data["SkinAsset"] = appearance.SkinAsset.ToString();
+ Data["SkirtAsset"] = appearance.SkirtAsset.ToString();
+ Data["SocksAsset"] = appearance.SocksAsset.ToString();
+ Data["UnderPantsAsset"] = appearance.UnderPantsAsset.ToString();
+ Data["UnderShirtAsset"] = appearance.UnderShirtAsset.ToString();
+
// Attachments
Hashtable attachs = appearance.GetAttachments();
- foreach (KeyValuePair kvp in attachs)
- {
- Data["_ap_" + kvp.Key] = kvp.Value["item"].ToString();
- }
+ if (attachs != null)
+ foreach (DictionaryEntry dentry in attachs)
+ {
+ if (dentry.Value != null)
+ {
+ Hashtable tab = (Hashtable)dentry.Value;
+ if (tab.ContainsKey("item") && tab["item"] != null)
+ Data["_ap_" + dentry.Key] = tab["item"].ToString();
+ }
+ }
}
- public AvatarAppearance ToAvatarAppearance()
+ public AvatarAppearance ToAvatarAppearance(UUID owner)
{
- AvatarAppearance appearance = new AvatarAppearance();
- // Wearables
- appearance.AvatarHeight = float.Parse(Data["AvatarHeight"]);
- appearance.BodyItem = UUID.Parse(Data["BodyItem"]);
- appearance.EyesItem = UUID.Parse(Data["EyesItem"]);
- appearance.GlovesItem = UUID.Parse(Data["GlovesItem"]);
- appearance.HairItem = UUID.Parse(Data["HairItem"]);
- //appearance.HipOffset = float.Parse(Data["HipOffset"]);
- appearance.JacketItem = UUID.Parse(Data["JacketItem"]);
- appearance.Owner = UUID.Parse(Data["Owner"]);
- appearance.PantsItem = UUID.Parse(Data["PantsItem"]);
- appearance.Serial = Int32.Parse(Data["Serial"]);
- appearance.ShirtItem = UUID.Parse(Data["ShirtItem"]);
- appearance.ShoesItem = UUID.Parse(Data["ShoesItem"]);
- appearance.SkinItem = UUID.Parse(Data["SkinItem"]);
- appearance.SkirtItem = UUID.Parse(Data["SkirtItem"]);
- appearance.SocksItem = UUID.Parse(Data["SocksItem"]);
- appearance.UnderPantsItem = UUID.Parse(Data["UnderPantsItem"]);
- appearance.UnderShirtItem = UUID.Parse(Data["UnderShirtItem"]);
-
- // Attachments
- Dictionary attchs = new Dictionary();
- foreach (KeyValuePair _kvp in Data)
- if (_kvp.Key.StartsWith("_ap_"))
- attchs[_kvp.Key] = _kvp.Value;
- Hashtable aaAttachs = new Hashtable();
- foreach (KeyValuePair _kvp in attchs)
+ AvatarAppearance appearance = new AvatarAppearance(owner);
+ try
{
- string pointStr = _kvp.Key.Substring(4);
- int point = 0;
- if (!Int32.TryParse(pointStr, out point))
- continue;
- Hashtable tmp = new Hashtable();
- tmp["item"] = _kvp.Value;
- tmp["asset"] = UUID.Zero.ToString();
- aaAttachs[point] = tmp;
+ appearance.Serial = Int32.Parse(Data["Serial"]);
+
+ // Wearables
+ appearance.BodyItem = UUID.Parse(Data["BodyItem"]);
+ appearance.EyesItem = UUID.Parse(Data["EyesItem"]);
+ appearance.GlovesItem = UUID.Parse(Data["GlovesItem"]);
+ appearance.HairItem = UUID.Parse(Data["HairItem"]);
+ appearance.JacketItem = UUID.Parse(Data["JacketItem"]);
+ appearance.PantsItem = UUID.Parse(Data["PantsItem"]);
+ appearance.ShirtItem = UUID.Parse(Data["ShirtItem"]);
+ appearance.ShoesItem = UUID.Parse(Data["ShoesItem"]);
+ appearance.SkinItem = UUID.Parse(Data["SkinItem"]);
+ appearance.SkirtItem = UUID.Parse(Data["SkirtItem"]);
+ appearance.SocksItem = UUID.Parse(Data["SocksItem"]);
+ appearance.UnderPantsItem = UUID.Parse(Data["UnderPantsItem"]);
+ appearance.UnderShirtItem = UUID.Parse(Data["UnderShirtItem"]);
+
+ appearance.BodyAsset = UUID.Parse(Data["BodyAsset"]);
+ appearance.EyesAsset = UUID.Parse(Data["EyesAsset"]);
+ appearance.GlovesAsset = UUID.Parse(Data["GlovesAsset"]);
+ appearance.HairAsset = UUID.Parse(Data["HairAsset"]);
+ appearance.JacketAsset = UUID.Parse(Data["JacketAsset"]);
+ appearance.PantsAsset = UUID.Parse(Data["PantsAsset"]);
+ appearance.ShirtAsset = UUID.Parse(Data["ShirtAsset"]);
+ appearance.ShoesAsset = UUID.Parse(Data["ShoesAsset"]);
+ appearance.SkinAsset = UUID.Parse(Data["SkinAsset"]);
+ appearance.SkirtAsset = UUID.Parse(Data["SkirtAsset"]);
+ appearance.SocksAsset = UUID.Parse(Data["SocksAsset"]);
+ appearance.UnderPantsAsset = UUID.Parse(Data["UnderPantsAsset"]);
+ appearance.UnderShirtAsset = UUID.Parse(Data["UnderShirtAsset"]);
+
+ // Attachments
+ Dictionary attchs = new Dictionary();
+ foreach (KeyValuePair _kvp in Data)
+ if (_kvp.Key.StartsWith("_ap_"))
+ attchs[_kvp.Key] = _kvp.Value;
+ Hashtable aaAttachs = new Hashtable();
+ foreach (KeyValuePair _kvp in attchs)
+ {
+ string pointStr = _kvp.Key.Substring(4);
+ int point = 0;
+ if (!Int32.TryParse(pointStr, out point))
+ continue;
+ Hashtable tmp = new Hashtable();
+ UUID uuid = UUID.Zero;
+ UUID.TryParse(_kvp.Value, out uuid);
+ tmp["item"] = uuid;
+ tmp["asset"] = UUID.Zero.ToString();
+ aaAttachs[point] = tmp;
+ }
+ appearance.SetAttachments(aaAttachs);
}
+ catch { }
return appearance;
}
diff --git a/OpenSim/Services/LLLoginService/LLLoginService.cs b/OpenSim/Services/LLLoginService/LLLoginService.cs
index 32df16d..e9c18ec 100644
--- a/OpenSim/Services/LLLoginService/LLLoginService.cs
+++ b/OpenSim/Services/LLLoginService/LLLoginService.cs
@@ -375,7 +375,7 @@ namespace OpenSim.Services.LLLoginService
aCircuit.AgentID = account.PrincipalID;
if (avatar != null)
- aCircuit.Appearance = avatar.ToAvatarAppearance();
+ aCircuit.Appearance = avatar.ToAvatarAppearance(account.PrincipalID);
//aCircuit.BaseFolder = irrelevant
aCircuit.CapsPath = CapsUtil.GetRandomCapsObjectPath();
aCircuit.child = false; // the first login agent is root
diff --git a/bin/config-include/StandaloneHypergrid.ini b/bin/config-include/StandaloneHypergrid.ini
index feca115..277d05a 100644
--- a/bin/config-include/StandaloneHypergrid.ini
+++ b/bin/config-include/StandaloneHypergrid.ini
@@ -20,6 +20,7 @@
PresenceServices = "LocalPresenceServicesConnector"
UserAccountServices = "LocalUserAccountServicesConnector"
SimulationServices = "RemoteSimulationConnectorModule"
+ AvatarServices = "LocalAvatarServicesConnector";
InventoryServiceInConnector = true
AssetServiceInConnector = true
HGAuthServiceInConnector = true
@@ -44,6 +45,10 @@
LocalGridInventoryService = "OpenSim.Services.InventoryService.dll:InventoryService"
HypergridInventoryService = "OpenSim.Services.Connectors.dll:HGInventoryServiceConnector"
+[AvatarService]
+ ; For the InventoryServiceInConnector
+ LocalServiceModule = "OpenSim.Services.AvatarService.dll:AvatarService"
+
[LibraryService]
LocalServiceModule = "OpenSim.Services.InventoryService.dll:LibraryService"
LibraryName = "OpenSim Library"
@@ -79,6 +84,7 @@
InventoryService = "OpenSim.Services.InventoryService.dll:InventoryService"
PresenceService = "OpenSim.Services.PresenceService.dll:PresenceService"
GridService = "OpenSim.Services.GridService.dll:GridService"
+ AvatarService = "OpenSim.Services.AvatarService.dll:AvatarService"
DefaultRegion = "OpenSim Test"
WelcomeMessage = "Welcome, Avatar!"
--
cgit v1.1