diff options
Diffstat (limited to 'OpenSim/Region/CoreModules')
-rw-r--r-- | OpenSim/Region/CoreModules/World/Land/LandChannel.cs | 8 | ||||
-rw-r--r-- | OpenSim/Region/CoreModules/World/Land/LandManagementModule.cs | 26 |
2 files changed, 29 insertions, 5 deletions
diff --git a/OpenSim/Region/CoreModules/World/Land/LandChannel.cs b/OpenSim/Region/CoreModules/World/Land/LandChannel.cs index beb0a24..378826d 100644 --- a/OpenSim/Region/CoreModules/World/Land/LandChannel.cs +++ b/OpenSim/Region/CoreModules/World/Land/LandChannel.cs | |||
@@ -213,7 +213,13 @@ namespace OpenSim.Region.CoreModules.World.Land | |||
213 | m_landManagementModule.setParcelOtherCleanTime(remoteClient, localID, otherCleanTime); | 213 | m_landManagementModule.setParcelOtherCleanTime(remoteClient, localID, otherCleanTime); |
214 | } | 214 | } |
215 | } | 215 | } |
216 | 216 | public void sendClientInitialLandInfo(IClientAPI remoteClient) | |
217 | { | ||
218 | if (m_landManagementModule != null) | ||
219 | { | ||
220 | m_landManagementModule.sendClientInitialLandInfo(remoteClient); | ||
221 | } | ||
222 | } | ||
217 | #endregion | 223 | #endregion |
218 | } | 224 | } |
219 | } | 225 | } |
diff --git a/OpenSim/Region/CoreModules/World/Land/LandManagementModule.cs b/OpenSim/Region/CoreModules/World/Land/LandManagementModule.cs index c444c29..0a2882a 100644 --- a/OpenSim/Region/CoreModules/World/Land/LandManagementModule.cs +++ b/OpenSim/Region/CoreModules/World/Land/LandManagementModule.cs | |||
@@ -146,7 +146,7 @@ namespace OpenSim.Region.CoreModules.World.Land | |||
146 | m_scene.EventManager.OnIncomingLandDataFromStorage += EventManagerOnIncomingLandDataFromStorage; | 146 | m_scene.EventManager.OnIncomingLandDataFromStorage += EventManagerOnIncomingLandDataFromStorage; |
147 | m_scene.EventManager.OnSetAllowForcefulBan += EventManagerOnSetAllowedForcefulBan; | 147 | m_scene.EventManager.OnSetAllowForcefulBan += EventManagerOnSetAllowedForcefulBan; |
148 | m_scene.EventManager.OnRegisterCaps += EventManagerOnRegisterCaps; | 148 | m_scene.EventManager.OnRegisterCaps += EventManagerOnRegisterCaps; |
149 | 149 | ||
150 | lock (m_scene) | 150 | lock (m_scene) |
151 | { | 151 | { |
152 | m_scene.LandChannel = (ILandChannel)landChannel; | 152 | m_scene.LandChannel = (ILandChannel)landChannel; |
@@ -194,13 +194,14 @@ namespace OpenSim.Region.CoreModules.World.Land | |||
194 | client.OnParcelEjectUser += ClientOnParcelEjectUser; | 194 | client.OnParcelEjectUser += ClientOnParcelEjectUser; |
195 | client.OnParcelFreezeUser += ClientOnParcelFreezeUser; | 195 | client.OnParcelFreezeUser += ClientOnParcelFreezeUser; |
196 | client.OnSetStartLocationRequest += ClientOnSetHome; | 196 | client.OnSetStartLocationRequest += ClientOnSetHome; |
197 | 197 | /* avatar is still a child here position is unknow | |
198 | EntityBase presenceEntity; | 198 | EntityBase presenceEntity; |
199 | if (m_scene.Entities.TryGetValue(client.AgentId, out presenceEntity) && presenceEntity is ScenePresence) | 199 | if (m_scene.Entities.TryGetValue(client.AgentId, out presenceEntity) && presenceEntity is ScenePresence) |
200 | { | 200 | { |
201 | SendParcelOverlay(client); | 201 | SendParcelOverlay(client); |
202 | SendLandUpdate((ScenePresence)presenceEntity, true); | 202 | SendLandUpdate((ScenePresence)presenceEntity, true); |
203 | } | 203 | } |
204 | */ | ||
204 | } | 205 | } |
205 | 206 | ||
206 | public void EventMakeChildAgent(ScenePresence avatar) | 207 | public void EventMakeChildAgent(ScenePresence avatar) |
@@ -385,12 +386,29 @@ namespace OpenSim.Region.CoreModules.World.Land | |||
385 | return; | 386 | return; |
386 | } | 387 | } |
387 | 388 | ||
389 | public void sendClientInitialLandInfo(IClientAPI remoteClient) | ||
390 | { | ||
391 | SendParcelOverlay(remoteClient); | ||
392 | ScenePresence avatar; | ||
393 | if (!m_scene.TryGetScenePresence(remoteClient.AgentId, out avatar)) | ||
394 | return; | ||
395 | if (avatar.IsChildAgent) | ||
396 | return; | ||
397 | |||
398 | ILandObject over = GetLandObject(avatar.AbsolutePosition.X,avatar.AbsolutePosition.Y); | ||
399 | if (over == null) | ||
400 | return; | ||
401 | |||
402 | avatar.currentParcelUUID = over.LandData.GlobalID; | ||
403 | over.SendLandUpdateToClient(avatar.ControllingClient); | ||
404 | } | ||
405 | |||
388 | public void SendLandUpdate(ScenePresence avatar, bool force) | 406 | public void SendLandUpdate(ScenePresence avatar, bool force) |
389 | { | 407 | { |
390 | if (avatar.IsChildAgent) | 408 | if (avatar.IsChildAgent) |
391 | return; | 409 | return; |
392 | 410 | ||
393 | ILandObject over = GetLandObjectClipedXY(avatar.AbsolutePosition.X,avatar.AbsolutePosition.Y); | 411 | ILandObject over = GetLandObjectClipedXY(avatar.AbsolutePosition.X, avatar.AbsolutePosition.Y); |
394 | 412 | ||
395 | if (over != null) | 413 | if (over != null) |
396 | { | 414 | { |