Pass entire scene object in OnLoginsEnabled event rather than just the region name.

This saves listeners from having to re-retrieve the scene from their own lists, which won't work anyway if multiple regions with the same name have been allowed
0.7.4.1
Justin Clark-Casey (justincc) 2012-07-18 21:29:12 +01:00
parent 742ad5eb93
commit 6460e587c4
4 changed files with 22 additions and 24 deletions

View File

@ -164,20 +164,11 @@ namespace OpenSim.Region.CoreModules.ServiceConnectorsOut.MapImage
#endregion ISharedRegionModule
void OnLoginsEnabled(string regionName)
void OnLoginsEnabled(IScene scene)
{
Scene scene = null;
foreach (Scene s in m_scenes.Values)
if (s.RegionInfo.RegionName == regionName)
{
scene = s;
break;
}
if (scene != null)
UploadMapTile(scene);
UploadMapTile(scene);
}
///<summary>
///
///</summary>

View File

@ -496,14 +496,13 @@ namespace OpenSim.Region.Framework.Scenes
public delegate void RegionHeartbeatEnd(Scene scene);
public event RegionHeartbeatEnd OnRegionHeartbeatEnd;
public delegate void LoginsEnabled(string regionName);
/// <summary>
/// This should only fire in all circumstances if the RegionReady module is active.
/// </summary>
/// <remarks>
/// TODO: Fire this even when the RegionReady module is not active.
/// </remarks>
public delegate void LoginsEnabled(IScene scene);
public event LoginsEnabled OnLoginsEnabled;
public delegate void PrimsLoaded(Scene s);
@ -2477,7 +2476,7 @@ namespace OpenSim.Region.Framework.Scenes
}
}
public void TriggerLoginsEnabled (string regionName)
public void TriggerLoginsEnabled(Scene scene)
{
LoginsEnabled handler = OnLoginsEnabled;
@ -2487,7 +2486,7 @@ namespace OpenSim.Region.Framework.Scenes
{
try
{
d(regionName);
d(scene);
}
catch (Exception e)
{

View File

@ -1493,7 +1493,7 @@ namespace OpenSim.Region.Framework.Scenes
{
// need to be able to tell these have changed in RegionReady
LoginLock = false;
EventManager.TriggerLoginsEnabled(RegionInfo.RegionName);
EventManager.TriggerLoginsEnabled(this);
}
// For RegionReady lockouts

View File

@ -59,7 +59,7 @@ namespace OpenSim.Region.OptionalModules.Scripting.RegionReady
private bool m_disable_logins;
private string m_uri = string.Empty;
Scene m_scene = null;
Scene m_scene;
#region INonSharedRegionModule interface
@ -192,7 +192,7 @@ namespace OpenSim.Region.OptionalModules.Scripting.RegionReady
m_scene.RegionInfo.RegionName, c.Message, m_channelNotify);
m_scene.EventManager.TriggerOnChatBroadcast(this, c);
m_scene.EventManager.TriggerLoginsEnabled(m_scene.RegionInfo.RegionName);
m_scene.EventManager.TriggerLoginsEnabled(m_scene);
m_scene.SceneGridService.InformNeighborsThatRegionisUp(m_scene.RequestModuleInterface<INeighbourService>(), m_scene.RegionInfo);
}
}
@ -200,20 +200,28 @@ namespace OpenSim.Region.OptionalModules.Scripting.RegionReady
void OnOarFileLoaded(Guid requestId, string message)
{
m_oarFileLoading = true;
if (message==String.Empty)
{
m_lastOarLoadedOk = true;
} else {
}
else
{
m_log.WarnFormat("[RegionReady]: Oar file load errors: {0}", message);
m_lastOarLoadedOk = false;
}
}
// This will be triggerd by Scene if we have no scripts
// m_ScriptsRezzing will be false if there were none
// else it will be true and we should wait on the
// empty compile queue
void OnLoginsEnabled(string regionName)
/// <summary>
/// This will be triggered by Scene directly if it contains no scripts on startup.
/// </summary>
/// <remarks>
/// m_ScriptsRezzing will be false if there were none
/// else it will be true and we should wait on the
/// empty compile queue
/// </remarks>
/// <param name='scene'></param>
void OnLoginsEnabled(IScene scene)
{
if (m_scene.StartDisabled == false)
{