本文整理汇总了C#中OpenSim.Framework.AgentCircuitData.Copy方法的典型用法代码示例。如果您正苦于以下问题:C# AgentCircuitData.Copy方法的具体用法?C# AgentCircuitData.Copy怎么用?C# AgentCircuitData.Copy使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类OpenSim.Framework.AgentCircuitData
的用法示例。
在下文中一共展示了AgentCircuitData.Copy方法的2个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C#代码示例。
示例1: EnableChildAgents
public bool EnableChildAgents (UUID AgentID, ulong requestingRegion, int DrawDistance, AgentCircuitData circuit)
{
int count = 0;
bool informed = true;
int x, y;
Util.UlongToInts (requestingRegion, out x, out y);
GridRegion ourRegion = m_registry.RequestModuleInterface<IGridService> ().GetRegionByPosition (UUID.Zero, x, y);
if (ourRegion == null)
{
m_log.Info ("[AgentProcessing]: Failed to inform neighbors about new agent, could not find our region.");
return false;
}
List<GridRegion> neighbors = GetNeighbors (ourRegion, DrawDistance);
foreach (GridRegion neighbor in neighbors)
{
//m_log.WarnFormat("--> Going to send child agent to {0}, new agent {1}", neighbour.RegionName, newAgent);
if (neighbor.RegionHandle != requestingRegion)
{
string reason;
AgentCircuitData regionCircuitData = circuit.Copy ();
regionCircuitData.child = true; //Fix child agent status
if (!InformClientOfNeighbor (AgentID, requestingRegion, regionCircuitData, neighbor,
(uint)TeleportFlags.Default, null, out reason))
informed = false;
}
count++;
}
return informed;
}
示例2: EnableChildAgents
public virtual void EnableChildAgents (UUID AgentID, ulong requestingRegion, int DrawDistance, AgentCircuitData circuit)
{
Util.FireAndForget(delegate(object o)
{
int count = 0;
int x, y;
Util.UlongToInts(requestingRegion, out x, out y);
GridRegion ourRegion = m_registry.RequestModuleInterface<IGridService>().GetRegionByPosition(UUID.Zero, x, y);
if(ourRegion == null)
{
m_log.Info("[AgentProcessing]: Failed to inform neighbors about new agent, could not find our region.");
return;
}
List<GridRegion> neighbors = GetNeighbors(ourRegion, DrawDistance);
ICapsService capsService = m_registry.RequestModuleInterface<ICapsService>();
IClientCapsService clientCaps = capsService.GetClientCapsService(AgentID);
foreach(GridRegion neighbor in neighbors)
{
if(neighbor.RegionHandle != requestingRegion && clientCaps.GetCapsService(neighbor.RegionHandle) == null)
{
string reason;
AgentCircuitData regionCircuitData = circuit.Copy();
GridRegion nCopy = neighbor;
regionCircuitData.child = true; //Fix child agent status
regionCircuitData.reallyischild = true;
bool useCallbacks = false;
InformClientOfNeighbor(AgentID, requestingRegion, regionCircuitData, ref nCopy,
(uint)TeleportFlags.Default, null, out reason, out useCallbacks);
}
count++;
}
});
}