Fixing up Appearance handling in Region Sync modules and connectors.
parent
681190f682
commit
dc86adbd17
|
@ -261,6 +261,32 @@ namespace OpenSim.Region.CoreModules.Avatar.AvatarFactory
|
|||
}
|
||||
}
|
||||
|
||||
public void RefreshAppearance(UUID agentid)
|
||||
{
|
||||
ScenePresence sp;
|
||||
if(!m_scene.TryGetScenePresence(agentid, out sp))
|
||||
{
|
||||
m_log.WarnFormat("[AVFACTORY]: RefreshAppearance unable to find presence for {0}", agentid);
|
||||
return;
|
||||
}
|
||||
|
||||
Util.FireAndForget(delegate(object o)
|
||||
{
|
||||
AvatarAppearance appearance = m_scene.AvatarService.GetAppearance(agentid);
|
||||
if (appearance.Texture != null && appearance.VisualParams != null)
|
||||
{
|
||||
sp.Appearance.SetTextureEntries(appearance.Texture);
|
||||
sp.Appearance.SetVisualParams(appearance.VisualParams);
|
||||
sp.SetHeight(appearance.AvatarHeight);
|
||||
QueueAppearanceSend(agentid);
|
||||
}
|
||||
else
|
||||
{
|
||||
m_log.WarnFormat("[AVFACTORY]: RefreshAppearance received null appearance data from grid for {0}", agentid);
|
||||
}
|
||||
}, null);
|
||||
}
|
||||
|
||||
private void HandleAppearanceSend(UUID agentid)
|
||||
{
|
||||
ScenePresence sp = m_scene.GetScenePresence(agentid);
|
||||
|
@ -303,6 +329,11 @@ namespace OpenSim.Region.CoreModules.Avatar.AvatarFactory
|
|||
// m_log.WarnFormat("[AVFACTORY] avatar {0} save appearance",agentid);
|
||||
|
||||
m_scene.AvatarService.SetAppearance(agentid, sp.Appearance);
|
||||
// REGION SYNC
|
||||
// If this is a client manager, we have received new appearance from a client and saved
|
||||
// it to the avatar service. Now let's tell the parent scene about it.
|
||||
if (m_scene.IsSyncedClient())
|
||||
m_scene.RegionSyncClientModule.SendAppearanceToScene(agentid);
|
||||
}
|
||||
|
||||
private void HandleAppearanceUpdateTimer(object sender, EventArgs ea)
|
||||
|
|
|
@ -266,6 +266,13 @@ namespace OpenSim.Region.CoreModules.RegionSync.RegionSyncModule
|
|||
}
|
||||
}
|
||||
|
||||
public void SendAppearanceToScene(UUID agentID)
|
||||
{
|
||||
OSDMap data = new OSDMap();
|
||||
data["agentID"] = OSD.FromUUID(agentID);
|
||||
Send(new RegionSyncMessage(RegionSyncMessage.MsgType.AvatarAppearance, OSDParser.SerializeJsonString(data)));
|
||||
}
|
||||
|
||||
// Handle an incoming message
|
||||
// TODO: This should not be synchronous with the receive!
|
||||
// Instead, handle messages from an incoming Queue so server doesn't block sending
|
||||
|
@ -654,7 +661,7 @@ namespace OpenSim.Region.CoreModules.RegionSync.RegionSyncModule
|
|||
}
|
||||
case RegionSyncMessage.MsgType.AvatarAppearance:
|
||||
{
|
||||
//m_log.WarnFormat("{0} START of AvatarAppearance handler", LogHeader);
|
||||
m_log.DebugFormat("{0} START of AvatarAppearance handler", LogHeader);
|
||||
// Get the data from message and error check
|
||||
OSDMap data = DeserializeMessage(msg);
|
||||
if (data == null)
|
||||
|
@ -671,23 +678,10 @@ namespace OpenSim.Region.CoreModules.RegionSync.RegionSyncModule
|
|||
return;
|
||||
}
|
||||
|
||||
// Find the presence in the scene
|
||||
ScenePresence presence;
|
||||
if (m_scene.TryGetScenePresence(agentID, out presence))
|
||||
{
|
||||
string name = presence.Name;
|
||||
Primitive.TextureEntry te = Primitive.TextureEntry.FromOSD(data["te"]);
|
||||
byte[] vp = data["vp"].AsBinary();
|
||||
// Tells the avatar factory to pull an updated appearance from the avatar service
|
||||
m_scene.AvatarFactory.RefreshAppearance(agentID);
|
||||
|
||||
m_log.WarnFormat("{0} Calling presence.SetAppearance for {1} (\"{2}\")", LogHeader, agentID, presence.Name);
|
||||
m_scene.AvatarFactory.SetAppearance(presence.ControllingClient, te, vp);
|
||||
RegionSyncMessage.HandleSuccess(LogHeader, msg, String.Format("Set appearance for {0}", name));
|
||||
}
|
||||
else
|
||||
{
|
||||
RegionSyncMessage.HandleWarning(LogHeader, msg, String.Format("Agent {0} not found in the scene.", agentID));
|
||||
}
|
||||
//m_log.WarnFormat("{0} END of AvatarAppearance handler", LogHeader);
|
||||
m_log.DebugFormat("{0} END of AvatarAppearance handler", LogHeader);
|
||||
return;
|
||||
}
|
||||
case RegionSyncMessage.MsgType.SitResponse:
|
||||
|
@ -961,21 +955,14 @@ namespace OpenSim.Region.CoreModules.RegionSync.RegionSyncModule
|
|||
name = sp.Name;
|
||||
m_log.WarnFormat("{0} Received LLClientView.SetAppearance ({1,3},{2,2}) for {3} (\"{4}\")", LogHeader, vp.Length.ToString(), (te == null) ? "" : "te", agentID.ToString(), sp.Name);
|
||||
if (sp == null)
|
||||
{
|
||||
m_log.WarnFormat("{0} Scene presence could not be found to set appearance.", LogHeader);
|
||||
return;
|
||||
}
|
||||
|
||||
// Set the appearance on the presence. This will generate the needed exchange with the client if rebakes need to take place.
|
||||
m_log.WarnFormat("{0} Setting appearance on ScenePresence {1} \"{2}\"", LogHeader, sp.UUID, sp.Name);
|
||||
m_scene.AvatarFactory.SetAppearance(sp.ControllingClient, te, vp);
|
||||
|
||||
if (te != null)
|
||||
{
|
||||
//m_log.WarnFormat("{0} Sending appearance to server for {1} \"{2}\"", LogHeader, sp.UUID, sp.Name);
|
||||
OSDMap data = new OSDMap(3);
|
||||
data["id"] = OSDUUID.FromUUID(sp.UUID);
|
||||
data["vp"] = new OSDBinary(sp.Appearance.VisualParams);
|
||||
data["te"] = te.GetOSD();
|
||||
Send(new RegionSyncMessage(RegionSyncMessage.MsgType.AvatarAppearance, OSDParser.SerializeJsonString(data)));
|
||||
}
|
||||
}
|
||||
|
||||
public void HandleAgentRequestSit(object sender, UUID agentID, UUID targetID, Vector3 offset)
|
||||
|
|
|
@ -120,6 +120,11 @@ namespace OpenSim.Region.CoreModules.RegionSync.RegionSyncModule
|
|||
m_client.SendCoarseLocations();
|
||||
}
|
||||
|
||||
public void SendAppearanceToScene(UUID agentID)
|
||||
{
|
||||
m_client.SendAppearanceToScene(agentID);
|
||||
}
|
||||
|
||||
public void IncomingLoadBalanceConnection(ScenePresence presence)
|
||||
{
|
||||
m_client.IncomingLoadBalanceConnection(presence);
|
||||
|
|
|
@ -286,8 +286,6 @@ namespace OpenSim.Region.CoreModules.RegionSync.RegionSyncModule
|
|||
return data;
|
||||
}
|
||||
|
||||
private Dictionary<UUID, System.Threading.Timer> m_appearanceTimers = new Dictionary<UUID, Timer>();
|
||||
|
||||
// Handle an incoming message
|
||||
// *** Perhaps this should not be synchronous with the receive
|
||||
// We could handle messages from an incoming Queue
|
||||
|
@ -463,8 +461,7 @@ namespace OpenSim.Region.CoreModules.RegionSync.RegionSyncModule
|
|||
}
|
||||
case RegionSyncMessage.MsgType.AvatarAppearance:
|
||||
{
|
||||
int msgID = msgCount;
|
||||
m_log.DebugFormat("{0} START of AvatarAppearance handler <{1}>", LogHeader, msgID);
|
||||
m_log.DebugFormat("{0} START of AvatarAppearance handler", LogHeader);
|
||||
// Get the data from message and error check
|
||||
OSDMap data = DeserializeMessage(msg);
|
||||
if (data == null)
|
||||
|
@ -481,41 +478,10 @@ namespace OpenSim.Region.CoreModules.RegionSync.RegionSyncModule
|
|||
return;
|
||||
}
|
||||
|
||||
ScenePresence presence;
|
||||
if (m_scene.TryGetScenePresence(agentID, out presence))
|
||||
{
|
||||
int delay = 5000;
|
||||
string name = presence.Name;
|
||||
m_log.WarnFormat("{0} Waiting {1}ms before setting appearance on presence {2} <{3}>", LogHeader, delay, name, msgID);
|
||||
Timer appearanceSetter = new Timer(delegate(object obj)
|
||||
{
|
||||
//m_log.WarnFormat("{0} Ready to set appearance on presence {1} <{2}>", LogHeader, name, msgID);
|
||||
Primitive.TextureEntry te = Primitive.TextureEntry.FromOSD(data["te"]);
|
||||
byte[] vp = data["vp"].AsBinary();
|
||||
// Tells the avatar factory to pull an updated appearance from the avatar service
|
||||
m_scene.AvatarFactory.RefreshAppearance(agentID);
|
||||
|
||||
m_log.DebugFormat("{0} {1} Calling presence.SetAppearance <{2}>", LogHeader, name, msgID);
|
||||
try
|
||||
{
|
||||
m_scene.AvatarFactory.SetAppearance(presence.ControllingClient, te, vp);
|
||||
}
|
||||
catch (Exception e)
|
||||
{
|
||||
m_log.WarnFormat("{0} Caught exception setting appearance for {1} (probably was removed from scene): {2}", LogHeader, name, e.Message);
|
||||
}
|
||||
RegionSyncMessage.HandleSuccess(LogHeader, msg, String.Format("Set appearance for {0} <{1}>", name, msgID));
|
||||
m_log.DebugFormat("{0} Calling RegionsSyncServerModule.SendAppearance for {1} <{2}>", LogHeader, name, msgID);
|
||||
m_scene.RegionSyncServerModule.SendAppearance(presence.UUID, presence.Appearance.VisualParams, presence.Appearance.Texture);
|
||||
lock (m_appearanceTimers)
|
||||
m_appearanceTimers.Remove(agentID);
|
||||
}, null, delay, Timeout.Infinite);
|
||||
lock (m_appearanceTimers)
|
||||
m_appearanceTimers[agentID] = appearanceSetter;
|
||||
}
|
||||
else
|
||||
{
|
||||
RegionSyncMessage.HandleWarning(LogHeader, msg, String.Format("Presence not found in the scene: {0} <{1}>", agentID, msgID));
|
||||
}
|
||||
//m_log.WarnFormat("{0} END of AvatarAppearance handler <{1}>", LogHeader, msgID);
|
||||
m_log.DebugFormat("{0} END of AvatarAppearance handler", LogHeader);
|
||||
return;
|
||||
}
|
||||
case RegionSyncMessage.MsgType.AgentRequestSit:
|
||||
|
|
|
@ -324,33 +324,11 @@ namespace OpenSim.Region.CoreModules.RegionSync.RegionSyncModule
|
|||
|
||||
private Dictionary<UUID, System.Threading.Timer> m_appearanceTimers = new Dictionary<UUID, Timer>();
|
||||
|
||||
public void SendAppearance(UUID agentID, byte[] vp, Primitive.TextureEntry te)
|
||||
public void SendAppearance(UUID agentID)
|
||||
{
|
||||
ScenePresence sp;
|
||||
if (!m_scene.TryGetScenePresence(agentID, out sp))
|
||||
{
|
||||
m_log.WarnFormat("[REGION SYNC SERVER MODULE] <{0}> {1} SendAppearance could not locate presence!", " ", agentID);
|
||||
return;
|
||||
}
|
||||
m_log.DebugFormat("[REGION SYNC SERVER MODULE] <{0}> {1} ScenePresence called SendAppearance ({2})", sp.Name, agentID, te == null ? " " : "te");
|
||||
if(te == null)
|
||||
return;
|
||||
int delay = 1000;
|
||||
//m_log.WarnFormat("[REGION SYNC SERVER MODULE] <{0}> {1} Waiting {2}ms before sending appearance to all client managers", sp.Name, agentID, delay);
|
||||
OSDMap data = new OSDMap(3);
|
||||
OSDMap data = new OSDMap(1);
|
||||
data["id"] = OSDUUID.FromUUID(agentID);
|
||||
data["vp"] = new OSDBinary(vp);
|
||||
data["te"] = te.GetOSD();
|
||||
Timer appearanceSetter = new Timer(delegate(object obj)
|
||||
{
|
||||
m_log.DebugFormat("[REGION SYNC SERVER MODULE] <{0}> {1} Broadcasting appearance to all client managers", sp.Name, agentID);
|
||||
m_server.Broadcast(new RegionSyncMessage(RegionSyncMessage.MsgType.AvatarAppearance, OSDParser.SerializeJsonString(data)));
|
||||
lock (m_appearanceTimers)
|
||||
m_appearanceTimers.Remove(agentID);
|
||||
}, null, delay, Timeout.Infinite);
|
||||
// Just keeps a reference to this timer
|
||||
lock (m_appearanceTimers)
|
||||
m_appearanceTimers[agentID] = appearanceSetter;
|
||||
}
|
||||
|
||||
public void SendAnimations(UUID agentID, UUID[] animations, int[] seqs, UUID sourceAgentId, UUID[] objectIDs)
|
||||
|
|
|
@ -35,6 +35,7 @@ namespace OpenSim.Region.Framework.Interfaces
|
|||
bool ValidateBakedTextureCache(IClientAPI client);
|
||||
void QueueAppearanceSend(UUID agentid);
|
||||
void QueueAppearanceSave(UUID agentid);
|
||||
void RefreshAppearance(UUID agentid);
|
||||
void SetAppearance(IClientAPI client, Primitive.TextureEntry textureEntry, byte[] visualParams);
|
||||
}
|
||||
}
|
||||
|
|
|
@ -36,6 +36,7 @@ namespace OpenSim.Region.Framework.Interfaces
|
|||
bool Active { get; }
|
||||
bool Synced { get; }
|
||||
void SendCoarseLocations();
|
||||
void SendAppearanceToScene(UUID agentID);
|
||||
void IncomingLoadBalanceConnection(ScenePresence presence);
|
||||
}
|
||||
}
|
||||
|
|
|
@ -43,7 +43,7 @@ namespace OpenSim.Region.Framework.Interfaces
|
|||
void SendUpdates();
|
||||
//void DeleteObject(ulong regionHandle, uint localID);
|
||||
void DeleteObject(ulong regionHandle, uint localID, SceneObjectPart part);
|
||||
void SendAppearance(UUID agentID, byte[] vp, Primitive.TextureEntry te);
|
||||
void SendAppearance(UUID agentID);
|
||||
void SendAnimations(UUID agentID, UUID[] animations, int[] seqs, UUID sourceAgentId, UUID[] objectIDs);
|
||||
|
||||
//KittyL: added to support remote script engine actor
|
||||
|
|
|
@ -2606,10 +2606,10 @@ namespace OpenSim.Region.Framework.Scenes
|
|||
// m_log.WarnFormat("[SCENEPRESENCE]: Send appearance from {0} to all other agents", m_uuid);
|
||||
// DEBUG OFF
|
||||
// REGION SYNC
|
||||
// The server should not be doing anything via the ForEachScenePresence method
|
||||
// The server sends appearance to all client managers since there are no local clients
|
||||
if (m_scene.IsSyncedServer())
|
||||
{
|
||||
m_scene.RegionSyncServerModule.SendAppearance(UUID, Appearance.Texture, Appearance.VisualParams);
|
||||
m_scene.RegionSyncServerModule.SendAppearance(UUID);
|
||||
return;
|
||||
}
|
||||
if (Appearance.Texture == null)
|
||||
|
|
|
@ -1,67 +1,33 @@
|
|||
;; XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
|
||||
;; Start IntSim Service Configuration
|
||||
;; XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
|
||||
;;
|
||||
;; Please don't change this file.
|
||||
;; All optional settings are in GridCommon.ini.example,
|
||||
;; which you can copy and change.
|
||||
;;
|
||||
|
||||
;; XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
|
||||
[Friends]
|
||||
Connector = "OpenSim.Services.Connectors.dll:SimianFriendsServiceConnector"
|
||||
;;
|
||||
;; In GridCommon.ini, these are the URLs you would use if SimianGrid is
|
||||
;; installed at http://www.mygrid.com/Grid/
|
||||
;;
|
||||
; AssetServerURI = "http://www.mygrid.com/Grid/?id="
|
||||
; InventoryServerURI = "http://www.mygrid.com/Grid/"
|
||||
; AvatarServerURI = "http://www.mygrid.com/Grid/"
|
||||
; PresenceServerURI = "http://www.mygrid.com/Grid/"
|
||||
; UserAccountServerURI = "http://www.mygrid.com/Grid/"
|
||||
; AuthenticationServerURI = "http://www.mygrid.com/Grid/"
|
||||
; FriendsServerURI = "http://www.mygrid.com/Grid/"
|
||||
; GroupsServerURI = "http://www.mygrid.com/Grid/"
|
||||
|
||||
;; XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
|
||||
[GridService]
|
||||
LocalServiceModule = "OpenSim.Services.GridService.dll:GridService"
|
||||
StorageProvider = "OpenSim.Data.Null.dll:NullRegionData"
|
||||
GridServerURI = "http://grid.beta.sciencesim.com/Grid/"
|
||||
[Includes]
|
||||
Include-Common = "config-include/GridCommon.ini"
|
||||
|
||||
;; XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
|
||||
[LibraryService]
|
||||
LocalServiceModule = "OpenSim.Services.InventoryService.dll:LibraryService"
|
||||
LibraryName = "OpenSim Library"
|
||||
DefaultLibrary = "./inventory/Libraries.xml"
|
||||
|
||||
;; XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
|
||||
[AssetService]
|
||||
DefaultAssetLoader = "OpenSim.Framework.AssetLoader.Filesystem.dll"
|
||||
AssetLoaderArgs = "assets/AssetSets.xml"
|
||||
AssetServerURI = "http://grid.beta.sciencesim.com/Grid/?id="
|
||||
|
||||
;; XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
|
||||
[InventoryService]
|
||||
InventoryServerURI = "http://grid.beta.sciencesim.com/Grid/"
|
||||
|
||||
;; XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
|
||||
[AvatarService]
|
||||
AvatarServerURI = "http://grid.beta.sciencesim.com/Grid/"
|
||||
|
||||
;; XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
|
||||
[PresenceService]
|
||||
PresenceServerURI = "http://grid.beta.sciencesim.com/Grid/"
|
||||
|
||||
;; XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
|
||||
[UserAccountService]
|
||||
UserAccountServerURI = "http://grid.beta.sciencesim.com/Grid/"
|
||||
|
||||
;; XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
|
||||
[AuthenticationService]
|
||||
AuthenticationServerURI = "http://grid.beta.sciencesim.com/Grid/"
|
||||
|
||||
;; XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
|
||||
[FriendsService]
|
||||
FriendsServerURI = "http://grid.beta.sciencesim.com/Grid/"
|
||||
|
||||
;; XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
|
||||
[Groups]
|
||||
ServicesConnectorModule = SimianGroupsServicesConnector
|
||||
GroupsServerURI = "http://grid.beta.sciencesim.com/Grid/"
|
||||
|
||||
;; XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
|
||||
[Modules]
|
||||
GridServices = "OpenSim.Services.Connectors.dll:SimianGridServiceConnector"
|
||||
PresenceServices = "OpenSim.Services.Connectors.dll:SimianPresenceServiceConnector"
|
||||
UserAccountServices = "OpenSim.Services.Connectors.dll:SimianUserAccountServiceConnector"
|
||||
AuthenticationServices = "OpenSim.Services.Connectors.dll:SimianAuthenticationServiceConnector"
|
||||
AssetServices = "OpenSim.Services.Connectors.dll:SimianAssetServiceConnector"
|
||||
InventoryServices = "OpenSim.Services.Connectors.dll:SimianInventoryServiceConnector"
|
||||
AvatarServices = "OpenSim.Services.Connectors.dll:SimianAvatarServiceConnector"
|
||||
GridServices = "SimianGridServiceConnector"
|
||||
PresenceServices = "SimianPresenceServiceConnector"
|
||||
UserAccountServices = "SimianUserAccountServiceConnector"
|
||||
AuthenticationServices = "SimianAuthenticationServiceConnector"
|
||||
AssetServices = "SimianAssetServiceConnector"
|
||||
InventoryServices = "SimianInventoryServiceConnector"
|
||||
AvatarServices = "SimianAvatarServiceConnector"
|
||||
|
||||
NeighbourServices = "RemoteNeighbourServicesConnector"
|
||||
SimulationServices = "RemoteSimulationConnectorModule"
|
||||
|
@ -74,12 +40,38 @@ SimulationServiceInConnector = true
|
|||
LibraryModule = false
|
||||
|
||||
AssetCaching = "FlotsamAssetCache"
|
||||
Include-FlotsamCache = "config-include/FlotsamCache.ini"
|
||||
|
||||
;; XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
|
||||
[Architecture@replace]
|
||||
;; This eliminates the existing Architecture section
|
||||
[SimulationDataStore]
|
||||
LocalServiceModule = "OpenSim.Services.Connectors.dll:SimulationDataService"
|
||||
|
||||
[EstateDataStore]
|
||||
LocalServiceModule = "OpenSim.Services.Connectors.dll:EstateDataService"
|
||||
|
||||
[Friends]
|
||||
Connector = "OpenSim.Services.Connectors.dll:SimianFriendsServiceConnector"
|
||||
|
||||
[GridService]
|
||||
LocalServiceModule = "OpenSim.Services.GridService.dll:GridService"
|
||||
StorageProvider = "OpenSim.Data.Null.dll:NullRegionData"
|
||||
|
||||
[LibraryService]
|
||||
LocalServiceModule = "OpenSim.Services.InventoryService.dll:LibraryService"
|
||||
LibraryName = "OpenSim Library"
|
||||
DefaultLibrary = "./inventory/Libraries.xml"
|
||||
|
||||
[AssetService]
|
||||
DefaultAssetLoader = "OpenSim.Framework.AssetLoader.Filesystem.dll"
|
||||
AssetLoaderArgs = "assets/AssetSets.xml"
|
||||
|
||||
[Groups]
|
||||
Enabled = true
|
||||
Module = GroupsModule
|
||||
DebugEnabled = false
|
||||
NoticesEnabled = true
|
||||
MessagingModule = GroupsMessagingModule
|
||||
MessagingEnabled = true
|
||||
ServicesConnectorModule = SimianGroupsServicesConnector
|
||||
|
||||
[Profiles]
|
||||
Module = "SimianProfiles"
|
||||
|
||||
;; XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
|
||||
;; Finish ScienceSim Service Configuration
|
||||
;; XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
|
||||
|
|
Loading…
Reference in New Issue