From f1c30784ac767bf5f62e81748984b76d85d71f6a Mon Sep 17 00:00:00 2001 From: Diva Canto Date: Fri, 15 Jan 2010 15:11:58 -0800 Subject: * General cleanup of Teleports, Crossings and Child agents. They are now in the new AgentTransferModule, in line with what MW started implementing back in May -- ITeleportModule. This has been renamed IAgentTransferModule, to be more generic. * HGSceneCommunicationService has been deleted * SceneCommunicationService will likely be deleted soon too --- OpenSim/Region/Framework/Scenes/ScenePresence.cs | 25 +++++++++++++++++------- 1 file changed, 18 insertions(+), 7 deletions(-) (limited to 'OpenSim/Region/Framework/Scenes/ScenePresence.cs') diff --git a/OpenSim/Region/Framework/Scenes/ScenePresence.cs b/OpenSim/Region/Framework/Scenes/ScenePresence.cs index 4ead60c..711f9d9 100644 --- a/OpenSim/Region/Framework/Scenes/ScenePresence.cs +++ b/OpenSim/Region/Framework/Scenes/ScenePresence.cs @@ -1072,6 +1072,8 @@ namespace OpenSim.Region.Framework.Scenes /// public void CompleteMovement() { + //m_log.Debug("[SCENE PRESENCE]: CompleteMovement"); + Vector3 look = Velocity; if ((look.X == 0) && (look.Y == 0) && (look.Z == 0)) { @@ -1096,7 +1098,7 @@ namespace OpenSim.Region.Framework.Scenes if ((m_callbackURI != null) && !m_callbackURI.Equals("")) { m_log.DebugFormat("[SCENE PRESENCE]: Releasing agent in URI {0}", m_callbackURI); - Scene.SendReleaseAgent(m_originRegionID, UUID, m_callbackURI); + Scene.SimulationService.ReleaseAgent(m_originRegionID, UUID, m_callbackURI); m_callbackURI = null; } @@ -1104,6 +1106,17 @@ namespace OpenSim.Region.Framework.Scenes m_controllingClient.MoveAgentIntoRegion(m_regionInfo, AbsolutePosition, look); SendInitialData(); + + // Create child agents in neighbouring regions + if (!m_isChildAgent) + { + IAgentTransferModule m_agentTransfer = m_scene.RequestModuleInterface(); + if (m_agentTransfer != null) + m_agentTransfer.EnableChildAgents(this); + else + m_log.DebugFormat("[SCENE PRESENCE]: Unable to create child agents in neighbours, because AgentTransferModule is not active"); + } + } /// @@ -2156,6 +2169,7 @@ namespace OpenSim.Region.Framework.Scenes { if (m_isChildAgent) { + // WHAT??? m_log.Debug("[SCENEPRESENCE]: AddNewMovement() called on child agent, making root agent!"); // we have to reset the user's child agent connections. @@ -2179,7 +2193,9 @@ namespace OpenSim.Region.Framework.Scenes if (m_scene.SceneGridService != null) { - m_scene.SceneGridService.EnableNeighbourChildAgents(this, new List()); + IAgentTransferModule m_agentTransfer = m_scene.RequestModuleInterface(); + if (m_agentTransfer != null) + m_agentTransfer.EnableChildAgents(this); } return; @@ -2476,11 +2492,6 @@ namespace OpenSim.Region.Framework.Scenes m_controllingClient.SendAvatarData(new SendAvatarData(m_regionInfo.RegionHandle, m_firstname, m_lastname, m_grouptitle, m_uuid, LocalId, pos, m_appearance.Texture.GetBytes(), m_parentID, m_bodyRot)); - if (!m_isChildAgent) - { - m_scene.InformClientOfNeighbours(this); - } - SendInitialFullUpdateToAllClients(); SendAppearanceToAllOtherAgents(); } -- cgit v1.1