From af3cd00048fb6476eb5140bcfccda926627363f2 Mon Sep 17 00:00:00 2001 From: Justin Clark-Casey (justincc) Date: Fri, 9 Dec 2011 23:07:53 +0000 Subject: Get rid of IScene.PresenceChildStatus() which always had to execute a lookup in favour of IClientAPI.ISceneAgent.IsChildAgent instead. --- OpenSim/Framework/IScene.cs | 13 ------------- OpenSim/Framework/ISceneAgent.cs | 7 +++++++ OpenSim/Region/ClientStack/Linden/UDP/LLClientView.cs | 16 ++++------------ OpenSim/Region/Framework/Scenes/Scene.cs | 11 ----------- OpenSim/Region/Framework/Scenes/SceneBase.cs | 5 ----- OpenSim/Region/Framework/Scenes/ScenePresence.cs | 15 ++------------- .../Agent/UDP/Linden/LindenUDPInfoModule.cs | 6 +++--- 7 files changed, 16 insertions(+), 57 deletions(-) diff --git a/OpenSim/Framework/IScene.cs b/OpenSim/Framework/IScene.cs index e0e023d..b2604f4 100644 --- a/OpenSim/Framework/IScene.cs +++ b/OpenSim/Framework/IScene.cs @@ -89,19 +89,6 @@ namespace OpenSim.Framework string GetSimulatorVersion(); - /// - /// Is the agent denoted by the given agentID a child presence in this scene? - /// - /// - /// Used by ClientView when a 'kick everyone' or 'estate message' occurs - /// - /// AvatarID to lookup - /// true if the presence is a child agent, false if the presence is a root exception - /// - /// Thrown if the agent does not exist. - /// - bool PresenceChildStatus(UUID agentId); - bool TryGetScenePresence(UUID agentID, out object scenePresence); /// diff --git a/OpenSim/Framework/ISceneAgent.cs b/OpenSim/Framework/ISceneAgent.cs index 69e91ed..824172d 100644 --- a/OpenSim/Framework/ISceneAgent.cs +++ b/OpenSim/Framework/ISceneAgent.cs @@ -48,6 +48,13 @@ namespace OpenSim.Framework PresenceType PresenceType { get; } /// + /// 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. + /// + bool IsChildAgent { get; } + + /// /// Avatar appearance data. /// /// diff --git a/OpenSim/Region/ClientStack/Linden/UDP/LLClientView.cs b/OpenSim/Region/ClientStack/Linden/UDP/LLClientView.cs index f246637..1d4be8a 100644 --- a/OpenSim/Region/ClientStack/Linden/UDP/LLClientView.cs +++ b/OpenSim/Region/ClientStack/Linden/UDP/LLClientView.cs @@ -525,7 +525,7 @@ namespace OpenSim.Region.ClientStack.LindenUDP public void Kick(string message) { - if (!ChildAgentStatus()) + if (!SceneAgent.IsChildAgent) { KickUserPacket kupack = (KickUserPacket)PacketPool.Instance.GetPacket(PacketType.KickUser); kupack.UserInfo.AgentID = AgentId; @@ -2448,7 +2448,7 @@ namespace OpenSim.Region.ClientStack.LindenUDP /// 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(FromAvatarID, fromSessionID, Message, AgentId, SessionId, FromAvatarName, (byte)21,(uint) Util.UnixTimeSinceEpoch()); @@ -5054,14 +5054,6 @@ namespace OpenSim.Region.ClientStack.LindenUDP return 0; } - /// - /// This is a utility method used by single states to not duplicate kicks and blue card of death messages. - /// - public bool ChildAgentStatus() - { - return m_scene.PresenceChildStatus(AgentId); - } - #endregion /// @@ -11625,7 +11617,7 @@ namespace OpenSim.Region.ClientStack.LindenUDP if (logPacket) m_log.DebugFormat( "[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); @@ -11682,7 +11674,7 @@ namespace OpenSim.Region.ClientStack.LindenUDP if (logPacket) m_log.DebugFormat( "[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)) diff --git a/OpenSim/Region/Framework/Scenes/Scene.cs b/OpenSim/Region/Framework/Scenes/Scene.cs index 11505cc..9fdf395 100644 --- a/OpenSim/Region/Framework/Scenes/Scene.cs +++ b/OpenSim/Region/Framework/Scenes/Scene.cs @@ -4193,17 +4193,6 @@ namespace OpenSim.Region.Framework.Scenes } /// - /// Returns true if scene presence is a child (no avatar in this scene) - /// - /// - /// - public override bool PresenceChildStatus(UUID avatarID) - { - ScenePresence sp; - return TryGetScenePresence(avatarID, out sp) && sp.IsChildAgent; - } - - /// /// Performs action on all avatars in the scene (root scene presences) /// Avatars may be an NPC or a 'real' client. /// diff --git a/OpenSim/Region/Framework/Scenes/SceneBase.cs b/OpenSim/Region/Framework/Scenes/SceneBase.cs index da15491..712e094 100644 --- a/OpenSim/Region/Framework/Scenes/SceneBase.cs +++ b/OpenSim/Region/Framework/Scenes/SceneBase.cs @@ -211,11 +211,6 @@ namespace OpenSim.Region.Framework.Scenes } #region admin stuff - - public virtual bool PresenceChildStatus(UUID avatarID) - { - return false; - } public abstract void OtherRegionUp(GridRegion otherRegion); diff --git a/OpenSim/Region/Framework/Scenes/ScenePresence.cs b/OpenSim/Region/Framework/Scenes/ScenePresence.cs index cebf51b..fa731a7 100644 --- a/OpenSim/Region/Framework/Scenes/ScenePresence.cs +++ b/OpenSim/Region/Framework/Scenes/ScenePresence.cs @@ -612,19 +612,7 @@ namespace OpenSim.Region.Framework.Scenes } } - /// - /// 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 - /// - private bool m_isChildAgent = true; - - public bool IsChildAgent - { - get { return m_isChildAgent; } - set { m_isChildAgent = value; } - } + public bool IsChildAgent { get; set; } public uint ParentID { @@ -741,6 +729,7 @@ namespace OpenSim.Region.Framework.Scenes { AttachmentsSyncLock = new Object(); + IsChildAgent = true; m_sendCourseLocationsMethod = SendCoarseLocationsDefault; Animator = new ScenePresenceAnimator(this); PresenceType = type; diff --git a/OpenSim/Region/OptionalModules/Agent/UDP/Linden/LindenUDPInfoModule.cs b/OpenSim/Region/OptionalModules/Agent/UDP/Linden/LindenUDPInfoModule.cs index 8f8124e..c754019 100644 --- a/OpenSim/Region/OptionalModules/Agent/UDP/Linden/LindenUDPInfoModule.cs +++ b/OpenSim/Region/OptionalModules/Agent/UDP/Linden/LindenUDPInfoModule.cs @@ -219,7 +219,7 @@ namespace OpenSim.Region.CoreModules.UDP.Linden { if (client is LLClientView) { - bool isChild = scene.PresenceChildStatus(client.AgentId); + bool isChild = client.SceneAgent.IsChildAgent; if (isChild && !showChildren) return; @@ -308,7 +308,7 @@ namespace OpenSim.Region.CoreModules.UDP.Linden { if (client is IStatsCollector) { - bool isChild = scene.PresenceChildStatus(client.AgentId); + bool isChild = client.SceneAgent.IsChildAgent; if (isChild && !showChildren) return; @@ -404,7 +404,7 @@ namespace OpenSim.Region.CoreModules.UDP.Linden firstClient = false; } - bool isChild = scene.PresenceChildStatus(client.AgentId); + bool isChild = client.SceneAgent.IsChildAgent; if (isChild && !showChildren) return; -- cgit v1.1