本文整理汇总了C#中ISimulationService.CreateAgent方法的典型用法代码示例。如果您正苦于以下问题:C# ISimulationService.CreateAgent方法的具体用法?C# ISimulationService.CreateAgent怎么用?C# ISimulationService.CreateAgent使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类ISimulationService
的用法示例。
在下文中一共展示了ISimulationService.CreateAgent方法的10个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C#代码示例。
示例1: CreateAgent
private bool CreateAgent(GridRegion region, IRegionClientCapsService regionCaps, ref AgentCircuitData aCircuit,
ISimulationService SimulationService, ref int requestedUDPPort, out string reason)
{
CachedUserInfo info = new CachedUserInfo();
IAgentConnector con = Aurora.DataManager.DataManager.RequestPlugin<IAgentConnector>();
if (con != null)
info.AgentInfo = con.GetAgent(aCircuit.AgentID);
info.UserAccount = regionCaps.ClientCaps.AccountInfo;
IGroupsServiceConnector groupsConn = Aurora.DataManager.DataManager.RequestPlugin<IGroupsServiceConnector>();
if (groupsConn != null)
{
info.ActiveGroup = groupsConn.GetGroupMembershipData(aCircuit.AgentID, UUID.Zero, aCircuit.AgentID);
info.GroupMemberships = groupsConn.GetAgentGroupMemberships(aCircuit.AgentID, aCircuit.AgentID);
}
aCircuit.OtherInformation["CachedUserInfo"] = info.ToOSD();
return SimulationService.CreateAgent(region, aCircuit, aCircuit.teleportFlags, null,
out requestedUDPPort, out reason);
}
示例2: LaunchAgentDirectly
private bool LaunchAgentDirectly(ISimulationService simConnector, GridRegion region, AgentCircuitData aCircuit, TeleportFlags flags, out string reason)
{
string version;
if (
!simConnector.QueryAccess(
region, aCircuit.AgentID, null, true, aCircuit.startpos, "SIMULATION/0.3", out version, out reason))
return false;
return simConnector.CreateAgent(null, region, aCircuit, (uint)flags, out reason);
}
示例3: LaunchAgentDirectly
private bool LaunchAgentDirectly(ISimulationService simConnector, GridRegion region, AgentCircuitData aCircuit, TeleportFlags flags, out string reason)
{
return simConnector.CreateAgent(null, region, aCircuit, (uint)flags, out reason);
}
示例4: LaunchAgentDirectly
private bool LaunchAgentDirectly(ISimulationService simConnector, GridRegion region, AgentCircuitData aCircuit, TeleportFlags flags, out string reason)
{
EntityTransferContext ctx = new EntityTransferContext();
if (!simConnector.QueryAccess(
region, aCircuit.AgentID, null, true, aCircuit.startpos, new List<UUID>(), ctx, out reason))
return false;
return simConnector.CreateAgent(null, region, aCircuit, (uint)flags, ctx, out reason);
}
示例5: CreateAgent
bool CreateAgent(GridRegion region, IRegionClientCapsService regionCaps, ref AgentCircuitData aCircuit,
ISimulationService SimulationService, List<UUID> friendsToInform, out CreateAgentResponse response)
{
CachedUserInfo info = new CachedUserInfo();
IAgentConnector con = Framework.Utilities.DataManager.RequestPlugin<IAgentConnector>();
if (con != null)
info.AgentInfo = con.GetAgent(aCircuit.AgentID);
if (regionCaps != null)
info.UserAccount = regionCaps.ClientCaps.AccountInfo;
IGroupsServiceConnector groupsConn = Framework.Utilities.DataManager.RequestPlugin<IGroupsServiceConnector>();
if (groupsConn != null)
{
info.ActiveGroup = groupsConn.GetGroupMembershipData(aCircuit.AgentID, UUID.Zero, aCircuit.AgentID);
info.GroupMemberships = groupsConn.GetAgentGroupMemberships(aCircuit.AgentID, aCircuit.AgentID);
}
IOfflineMessagesConnector offlineMessConn =
Framework.Utilities.DataManager.RequestPlugin<IOfflineMessagesConnector>();
if (offlineMessConn != null)
info.OfflineMessages = offlineMessConn.GetOfflineMessages(aCircuit.AgentID);
IMuteListConnector muteConn = Framework.Utilities.DataManager.RequestPlugin<IMuteListConnector>();
if (muteConn != null)
info.MuteList = muteConn.GetMuteList(aCircuit.AgentID);
IAvatarService avatarService = m_registry.RequestModuleInterface<IAvatarService>();
if (avatarService != null)
info.Appearance = avatarService.GetAppearance(aCircuit.AgentID);
info.FriendOnlineStatuses = friendsToInform;
IFriendsService friendsService = m_registry.RequestModuleInterface<IFriendsService>();
if (friendsService != null)
info.Friends = friendsService.GetFriends(aCircuit.AgentID);
aCircuit.CachedUserInfo = info;
return SimulationService.CreateAgent(region, aCircuit, aCircuit.TeleportFlags, out response);
}
示例6: LaunchAgentDirectly
private bool LaunchAgentDirectly(ISimulationService simConnector, GridRegion region, AgentCircuitData aCircuit, out string reason)
{
return simConnector.CreateAgent(region, aCircuit, (int)Constants.TeleportFlags.ViaLogin, out reason);
}
示例7: LaunchAgentDirectly
protected bool LaunchAgentDirectly(ISimulationService simConnector, GridRegion region, AgentCircuitData aCircuit, out string reason)
{
// The client is in the region, we need to make sure it gets the right Caps
// If CreateAgent is successful, it passes back a OSDMap of params that the client
// wants to inform us about, and it includes the Caps SEED url for the region
IRegionClientCapsService regionClientCaps = null;
if (m_CapsService != null)
{
//Remove any previous users
string ServerCapsBase = CapsUtil.GetRandomCapsObjectPath();
m_CapsService.CreateCAPS(aCircuit.AgentID, CapsUtil.GetCapsSeedPath(ServerCapsBase), region.RegionHandle, true, aCircuit);
regionClientCaps = m_CapsService.GetClientCapsService(aCircuit.AgentID).GetCapsService(region.RegionHandle);
}
ICommunicationService commsService = m_registry.RequestModuleInterface<ICommunicationService>();
if (commsService != null)
commsService.GetUrlsForUser(region, aCircuit.AgentID);//Make sure that we make userURLs if we need to
// As we are creating the agent, we must also initialize the CapsService for the agent
bool success = simConnector.CreateAgent (region, ref aCircuit, aCircuit.teleportFlags, null, out reason);
if (!success) // If it failed, do not set up any CapsService for the client
{
if (reason != "")
{
try
{
OSDMap reasonMap = OSDParser.DeserializeJson (reason) as OSDMap;
if (reasonMap != null && reasonMap.ContainsKey ("Reason"))
reason = reasonMap["Reason"].AsString ();
}
catch
{
//If its already not JSON, it'll throw an exception, catch it
}
}
//Delete the Caps!
IAgentProcessing agentProcessor = m_registry.RequestModuleInterface<IAgentProcessing>();
if (agentProcessor != null && m_CapsService != null)
agentProcessor.LogoutAgent(regionClientCaps);
else if(m_CapsService != null)
m_CapsService.RemoveCAPS(aCircuit.AgentID);
return success;
}
if (m_CapsService != null && reason != "")
{
try
{
OSDMap responseMap = (OSDMap)OSDParser.DeserializeJson (reason);
OSDMap SimSeedCaps = (OSDMap)responseMap["CapsUrls"];
regionClientCaps.AddCAPS (SimSeedCaps);
}
catch
{
//Delete the Caps!
IAgentProcessing agentProcessor = m_registry.RequestModuleInterface<IAgentProcessing> ();
if (agentProcessor != null && m_CapsService != null)
agentProcessor.LogoutAgent (regionClientCaps);
else if (m_CapsService != null)
m_CapsService.RemoveCAPS (aCircuit.AgentID);
success = false;
}
}
return success;
}
示例8: LaunchAgentDirectly
private bool LaunchAgentDirectly(ISimulationService simConnector, GridRegion region, AgentCircuitData aCircuit, TeleportFlags flags, out string reason)
{
string myversion = String.Format("SIMULATION/{0}", VersionInfo.SimulationServiceVersion);
string version;
if (!simConnector.QueryAccess(
region, aCircuit.AgentID, null, true, aCircuit.startpos, myversion, new List<UUID>(), out version, out reason))
return false;
return simConnector.CreateAgent(null, region, aCircuit, (uint)flags, out reason);
}
示例9: LaunchAgentDirectly
protected bool LaunchAgentDirectly(ISimulationService simConnector, GridRegion region, AgentCircuitData aCircuit, out string reason)
{
// The client is in the region, we need to make sure it gets the right Caps
// If CreateAgent is successful, it passes back a OSDMap of params that the client
// wants to inform us about, and it includes the Caps SEED url for the region
IRegionClientCapsService regionClientCaps = null;
if (m_CapsService != null)
{
//Remove any previous users
string ServerCapsBase = CapsUtil.GetRandomCapsObjectPath();
string ServerCapsSeedPath = m_CapsService.CreateCAPS(aCircuit.AgentID, "", CapsUtil.GetCapsSeedPath(ServerCapsBase), region.RegionHandle, true);
regionClientCaps = m_CapsService.GetClientCapsService(aCircuit.AgentID).GetCapsService(region.RegionHandle);
aCircuit.OtherInformation["CapsPassword"] = regionClientCaps.Password;
}
// As we are creating the agent, we must also initialize the CapsService for the agent
bool success = simConnector.CreateAgent(region, aCircuit, (int)TeleportFlags.ViaLogin, null, out reason);
if (!success) // If it failed, do not set up any CapsService for the client
{
//Delete the Caps!
m_CapsService.RemoveCAPS(aCircuit.AgentID);
return success;
}
if (m_CapsService != null && reason != "")
{
OSDMap responseMap = (OSDMap)OSDParser.DeserializeJson(reason);
string SimcapsSeedPath = responseMap["CapsUrl"].AsString();
regionClientCaps.AddSEEDCap("", SimcapsSeedPath, UUID.Zero);
m_log.Info("[NewAgentConnection]: Adding Caps Url for grid" +
" @" + regionClientCaps.CapsUrl + " calling URL " + SimcapsSeedPath +
" for agent " + aCircuit.AgentID);
}
return success;
}
示例10: LaunchAgentDirectly
protected bool LaunchAgentDirectly(ISimulationService simConnector, GridRegion region, AgentCircuitData aCircuit, out string reason)
{
// The client is in the region, we need to make sure it gets the right Caps
// If CreateAgent is successful, it passes back a OSDMap of params that the client
// wants to inform us about, and it includes the Caps SEED url for the region
IRegionClientCapsService regionClientCaps = null;
if (m_CapsService != null)
{
//Remove any previous users
string ServerCapsBase = CapsUtil.GetRandomCapsObjectPath();
m_CapsService.CreateCAPS(aCircuit.AgentID, CapsUtil.GetCapsSeedPath(ServerCapsBase), region.RegionHandle, true, aCircuit);
regionClientCaps = m_CapsService.GetClientCapsService(aCircuit.AgentID).GetCapsService(region.RegionHandle);
}
ICommunicationService commsService = m_registry.RequestModuleInterface<ICommunicationService>();
if (commsService != null)
{
aCircuit.OtherInformation["UserUrls"] = commsService.GetUrlsForUser(region, aCircuit.AgentID);
}
aCircuit.teleportFlags = (uint)TeleportFlags.ViaLogin;
// As we are creating the agent, we must also initialize the CapsService for the agent
bool success = simConnector.CreateAgent(region, aCircuit, (int)TeleportFlags.ViaLogin, null, out reason);
if (!success) // If it failed, do not set up any CapsService for the client
{
//Delete the Caps!
IAgentProcessing agentProcessor = m_registry.RequestModuleInterface<IAgentProcessing>();
if (agentProcessor != null && m_CapsService != null)
agentProcessor.LogoutAgent(regionClientCaps);
else if(m_CapsService != null)
m_CapsService.RemoveCAPS(aCircuit.AgentID);
return success;
}
if (m_CapsService != null && reason != "")
{
OSDMap responseMap = (OSDMap)OSDParser.DeserializeJson(reason);
OSDMap SimSeedCaps = (OSDMap)responseMap["CapsUrls"];
regionClientCaps.AddCAPS(SimSeedCaps);
}
return success;
}