diff options
author | Teravus Ovares | 2007-11-26 05:02:18 +0000 |
---|---|---|
committer | Teravus Ovares | 2007-11-26 05:02:18 +0000 |
commit | 175b6115f19f9bad7c81fde625250b3a7f8a33f2 (patch) | |
tree | f907f3b409eca34017f6e18dcf4d644b623d0302 /OpenSim/Region/Environment/Scenes/Scene.cs | |
parent | Added Region name to the terrain texture description that gets sent to the as... (diff) | |
download | opensim-SC_OLD-175b6115f19f9bad7c81fde625250b3a7f8a33f2.zip opensim-SC_OLD-175b6115f19f9bad7c81fde625250b3a7f8a33f2.tar.gz opensim-SC_OLD-175b6115f19f9bad7c81fde625250b3a7f8a33f2.tar.bz2 opensim-SC_OLD-175b6115f19f9bad7c81fde625250b3a7f8a33f2.tar.xz |
* Restarting regions with the estate tools works in sandbox mode. I'm still working on grid mode, however. It doesn't break anything, but that feature doesn't work in grid mode yet either.
Diffstat (limited to 'OpenSim/Region/Environment/Scenes/Scene.cs')
-rw-r--r-- | OpenSim/Region/Environment/Scenes/Scene.cs | 41 |
1 files changed, 29 insertions, 12 deletions
diff --git a/OpenSim/Region/Environment/Scenes/Scene.cs b/OpenSim/Region/Environment/Scenes/Scene.cs index fd17d56..a9791ee 100644 --- a/OpenSim/Region/Environment/Scenes/Scene.cs +++ b/OpenSim/Region/Environment/Scenes/Scene.cs | |||
@@ -216,7 +216,7 @@ namespace OpenSim.Region.Environment.Scenes | |||
216 | m_regionHandle = m_regInfo.RegionHandle; | 216 | m_regionHandle = m_regInfo.RegionHandle; |
217 | m_regionName = m_regInfo.RegionName; | 217 | m_regionName = m_regInfo.RegionName; |
218 | m_datastore = m_regInfo.DataStore; | 218 | m_datastore = m_regInfo.DataStore; |
219 | RegisterRegionWithComms(); | 219 | |
220 | m_physicalPrim = physicalPrim; | 220 | m_physicalPrim = physicalPrim; |
221 | m_sendTasksToChild = SendTasksToChild; | 221 | m_sendTasksToChild = SendTasksToChild; |
222 | 222 | ||
@@ -244,6 +244,7 @@ namespace OpenSim.Region.Environment.Scenes | |||
244 | 244 | ||
245 | httpListener = httpServer; | 245 | httpListener = httpServer; |
246 | m_dumpAssetsToFile = dumpAssetsToFile; | 246 | m_dumpAssetsToFile = dumpAssetsToFile; |
247 | RegisterRegionWithComms(); | ||
247 | } | 248 | } |
248 | 249 | ||
249 | #endregion | 250 | #endregion |
@@ -257,21 +258,29 @@ namespace OpenSim.Region.Environment.Scenes | |||
257 | m_eventManager.OnPermissionError += SendPermissionAlert; | 258 | m_eventManager.OnPermissionError += SendPermissionAlert; |
258 | } | 259 | } |
259 | 260 | ||
260 | public override void OtherRegionUp(RegionInfo otherRegion) | 261 | public override bool OtherRegionUp(RegionInfo otherRegion) |
261 | { | 262 | { |
262 | // Another region is up. We have to tell all our ScenePresences about it | 263 | // Another region is up. We have to tell all our ScenePresences about it |
263 | // This fails to get the desired effect and needs further work. | 264 | // This fails to get the desired effect and needs further work. |
264 | 265 | try | |
265 | ForEachScenePresence(delegate(ScenePresence agent) | ||
266 | { | 266 | { |
267 | if (!(agent.IsChildAgent)) | 267 | |
268 | { | 268 | ForEachScenePresence(delegate(ScenePresence agent) |
269 | InformClientOfNeighbor(agent, otherRegion); | 269 | { |
270 | this.CommsManager.InterRegion.InformRegionOfChildAgent(otherRegion.RegionHandle, agent.ControllingClient.RequestClientInfo()); | 270 | if (!(agent.IsChildAgent)) |
271 | 271 | { | |
272 | this.CommsManager.InterRegion.InformRegionOfChildAgent(otherRegion.RegionHandle, agent.ControllingClient.RequestClientInfo()); | ||
273 | InformClientOfNeighbor(agent, otherRegion); | ||
274 | } | ||
272 | } | 275 | } |
276 | |||
277 | ); | ||
273 | } | 278 | } |
274 | ); | 279 | catch (System.NullReferenceException) |
280 | { | ||
281 | // This means that we're not booted up completely yet. | ||
282 | } | ||
283 | return true; | ||
275 | } | 284 | } |
276 | public virtual void Restart(float seconds) | 285 | public virtual void Restart(float seconds) |
277 | { | 286 | { |
@@ -1068,9 +1077,13 @@ namespace OpenSim.Region.Environment.Scenes | |||
1068 | m_sceneGridService.OnExpectUser += NewUserConnection; | 1077 | m_sceneGridService.OnExpectUser += NewUserConnection; |
1069 | m_sceneGridService.OnAvatarCrossingIntoRegion += AgentCrossing; | 1078 | m_sceneGridService.OnAvatarCrossingIntoRegion += AgentCrossing; |
1070 | m_sceneGridService.OnCloseAgentConnection += CloseConnection; | 1079 | m_sceneGridService.OnCloseAgentConnection += CloseConnection; |
1080 | m_sceneGridService.OnRegionUp += OtherRegionUp; | ||
1081 | // Tell Other regions that I'm here. | ||
1082 | m_sceneGridService.InformNeighborsThatRegionisUp(RegionInfo); | ||
1071 | } | 1083 | } |
1072 | public void UnRegisterReginWithComms() | 1084 | public void UnRegisterReginWithComms() |
1073 | { | 1085 | { |
1086 | m_sceneGridService.OnRegionUp -= OtherRegionUp; | ||
1074 | m_sceneGridService.OnExpectUser -= NewUserConnection; | 1087 | m_sceneGridService.OnExpectUser -= NewUserConnection; |
1075 | m_sceneGridService.OnAvatarCrossingIntoRegion -= AgentCrossing; | 1088 | m_sceneGridService.OnAvatarCrossingIntoRegion -= AgentCrossing; |
1076 | m_sceneGridService.OnCloseAgentConnection -= CloseConnection; | 1089 | m_sceneGridService.OnCloseAgentConnection -= CloseConnection; |
@@ -1578,9 +1591,13 @@ namespace OpenSim.Region.Environment.Scenes | |||
1578 | /// <param name="action"></param> | 1591 | /// <param name="action"></param> |
1579 | public void ForEachScenePresence(Action<ScenePresence> action) | 1592 | public void ForEachScenePresence(Action<ScenePresence> action) |
1580 | { | 1593 | { |
1581 | foreach (ScenePresence presence in m_scenePresences.Values) | 1594 | // We don't want to try to send messages if there are no avatar. |
1595 | if (!(m_scenePresences.Equals(null))) | ||
1582 | { | 1596 | { |
1583 | action(presence); | 1597 | foreach (ScenePresence presence in m_scenePresences.Values) |
1598 | { | ||
1599 | action(presence); | ||
1600 | } | ||
1584 | } | 1601 | } |
1585 | } | 1602 | } |
1586 | 1603 | ||