Get rid of IScene.PresenceChildStatus() which always had to execute a lookup in favour of IClientAPI.ISceneAgent.IsChildAgent instead.
parent
61df0da7f9
commit
c3d16955a7
|
@ -89,19 +89,6 @@ namespace OpenSim.Framework
|
||||||
|
|
||||||
string GetSimulatorVersion();
|
string GetSimulatorVersion();
|
||||||
|
|
||||||
/// <summary>
|
|
||||||
/// Is the agent denoted by the given agentID a child presence in this scene?
|
|
||||||
/// </summary>
|
|
||||||
/// <remarks>
|
|
||||||
/// Used by ClientView when a 'kick everyone' or 'estate message' occurs
|
|
||||||
/// </remarks>
|
|
||||||
/// <param name="avatarID">AvatarID to lookup</param>
|
|
||||||
/// <returns>true if the presence is a child agent, false if the presence is a root exception</returns>
|
|
||||||
/// <exception cref="System.NullReferenceException">
|
|
||||||
/// Thrown if the agent does not exist.
|
|
||||||
/// </exception>
|
|
||||||
bool PresenceChildStatus(UUID agentId);
|
|
||||||
|
|
||||||
bool TryGetScenePresence(UUID agentID, out object scenePresence);
|
bool TryGetScenePresence(UUID agentID, out object scenePresence);
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
|
|
|
@ -47,6 +47,13 @@ namespace OpenSim.Framework
|
||||||
/// </summary>
|
/// </summary>
|
||||||
PresenceType PresenceType { get; }
|
PresenceType PresenceType { get; }
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// If true, then the agent has no avatar in the scene.
|
||||||
|
/// The agent exists to relay data from a region that neighbours the current position of the user's avatar.
|
||||||
|
/// Occasionally data is relayed, such as which a user clicks an item in a neighbouring region.
|
||||||
|
/// </summary>
|
||||||
|
bool IsChildAgent { get; }
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Avatar appearance data.
|
/// Avatar appearance data.
|
||||||
/// </summary>
|
/// </summary>
|
||||||
|
|
|
@ -525,7 +525,7 @@ namespace OpenSim.Region.ClientStack.LindenUDP
|
||||||
|
|
||||||
public void Kick(string message)
|
public void Kick(string message)
|
||||||
{
|
{
|
||||||
if (!ChildAgentStatus())
|
if (!SceneAgent.IsChildAgent)
|
||||||
{
|
{
|
||||||
KickUserPacket kupack = (KickUserPacket)PacketPool.Instance.GetPacket(PacketType.KickUser);
|
KickUserPacket kupack = (KickUserPacket)PacketPool.Instance.GetPacket(PacketType.KickUser);
|
||||||
kupack.UserInfo.AgentID = AgentId;
|
kupack.UserInfo.AgentID = AgentId;
|
||||||
|
@ -2443,7 +2443,7 @@ namespace OpenSim.Region.ClientStack.LindenUDP
|
||||||
/// <param name="Message"></param>
|
/// <param name="Message"></param>
|
||||||
public void SendBlueBoxMessage(UUID FromAvatarID, String FromAvatarName, String Message)
|
public void SendBlueBoxMessage(UUID FromAvatarID, String FromAvatarName, String Message)
|
||||||
{
|
{
|
||||||
if (!ChildAgentStatus())
|
if (!SceneAgent.IsChildAgent)
|
||||||
SendInstantMessage(new GridInstantMessage(null, FromAvatarID, FromAvatarName, AgentId, 1, Message, false, new Vector3()));
|
SendInstantMessage(new GridInstantMessage(null, FromAvatarID, FromAvatarName, AgentId, 1, Message, false, new Vector3()));
|
||||||
|
|
||||||
//SendInstantMessage(FromAvatarID, fromSessionID, Message, AgentId, SessionId, FromAvatarName, (byte)21,(uint) Util.UnixTimeSinceEpoch());
|
//SendInstantMessage(FromAvatarID, fromSessionID, Message, AgentId, SessionId, FromAvatarName, (byte)21,(uint) Util.UnixTimeSinceEpoch());
|
||||||
|
@ -5049,14 +5049,6 @@ namespace OpenSim.Region.ClientStack.LindenUDP
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
/// <summary>
|
|
||||||
/// This is a utility method used by single states to not duplicate kicks and blue card of death messages.
|
|
||||||
/// </summary>
|
|
||||||
public bool ChildAgentStatus()
|
|
||||||
{
|
|
||||||
return m_scene.PresenceChildStatus(AgentId);
|
|
||||||
}
|
|
||||||
|
|
||||||
#endregion
|
#endregion
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
|
@ -11617,7 +11609,7 @@ namespace OpenSim.Region.ClientStack.LindenUDP
|
||||||
if (logPacket)
|
if (logPacket)
|
||||||
m_log.DebugFormat(
|
m_log.DebugFormat(
|
||||||
"[CLIENT]: PACKET OUT to {0} ({1}) in {2} - {3}",
|
"[CLIENT]: PACKET OUT to {0} ({1}) in {2} - {3}",
|
||||||
Name, ChildAgentStatus() ? "child" : "root ", m_scene.RegionInfo.RegionName, packet.Type);
|
Name, SceneAgent.IsChildAgent ? "child" : "root ", m_scene.RegionInfo.RegionName, packet.Type);
|
||||||
}
|
}
|
||||||
|
|
||||||
m_udpServer.SendPacket(m_udpClient, packet, throttlePacketType, doAutomaticSplitting, method);
|
m_udpServer.SendPacket(m_udpClient, packet, throttlePacketType, doAutomaticSplitting, method);
|
||||||
|
@ -11674,7 +11666,7 @@ namespace OpenSim.Region.ClientStack.LindenUDP
|
||||||
if (logPacket)
|
if (logPacket)
|
||||||
m_log.DebugFormat(
|
m_log.DebugFormat(
|
||||||
"[CLIENT]: PACKET IN from {0} ({1}) in {2} - {3}",
|
"[CLIENT]: PACKET IN from {0} ({1}) in {2} - {3}",
|
||||||
Name, ChildAgentStatus() ? "child" : "root ", m_scene.RegionInfo.RegionName, packet.Type);
|
Name, SceneAgent.IsChildAgent ? "child" : "root ", m_scene.RegionInfo.RegionName, packet.Type);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!ProcessPacketMethod(packet))
|
if (!ProcessPacketMethod(packet))
|
||||||
|
|
|
@ -4193,20 +4193,6 @@ namespace OpenSim.Region.Framework.Scenes
|
||||||
return m_sceneGraph.GetScenePresence(localID);
|
return m_sceneGraph.GetScenePresence(localID);
|
||||||
}
|
}
|
||||||
|
|
||||||
public override bool PresenceChildStatus(UUID avatarID)
|
|
||||||
{
|
|
||||||
ScenePresence cp = GetScenePresence(avatarID);
|
|
||||||
|
|
||||||
// FIXME: This is really crap - some logout code is relying on a NullReferenceException to halt its processing
|
|
||||||
// This needs to be fixed properly by cleaning up the logout code.
|
|
||||||
//if (cp != null)
|
|
||||||
// return cp.IsChildAgent;
|
|
||||||
|
|
||||||
//return false;
|
|
||||||
|
|
||||||
return cp.IsChildAgent;
|
|
||||||
}
|
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Performs action on all ROOT (not child) scene presences.
|
/// Performs action on all ROOT (not child) scene presences.
|
||||||
/// This is just a shortcut function since frequently actions only appy to root SPs
|
/// This is just a shortcut function since frequently actions only appy to root SPs
|
||||||
|
|
|
@ -211,11 +211,6 @@ namespace OpenSim.Region.Framework.Scenes
|
||||||
}
|
}
|
||||||
|
|
||||||
#region admin stuff
|
#region admin stuff
|
||||||
|
|
||||||
public virtual bool PresenceChildStatus(UUID avatarID)
|
|
||||||
{
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
|
|
||||||
public abstract void OtherRegionUp(GridRegion otherRegion);
|
public abstract void OtherRegionUp(GridRegion otherRegion);
|
||||||
|
|
||||||
|
|
|
@ -589,19 +589,7 @@ namespace OpenSim.Region.Framework.Scenes
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/// <summary>
|
public bool IsChildAgent { get; set; }
|
||||||
/// If this is true, agent doesn't have a representation in this scene.
|
|
||||||
/// this is an agent 'looking into' this scene from a nearby scene(region)
|
|
||||||
///
|
|
||||||
/// if False, this agent has a representation in this scene
|
|
||||||
/// </summary>
|
|
||||||
private bool m_isChildAgent = true;
|
|
||||||
|
|
||||||
public bool IsChildAgent
|
|
||||||
{
|
|
||||||
get { return m_isChildAgent; }
|
|
||||||
set { m_isChildAgent = value; }
|
|
||||||
}
|
|
||||||
|
|
||||||
public uint ParentID
|
public uint ParentID
|
||||||
{
|
{
|
||||||
|
@ -730,6 +718,7 @@ namespace OpenSim.Region.Framework.Scenes
|
||||||
{
|
{
|
||||||
AttachmentsSyncLock = new Object();
|
AttachmentsSyncLock = new Object();
|
||||||
|
|
||||||
|
IsChildAgent = true;
|
||||||
m_sendCourseLocationsMethod = SendCoarseLocationsDefault;
|
m_sendCourseLocationsMethod = SendCoarseLocationsDefault;
|
||||||
m_sceneViewer = new SceneViewer(this);
|
m_sceneViewer = new SceneViewer(this);
|
||||||
m_animator = new ScenePresenceAnimator(this);
|
m_animator = new ScenePresenceAnimator(this);
|
||||||
|
|
|
@ -219,7 +219,7 @@ namespace OpenSim.Region.CoreModules.UDP.Linden
|
||||||
{
|
{
|
||||||
if (client is LLClientView)
|
if (client is LLClientView)
|
||||||
{
|
{
|
||||||
bool isChild = scene.PresenceChildStatus(client.AgentId);
|
bool isChild = client.SceneAgent.IsChildAgent;
|
||||||
if (isChild && !showChildren)
|
if (isChild && !showChildren)
|
||||||
return;
|
return;
|
||||||
|
|
||||||
|
@ -308,7 +308,7 @@ namespace OpenSim.Region.CoreModules.UDP.Linden
|
||||||
{
|
{
|
||||||
if (client is IStatsCollector)
|
if (client is IStatsCollector)
|
||||||
{
|
{
|
||||||
bool isChild = scene.PresenceChildStatus(client.AgentId);
|
bool isChild = client.SceneAgent.IsChildAgent;
|
||||||
if (isChild && !showChildren)
|
if (isChild && !showChildren)
|
||||||
return;
|
return;
|
||||||
|
|
||||||
|
@ -404,7 +404,7 @@ namespace OpenSim.Region.CoreModules.UDP.Linden
|
||||||
firstClient = false;
|
firstClient = false;
|
||||||
}
|
}
|
||||||
|
|
||||||
bool isChild = scene.PresenceChildStatus(client.AgentId);
|
bool isChild = client.SceneAgent.IsChildAgent;
|
||||||
if (isChild && !showChildren)
|
if (isChild && !showChildren)
|
||||||
return;
|
return;
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue