public GridRegion GetHomeRegion(AgentCircuitData circuit, out Vector3 position, out Vector3 lookAt)
{
if (circuit.ServiceURLs.ContainsKey("HomeURI"))
{
IUserAgentService userAgentService = new UserAgentServiceConnector(circuit.ServiceURLs["HomeURI"].ToString());
GridRegion region = userAgentService.GetHomeRegion(circuit, out position, out lookAt);
if (region != null)
{
Uri uri = null;
if (!circuit.ServiceURLs.ContainsKey("HomeURI") ||
(circuit.ServiceURLs.ContainsKey("HomeURI") && !Uri.TryCreate(circuit.ServiceURLs["HomeURI"].ToString(), UriKind.Absolute, out uri)))
{
return(null);
}
region.ExternalHostName = uri.Host;
region.HttpPort = (uint)uri.Port;
region.ServerURI = region.ServerURI;
region.RegionName = string.Empty;
region.InternalEndPoint = new System.Net.IPEndPoint(System.Net.IPAddress.Parse("0.0.0.0"), (int)0);
bool isComingHome = userAgentService.AgentIsComingHome(circuit.SessionID, m_GridName);
return(region);
}
}
return(GetHomeRegion(circuit.AgentID, out position, out lookAt));
}