Renamed IAgentTransferModule to IEntityTransferModule -- accounts for objects too.
parent
8d5a5d6a4d
commit
4ac3c0e81b
|
@ -44,9 +44,9 @@ using OpenMetaverse;
|
|||
using log4net;
|
||||
using Nini.Config;
|
||||
|
||||
namespace OpenSim.Region.CoreModules.Agent.AgentTransfer
|
||||
namespace OpenSim.Region.CoreModules.Framework.EntityTransfer
|
||||
{
|
||||
public class AgentTransferModule : ISharedRegionModule, IAgentTransferModule
|
||||
public class AgentTransferModule : ISharedRegionModule, IEntityTransferModule
|
||||
{
|
||||
#region ISharedRegionModule
|
||||
private static readonly ILog m_log = LogManager.GetLogger(MethodBase.GetCurrentMethod().DeclaringType);
|
||||
|
@ -92,7 +92,7 @@ namespace OpenSim.Region.CoreModules.Agent.AgentTransfer
|
|||
if (m_aScene == null)
|
||||
m_aScene = scene;
|
||||
|
||||
scene.RegisterModuleInterface<IAgentTransferModule>(this);
|
||||
scene.RegisterModuleInterface<IEntityTransferModule>(this);
|
||||
}
|
||||
|
||||
public virtual void Close()
|
||||
|
@ -192,6 +192,7 @@ namespace OpenSim.Region.CoreModules.Agent.AgentTransfer
|
|||
uint oldRegionY = (((uint)(sp.Scene.RegionInfo.RegionHandle)) >> 8);
|
||||
|
||||
ulong destinationHandle = GetRegionHandle(reg);
|
||||
GridRegion finalDestination = GetFinalDestination(reg);
|
||||
|
||||
if (eq == null)
|
||||
sp.ControllingClient.SendTeleportLocationStart();
|
||||
|
@ -235,7 +236,7 @@ namespace OpenSim.Region.CoreModules.Agent.AgentTransfer
|
|||
agentCircuit.child = true;
|
||||
agentCircuit.Appearance = sp.Appearance;
|
||||
|
||||
if (Util.IsOutsideView(oldRegionX, newRegionX, oldRegionY, newRegionY))
|
||||
if (NeedsNewAgent(oldRegionX, newRegionX, oldRegionY, newRegionY))
|
||||
{
|
||||
// brand new agent, let's create a new caps seed
|
||||
agentCircuit.CapsPath = CapsUtil.GetRandomCapsObjectPath();
|
||||
|
@ -244,7 +245,6 @@ namespace OpenSim.Region.CoreModules.Agent.AgentTransfer
|
|||
string reason = String.Empty;
|
||||
|
||||
// Let's create an agent there if one doesn't exist yet.
|
||||
//if (!m_commsProvider.InterRegion.InformRegionOfChildAgent(reg.RegionHandle, agentCircuit))
|
||||
if (!m_aScene.SimulationService.CreateAgent(reg, agentCircuit, teleportFlags, out reason))
|
||||
{
|
||||
sp.ControllingClient.SendTeleportFailed(String.Format("Destination is not accepting teleports: {0}",
|
||||
|
@ -255,7 +255,7 @@ namespace OpenSim.Region.CoreModules.Agent.AgentTransfer
|
|||
// OK, it got this agent. Let's close some child agents
|
||||
sp.CloseChildAgents(newRegionX, newRegionY);
|
||||
|
||||
if (Util.IsOutsideView(oldRegionX, newRegionX, oldRegionY, newRegionY))
|
||||
if (NeedsNewAgent(oldRegionX, newRegionX, oldRegionY, newRegionY))
|
||||
{
|
||||
#region IP Translation for NAT
|
||||
IClientIPEndpoint ipepClient;
|
||||
|
@ -427,6 +427,47 @@ namespace OpenSim.Region.CoreModules.Agent.AgentTransfer
|
|||
}
|
||||
}
|
||||
|
||||
protected void KillEntity(Scene scene, uint localID)
|
||||
{
|
||||
scene.SendKillObject(localID);
|
||||
}
|
||||
|
||||
protected virtual ulong GetRegionHandle(GridRegion region)
|
||||
{
|
||||
return region.RegionHandle;
|
||||
}
|
||||
|
||||
protected virtual GridRegion GetFinalDestination(GridRegion region)
|
||||
{
|
||||
return region;
|
||||
}
|
||||
|
||||
protected virtual bool NeedsNewAgent(uint oldRegionX, uint newRegionX, uint oldRegionY, uint newRegionY)
|
||||
{
|
||||
return Util.IsOutsideView(oldRegionX, newRegionX, oldRegionY, newRegionY);
|
||||
}
|
||||
|
||||
protected virtual bool NeedsClosing(uint oldRegionX, uint newRegionX, uint oldRegionY, uint newRegionY, GridRegion reg)
|
||||
{
|
||||
return Util.IsOutsideView(oldRegionX, newRegionX, oldRegionY, newRegionY);
|
||||
}
|
||||
|
||||
protected virtual bool IsOutsideRegion(Scene s, Vector3 pos)
|
||||
{
|
||||
|
||||
if (s.TestBorderCross(pos, Cardinals.N))
|
||||
return true;
|
||||
if (s.TestBorderCross(pos, Cardinals.S))
|
||||
return true;
|
||||
if (s.TestBorderCross(pos, Cardinals.E))
|
||||
return true;
|
||||
if (s.TestBorderCross(pos, Cardinals.W))
|
||||
return true;
|
||||
|
||||
return false;
|
||||
}
|
||||
|
||||
|
||||
#endregion
|
||||
|
||||
#region Enable Child Agent
|
||||
|
@ -1115,20 +1156,6 @@ namespace OpenSim.Region.CoreModules.Agent.AgentTransfer
|
|||
|
||||
|
||||
#region Misc
|
||||
protected bool IsOutsideRegion(Scene s, Vector3 pos)
|
||||
{
|
||||
|
||||
if (s.TestBorderCross(pos, Cardinals.N))
|
||||
return true;
|
||||
if (s.TestBorderCross(pos, Cardinals.S))
|
||||
return true;
|
||||
if (s.TestBorderCross(pos, Cardinals.E))
|
||||
return true;
|
||||
if (s.TestBorderCross(pos, Cardinals.W))
|
||||
return true;
|
||||
|
||||
return false;
|
||||
}
|
||||
|
||||
protected bool WaitForCallback(UUID id)
|
||||
{
|
||||
|
@ -1167,20 +1194,6 @@ namespace OpenSim.Region.CoreModules.Agent.AgentTransfer
|
|||
return false;
|
||||
}
|
||||
|
||||
protected void KillEntity(Scene scene, uint localID)
|
||||
{
|
||||
scene.SendKillObject(localID);
|
||||
}
|
||||
|
||||
protected virtual ulong GetRegionHandle(GridRegion region)
|
||||
{
|
||||
return region.RegionHandle;
|
||||
}
|
||||
|
||||
protected virtual bool NeedsClosing(uint oldRegionX, uint newRegionX, uint oldRegionY, uint newRegionY, GridRegion reg)
|
||||
{
|
||||
return Util.IsOutsideView(oldRegionX, newRegionX, oldRegionY, newRegionY);
|
||||
}
|
||||
|
||||
#endregion
|
||||
|
|
@ -43,13 +43,13 @@ namespace OpenSim.Region.CoreModules.ServiceConnectorsOut.Simulation
|
|||
private static readonly ILog m_log = LogManager.GetLogger(MethodBase.GetCurrentMethod().DeclaringType);
|
||||
private List<Scene> m_sceneList = new List<Scene>();
|
||||
|
||||
private IAgentTransferModule m_AgentTransferModule;
|
||||
protected IAgentTransferModule AgentTransferModule
|
||||
private IEntityTransferModule m_AgentTransferModule;
|
||||
protected IEntityTransferModule AgentTransferModule
|
||||
{
|
||||
get
|
||||
{
|
||||
if (m_AgentTransferModule == null)
|
||||
m_AgentTransferModule = m_sceneList[0].RequestModuleInterface<IAgentTransferModule>();
|
||||
m_AgentTransferModule = m_sceneList[0].RequestModuleInterface<IEntityTransferModule>();
|
||||
return m_AgentTransferModule;
|
||||
}
|
||||
}
|
||||
|
|
|
@ -34,7 +34,7 @@ using OpenSim.Region.Framework.Scenes;
|
|||
|
||||
namespace OpenSim.Region.Framework.Interfaces
|
||||
{
|
||||
public interface IAgentTransferModule
|
||||
public interface IEntityTransferModule
|
||||
{
|
||||
void Teleport(ScenePresence agent, ulong regionHandle, Vector3 position,
|
||||
Vector3 lookAt, uint teleportFlags);
|
|
@ -315,7 +315,7 @@ namespace OpenSim.Region.Framework.Scenes
|
|||
protected IConfigSource m_config;
|
||||
protected IRegionSerialiserModule m_serialiser;
|
||||
protected IDialogModule m_dialogModule;
|
||||
protected IAgentTransferModule m_teleportModule;
|
||||
protected IEntityTransferModule m_teleportModule;
|
||||
|
||||
protected ICapabilitiesModule m_capsModule;
|
||||
public ICapabilitiesModule CapsModule
|
||||
|
@ -1218,7 +1218,7 @@ namespace OpenSim.Region.Framework.Scenes
|
|||
m_serialiser = RequestModuleInterface<IRegionSerialiserModule>();
|
||||
m_dialogModule = RequestModuleInterface<IDialogModule>();
|
||||
m_capsModule = RequestModuleInterface<ICapabilitiesModule>();
|
||||
m_teleportModule = RequestModuleInterface<IAgentTransferModule>();
|
||||
m_teleportModule = RequestModuleInterface<IEntityTransferModule>();
|
||||
}
|
||||
|
||||
#endregion
|
||||
|
|
|
@ -1110,7 +1110,7 @@ namespace OpenSim.Region.Framework.Scenes
|
|||
// Create child agents in neighbouring regions
|
||||
if (!m_isChildAgent)
|
||||
{
|
||||
IAgentTransferModule m_agentTransfer = m_scene.RequestModuleInterface<IAgentTransferModule>();
|
||||
IEntityTransferModule m_agentTransfer = m_scene.RequestModuleInterface<IEntityTransferModule>();
|
||||
if (m_agentTransfer != null)
|
||||
m_agentTransfer.EnableChildAgents(this);
|
||||
else
|
||||
|
@ -2193,7 +2193,7 @@ namespace OpenSim.Region.Framework.Scenes
|
|||
|
||||
if (m_scene.SceneGridService != null)
|
||||
{
|
||||
IAgentTransferModule m_agentTransfer = m_scene.RequestModuleInterface<IAgentTransferModule>();
|
||||
IEntityTransferModule m_agentTransfer = m_scene.RequestModuleInterface<IEntityTransferModule>();
|
||||
if (m_agentTransfer != null)
|
||||
m_agentTransfer.EnableChildAgents(this);
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue