mirror of
https://github.com/opensim/opensim.git
synced 2026-08-05 08:55:56 +08:00
a few changes to simulatorFeatures cap
This commit is contained in:
@@ -266,7 +266,7 @@ namespace OpenSim.Region.ClientStack.Linden
|
||||
|
||||
private void HandleSimulatorFeaturesRequest(IOSHttpRequest request, IOSHttpResponse response, UUID agentID)
|
||||
{
|
||||
// m_log.DebugFormat("[SIMULATOR FEATURES MODULE]: SimulatorFeatures request");
|
||||
// m_log.DebugFormat("[SIMULATOR FEATURES MODULE]: SimulatorFeatures request");
|
||||
|
||||
if (request.HttpMethod != "GET")
|
||||
{
|
||||
@@ -274,6 +274,7 @@ namespace OpenSim.Region.ClientStack.Linden
|
||||
return;
|
||||
}
|
||||
|
||||
/*
|
||||
ScenePresence sp = m_scene.GetScenePresence(agentID);
|
||||
if (sp == null)
|
||||
{
|
||||
@@ -281,17 +282,31 @@ namespace OpenSim.Region.ClientStack.Linden
|
||||
response.AddHeader("Retry-After", "5");
|
||||
return;
|
||||
}
|
||||
*/
|
||||
|
||||
OSDMap copy = DeepCopy();
|
||||
|
||||
// Let's add the agentID to the destination guide, if it is expecting that.
|
||||
if (copy.ContainsKey("OpenSimExtras") && ((OSDMap)(copy["OpenSimExtras"])).ContainsKey("destination-guide-url"))
|
||||
((OSDMap)copy["OpenSimExtras"])["destination-guide-url"] = Replace(((OSDMap)copy["OpenSimExtras"])["destination-guide-url"], "[USERID]", agentID.ToString());
|
||||
if(copy.TryGetValue("OpenSimExtras", out OSD oe))
|
||||
{
|
||||
if(((OSDMap)oe).TryGetValue("destination-guide-url", out OSD dgl))
|
||||
{
|
||||
((OSDMap)oe)["destination-guide-url"] = Replace(dgl.AsString(), "[USERID]", agentID.ToString());
|
||||
}
|
||||
}
|
||||
|
||||
OnSimulatorFeaturesRequest?.Invoke(agentID, ref copy);
|
||||
if(OnSimulatorFeaturesRequest != null)
|
||||
{
|
||||
foreach(SimulatorFeaturesRequestDelegate sd in OnSimulatorFeaturesRequest.GetInvocationList())
|
||||
try
|
||||
{
|
||||
sd?.Invoke(agentID, ref copy);
|
||||
}
|
||||
catch { }
|
||||
}
|
||||
|
||||
//Send back data
|
||||
response.RawBuffer = Util.UTF8.GetBytes(OSDParser.SerializeLLSDXmlString(copy));
|
||||
response.RawBuffer = OSDParser.SerializeLLSDXmlToBytes(copy);
|
||||
response.StatusCode = (int)HttpStatusCode.OK;
|
||||
}
|
||||
|
||||
|
||||
@@ -112,10 +112,12 @@ namespace OpenSim.Region.CoreModules.Avatar.Chat
|
||||
return;
|
||||
|
||||
ISimulatorFeaturesModule featuresModule = scene.RequestModuleInterface<ISimulatorFeaturesModule>();
|
||||
|
||||
if (featuresModule != null)
|
||||
featuresModule.OnSimulatorFeaturesRequest += OnSimulatorFeaturesRequest;
|
||||
|
||||
{
|
||||
featuresModule.AddOpenSimExtraFeature("say-range", new OSDInteger(m_saydistance));
|
||||
featuresModule.AddOpenSimExtraFeature("whisper-range", new OSDInteger(m_whisperdistance));
|
||||
featuresModule.AddOpenSimExtraFeature("shout-range", new OSDInteger(m_shoutdistance));
|
||||
}
|
||||
}
|
||||
|
||||
public virtual void RemoveRegion(Scene scene)
|
||||
@@ -491,30 +493,5 @@ namespace OpenSim.Region.CoreModules.Avatar.Chat
|
||||
Timers.Remove(target);
|
||||
Timer.Dispose();
|
||||
}
|
||||
#region SimulatorFeaturesRequest
|
||||
|
||||
protected static OSDInteger m_SayRange, m_WhisperRange, m_ShoutRange;
|
||||
|
||||
protected virtual void OnSimulatorFeaturesRequest(UUID agentID, ref OSDMap features)
|
||||
{
|
||||
OSD extras;
|
||||
if (!features.TryGetValue("OpenSimExtras", out extras))
|
||||
extras = new OSDMap();
|
||||
|
||||
if (m_SayRange == null)
|
||||
{
|
||||
// Do this only once
|
||||
m_SayRange = new OSDInteger(m_saydistance);
|
||||
m_WhisperRange = new OSDInteger(m_whisperdistance);
|
||||
m_ShoutRange = new OSDInteger(m_shoutdistance);
|
||||
}
|
||||
|
||||
((OSDMap)extras)["say-range"] = m_SayRange;
|
||||
((OSDMap)extras)["whisper-range"] = m_WhisperRange;
|
||||
((OSDMap)extras)["shout-range"] = m_ShoutRange;
|
||||
|
||||
}
|
||||
|
||||
#endregion
|
||||
}
|
||||
}
|
||||
|
||||
@@ -125,7 +125,10 @@ namespace OpenSim.Region.OptionalModules.Materials
|
||||
m_cache = scene.RequestModuleInterface<IAssetCache>();
|
||||
ISimulatorFeaturesModule featuresModule = scene.RequestModuleInterface<ISimulatorFeaturesModule>();
|
||||
if (featuresModule != null)
|
||||
featuresModule.OnSimulatorFeaturesRequest += OnSimulatorFeaturesRequest;
|
||||
{
|
||||
featuresModule.AddOpenSimExtraFeature("MaxMaterialsPerTransaction", m_maxMaterialsPerTransaction);
|
||||
featuresModule.AddOpenSimExtraFeature("RenderMaterialsCapability", 3.0f);
|
||||
}
|
||||
}
|
||||
|
||||
private void EventManager_OnBackup(ISimulationDataService datastore, bool forcedBackup)
|
||||
@@ -256,12 +259,6 @@ namespace OpenSim.Region.OptionalModules.Materials
|
||||
response.StatusCode = (int)HttpStatusCode.OK;
|
||||
}
|
||||
|
||||
private void OnSimulatorFeaturesRequest(UUID agentID, ref OSDMap features)
|
||||
{
|
||||
features["MaxMaterialsPerTransaction"] = m_maxMaterialsPerTransaction;
|
||||
features["RenderMaterialsCapability"] = OSD.FromReal(3);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Finds any legacy materials stored in DynAttrs that may exist for this part and add them to 'm_regionMaterials'.
|
||||
/// </summary>
|
||||
|
||||
Reference in New Issue
Block a user