aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/OpenSim/Region/CoreModules
diff options
context:
space:
mode:
Diffstat (limited to 'OpenSim/Region/CoreModules')
-rw-r--r--OpenSim/Region/CoreModules/World/Land/LandChannel.cs8
-rw-r--r--OpenSim/Region/CoreModules/World/Land/LandManagementModule.cs26
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 {