本文整理汇总了C#中TestClient.RequestClientInfo方法的典型用法代码示例。如果您正苦于以下问题:C# TestClient.RequestClientInfo方法的具体用法?C# TestClient.RequestClientInfo怎么用?C# TestClient.RequestClientInfo使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类TestClient
的用法示例。
在下文中一共展示了TestClient.RequestClientInfo方法的3个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C#代码示例。
示例1: SetupInformClientOfNeighbourTriggersNeighbourClientCreate
/// <summary>
/// Set up correct handling of the InformClientOfNeighbour call from the source region that triggers the
/// viewer to setup a connection with the destination region.
/// </summary>
/// <param name='tc'></param>
/// <param name='neighbourTcs'>
/// A list that will be populated with any TestClients set up in response to
/// being informed about a destination region.
/// </param>
public static void SetupInformClientOfNeighbourTriggersNeighbourClientCreate(
TestClient tc, List<TestClient> neighbourTcs)
{
// XXX: Confusingly, this is also used for non-neighbour notification (as in teleports that do not use the
// event queue).
tc.OnTestClientInformClientOfNeighbour += (neighbourHandle, neighbourExternalEndPoint) =>
{
uint x, y;
Utils.LongToUInts(neighbourHandle, out x, out y);
x /= Constants.RegionSize;
y /= Constants.RegionSize;
m_log.DebugFormat(
"[TEST CLIENT]: Processing inform client of neighbour located at {0},{1} at {2}",
x, y, neighbourExternalEndPoint);
AgentCircuitData newAgent = tc.RequestClientInfo();
Scene neighbourScene;
SceneManager.Instance.TryGetScene(x, y, out neighbourScene);
TestClient neighbourTc = new TestClient(newAgent, neighbourScene);
neighbourTcs.Add(neighbourTc);
neighbourScene.AddNewAgent(neighbourTc, PresenceType.User);
};
}
示例2: SetUpInformClientOfNeighbour
/// <summary>
/// Set up correct handling of the InformClientOfNeighbour call from the source region that triggers the
/// viewer to setup a connection with the destination region.
/// </summary>
/// <param name='tc'></param>
/// <param name='neighbourTcs'>
/// A list that will be populated with any TestClients set up in response to
/// being informed about a destination region.
/// </param>
public static void SetUpInformClientOfNeighbour(TestClient tc, List<TestClient> neighbourTcs)
{
// XXX: Confusingly, this is also used for non-neighbour notification (as in teleports that do not use the
// event queue).
tc.OnTestClientInformClientOfNeighbour += (neighbourHandle, neighbourExternalEndPoint) =>
{
uint x, y;
Utils.LongToUInts(neighbourHandle, out x, out y);
x /= Constants.RegionSize;
y /= Constants.RegionSize;
m_log.DebugFormat(
"[TEST CLIENT]: Processing inform client of neighbour located at {0},{1} at {2}",
x, y, neighbourExternalEndPoint);
// In response to this message, we are going to make a teleport to the scene we've previous been told
// about by test code (this needs to be improved).
AgentCircuitData newAgent = tc.RequestClientInfo();
Scene neighbourScene;
SceneManager.Instance.TryGetScene(x, y, out neighbourScene);
TestClient neighbourTc = new TestClient(newAgent, neighbourScene);
neighbourTcs.Add(neighbourTc);
neighbourScene.AddNewClient(neighbourTc, PresenceType.User);
};
}
示例3: SetupSendRegionTeleportTriggersDestinationClientCreateAndCompleteMovement
/// <summary>
/// Set up correct handling of the InformClientOfNeighbour call from the source region that triggers the
/// viewer to setup a connection with the destination region.
/// </summary>
/// <param name='tc'></param>
/// <param name='neighbourTcs'>
/// A list that will be populated with any TestClients set up in response to
/// being informed about a destination region.
/// </param>
public static void SetupSendRegionTeleportTriggersDestinationClientCreateAndCompleteMovement(
TestClient client, List<TestClient> destinationClients)
{
client.OnTestClientSendRegionTeleport
+= (regionHandle, simAccess, regionExternalEndPoint, locationID, flags, capsURL) =>
{
uint x, y;
Utils.LongToUInts(regionHandle, out x, out y);
x /= Constants.RegionSize;
y /= Constants.RegionSize;
m_log.DebugFormat(
"[TEST CLIENT]: Processing send region teleport for destination at {0},{1} at {2}",
x, y, regionExternalEndPoint);
AgentCircuitData newAgent = client.RequestClientInfo();
Scene destinationScene;
SceneManager.Instance.TryGetScene(x, y, out destinationScene);
TestClient destinationClient = new TestClient(newAgent, destinationScene);
destinationClients.Add(destinationClient);
destinationScene.AddNewAgent(destinationClient, PresenceType.User);
ThreadPool.UnsafeQueueUserWorkItem(o => destinationClient.CompleteMovement(), null);
};
}