aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/OpenSim/Region/CoreModules/World
diff options
context:
space:
mode:
authorUbitUmarov2014-07-31 03:10:50 +0100
committerUbitUmarov2014-07-31 03:10:50 +0100
commita5e9429f2bb2276486cc2f1ed2249e14fba90d6a (patch)
tree30373d517c5adbea792afb993d8a99546022b26b /OpenSim/Region/CoreModules/World
parentmake HandlerRegionHandshakeReply processing async and delay it a bit. This (diff)
downloadopensim-SC-a5e9429f2bb2276486cc2f1ed2249e14fba90d6a.zip
opensim-SC-a5e9429f2bb2276486cc2f1ed2249e14fba90d6a.tar.gz
opensim-SC-a5e9429f2bb2276486cc2f1ed2249e14fba90d6a.tar.bz2
opensim-SC-a5e9429f2bb2276486cc2f1ed2249e14fba90d6a.tar.xz
MESS: changes in MakeRootAgent and CompleteMovement reordering things.
Added sending of land overlay and parcel information. This in order to only send avatar related information after having its position well defined and on the right parcel. THIS MAY STILL BE BAD :)
Diffstat (limited to 'OpenSim/Region/CoreModules/World')
-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 {