diff options
author | UbitUmarov | 2014-07-31 03:10:50 +0100 |
---|---|---|
committer | UbitUmarov | 2014-07-31 03:10:50 +0100 |
commit | a5e9429f2bb2276486cc2f1ed2249e14fba90d6a (patch) | |
tree | 30373d517c5adbea792afb993d8a99546022b26b /OpenSim/Region/CoreModules/World | |
parent | make HandlerRegionHandshakeReply processing async and delay it a bit. This (diff) | |
download | opensim-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.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 | { |