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/SceneCommunicationService.cs | |
parent | Added Region name to the terrain texture description that gets sent to the as... (diff) | |
download | opensim-SC-175b6115f19f9bad7c81fde625250b3a7f8a33f2.zip opensim-SC-175b6115f19f9bad7c81fde625250b3a7f8a33f2.tar.gz opensim-SC-175b6115f19f9bad7c81fde625250b3a7f8a33f2.tar.bz2 opensim-SC-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 '')
-rw-r--r-- | OpenSim/Region/Environment/Scenes/SceneCommunicationService.cs | 33 |
1 files changed, 27 insertions, 6 deletions
diff --git a/OpenSim/Region/Environment/Scenes/SceneCommunicationService.cs b/OpenSim/Region/Environment/Scenes/SceneCommunicationService.cs index 9a10c51..ae44acb 100644 --- a/OpenSim/Region/Environment/Scenes/SceneCommunicationService.cs +++ b/OpenSim/Region/Environment/Scenes/SceneCommunicationService.cs | |||
@@ -21,6 +21,7 @@ namespace OpenSim.Region.Environment.Scenes | |||
21 | public event ExpectUserDelegate OnExpectUser; | 21 | public event ExpectUserDelegate OnExpectUser; |
22 | public event CloseAgentConnection OnCloseAgentConnection; | 22 | public event CloseAgentConnection OnCloseAgentConnection; |
23 | public event PrimCrossing OnPrimCrossingIntoRegion; | 23 | public event PrimCrossing OnPrimCrossingIntoRegion; |
24 | public event RegionUp OnRegionUp; | ||
24 | 25 | ||
25 | 26 | ||
26 | public SceneCommunicationService(CommunicationsManager commsMan) | 27 | public SceneCommunicationService(CommunicationsManager commsMan) |
@@ -38,6 +39,7 @@ namespace OpenSim.Region.Environment.Scenes | |||
38 | regionCommsHost.OnAvatarCrossingIntoRegion += AgentCrossing; | 39 | regionCommsHost.OnAvatarCrossingIntoRegion += AgentCrossing; |
39 | regionCommsHost.OnPrimCrossingIntoRegion += PrimCrossing; | 40 | regionCommsHost.OnPrimCrossingIntoRegion += PrimCrossing; |
40 | regionCommsHost.OnCloseAgentConnection += CloseConnection; | 41 | regionCommsHost.OnCloseAgentConnection += CloseConnection; |
42 | regionCommsHost.OnRegionUp += newRegionUp; | ||
41 | 43 | ||
42 | 44 | ||
43 | } | 45 | } |
@@ -45,12 +47,16 @@ namespace OpenSim.Region.Environment.Scenes | |||
45 | 47 | ||
46 | public void Close() | 48 | public void Close() |
47 | { | 49 | { |
48 | regionCommsHost.OnExpectUser -= NewUserConnection; | 50 | if (regionCommsHost != null) |
49 | regionCommsHost.OnAvatarCrossingIntoRegion -= AgentCrossing; | 51 | { |
50 | regionCommsHost.OnPrimCrossingIntoRegion -= PrimCrossing; | 52 | regionCommsHost.OnRegionUp -= newRegionUp; |
51 | regionCommsHost.OnCloseAgentConnection -= CloseConnection; | 53 | regionCommsHost.OnExpectUser -= NewUserConnection; |
52 | m_commsProvider.GridService.DeregisterRegion(m_regionInfo); | 54 | regionCommsHost.OnAvatarCrossingIntoRegion -= AgentCrossing; |
53 | regionCommsHost = null; | 55 | regionCommsHost.OnPrimCrossingIntoRegion -= PrimCrossing; |
56 | regionCommsHost.OnCloseAgentConnection -= CloseConnection; | ||
57 | m_commsProvider.GridService.DeregisterRegion(m_regionInfo); | ||
58 | regionCommsHost = null; | ||
59 | } | ||
54 | } | 60 | } |
55 | 61 | ||
56 | #region CommsManager Event handlers | 62 | #region CommsManager Event handlers |
@@ -59,6 +65,7 @@ namespace OpenSim.Region.Environment.Scenes | |||
59 | /// </summary> | 65 | /// </summary> |
60 | /// <param name="regionHandle"></param> | 66 | /// <param name="regionHandle"></param> |
61 | /// <param name="agent"></param> | 67 | /// <param name="agent"></param> |
68 | /// | ||
62 | protected void NewUserConnection(ulong regionHandle, AgentCircuitData agent) | 69 | protected void NewUserConnection(ulong regionHandle, AgentCircuitData agent) |
63 | { | 70 | { |
64 | if (OnExpectUser != null) | 71 | if (OnExpectUser != null) |
@@ -67,6 +74,15 @@ namespace OpenSim.Region.Environment.Scenes | |||
67 | } | 74 | } |
68 | } | 75 | } |
69 | 76 | ||
77 | protected bool newRegionUp(RegionInfo region) | ||
78 | { | ||
79 | if (OnRegionUp != null) | ||
80 | { | ||
81 | OnRegionUp(region); | ||
82 | } | ||
83 | return true; | ||
84 | } | ||
85 | |||
70 | protected void AgentCrossing(ulong regionHandle, LLUUID agentID, LLVector3 position, bool isFlying) | 86 | protected void AgentCrossing(ulong regionHandle, LLUUID agentID, LLVector3 position, bool isFlying) |
71 | { | 87 | { |
72 | if (OnAvatarCrossingIntoRegion != null) | 88 | if (OnAvatarCrossingIntoRegion != null) |
@@ -249,6 +265,11 @@ namespace OpenSim.Region.Environment.Scenes | |||
249 | return m_commsProvider.InterRegion.ExpectAvatarCrossing(regionhandle, agentID, position, isFlying); | 265 | return m_commsProvider.InterRegion.ExpectAvatarCrossing(regionhandle, agentID, position, isFlying); |
250 | } | 266 | } |
251 | 267 | ||
268 | public void InformNeighborsThatRegionisUp(RegionInfo region) | ||
269 | { | ||
270 | bool val = m_commsProvider.InterRegion.RegionUp(region); | ||
271 | } | ||
272 | |||
252 | public bool PrimCrossToNeighboringRegion(ulong regionhandle, LLUUID primID, LLVector3 position, bool isPhysical) | 273 | public bool PrimCrossToNeighboringRegion(ulong regionhandle, LLUUID primID, LLVector3 position, bool isPhysical) |
253 | { | 274 | { |
254 | return m_commsProvider.InterRegion.ExpectPrimCrossing(regionhandle, primID, position, isPhysical); | 275 | return m_commsProvider.InterRegion.ExpectPrimCrossing(regionhandle, primID, position, isPhysical); |