From 7335e5710bd0c22c9e5bd9fa0b576d0985d2fba9 Mon Sep 17 00:00:00 2001 From: lbsa71 Date: Thu, 20 Sep 2007 13:04:51 +0000 Subject: Rev 1971 : The Lbsa71 vintage commit * Refactored to prepare for some serious restructuring --- OpenSim/Region/Environment/EstateManager.cs | 11 ++-- OpenSim/Region/Environment/LandManagement/Land.cs | 2 +- .../Environment/LandManagement/LandManager.cs | 2 +- OpenSim/Region/Environment/Modules/ChatModule.cs | 4 +- .../Environment/Scenes/Scene.PacketHandlers.cs | 11 ++-- OpenSim/Region/Environment/Scenes/Scene.cs | 45 +++++++------- .../Region/Environment/Scenes/SceneObjectGroup.cs | 6 +- .../Region/Environment/Scenes/SceneObjectPart.cs | 8 +-- OpenSim/Region/Environment/Scenes/ScenePresence.cs | 69 +++++++++++----------- 9 files changed, 77 insertions(+), 81 deletions(-) (limited to 'OpenSim/Region/Environment') diff --git a/OpenSim/Region/Environment/EstateManager.cs b/OpenSim/Region/Environment/EstateManager.cs index 30d206f..ac710ad 100644 --- a/OpenSim/Region/Environment/EstateManager.cs +++ b/OpenSim/Region/Environment/EstateManager.cs @@ -34,7 +34,6 @@ using OpenSim.Framework.Console; using OpenSim.Framework.Interfaces; using OpenSim.Framework.Types; using OpenSim.Region.Environment.Scenes; -using Avatar = OpenSim.Region.Environment.Scenes.ScenePresence; namespace OpenSim.Region.Environment @@ -332,7 +331,7 @@ namespace OpenSim.Region.Environment public void sendRegionInfoPacketToAll() { - List avatars = m_scene.RequestAvatarList(); + List avatars = m_scene.GetAvatars(); for (int i = 0; i < avatars.Count; i++) { @@ -342,12 +341,10 @@ namespace OpenSim.Region.Environment public void sendRegionHandshakeToAll() { - List avatars = m_scene.RequestAvatarList(); - - for (int i = 0; i < avatars.Count; i++) + m_scene.ForEachScenePresence( delegate( ScenePresence scenePresence ) { - sendRegionHandshake(avatars[i].ControllingClient); - } + sendRegionHandshake(scenePresence.ControllingClient); + }); } public void sendRegionInfoPacket(IClientAPI remote_client) diff --git a/OpenSim/Region/Environment/LandManagement/Land.cs b/OpenSim/Region/Environment/LandManagement/Land.cs index 4d36650..6c177cd 100644 --- a/OpenSim/Region/Environment/LandManagement/Land.cs +++ b/OpenSim/Region/Environment/LandManagement/Land.cs @@ -195,7 +195,7 @@ namespace OpenSim.Region.Environment.LandManagement public void sendLandUpdateToAvatarsOverMe() { - List avatars = m_scene.RequestAvatarList(); + List avatars = m_scene.GetAvatars(); for (int i = 0; i < avatars.Count; i++) { Land over = diff --git a/OpenSim/Region/Environment/LandManagement/LandManager.cs b/OpenSim/Region/Environment/LandManagement/LandManager.cs index 843c0f5..731ce61 100644 --- a/OpenSim/Region/Environment/LandManagement/LandManager.cs +++ b/OpenSim/Region/Environment/LandManagement/LandManager.cs @@ -537,7 +537,7 @@ namespace OpenSim.Region.Environment.LandManagement public void handleSignificantClientMovement(IClientAPI remote_client) { - ScenePresence clientAvatar = m_scene.RequestAvatar(remote_client.AgentId); + ScenePresence clientAvatar = m_scene.GetScenePresence(remote_client.AgentId); if (clientAvatar != null) { Land over = getLandObject(clientAvatar.AbsolutePosition.X, clientAvatar.AbsolutePosition.Y); diff --git a/OpenSim/Region/Environment/Modules/ChatModule.cs b/OpenSim/Region/Environment/Modules/ChatModule.cs index fb6c5d2..dfbb2bb 100644 --- a/OpenSim/Region/Environment/Modules/ChatModule.cs +++ b/OpenSim/Region/Environment/Modules/ChatModule.cs @@ -137,7 +137,7 @@ namespace OpenSim.Region.Environment.Modules LLUUID fromAgentID) { ScenePresence avatar = null; - avatar = m_scene.RequestAvatar(fromAgentID); + avatar = m_scene.GetScenePresence(fromAgentID); if (avatar != null) { fromPos = avatar.AbsolutePosition; @@ -159,7 +159,7 @@ namespace OpenSim.Region.Environment.Modules int dis = -1000; //err ??? the following code seems to be request a scenePresence when it already has a ref to it - avatar = m_scene.RequestAvatar(presence.ControllingClient.AgentId); + avatar = m_scene.GetScenePresence(presence.ControllingClient.AgentId); if (avatar != null) { dis = (int) avatar.AbsolutePosition.GetDistanceTo(fromPos); diff --git a/OpenSim/Region/Environment/Scenes/Scene.PacketHandlers.cs b/OpenSim/Region/Environment/Scenes/Scene.PacketHandlers.cs index efd682f..c63424a 100644 --- a/OpenSim/Region/Environment/Scenes/Scene.PacketHandlers.cs +++ b/OpenSim/Region/Environment/Scenes/Scene.PacketHandlers.cs @@ -136,7 +136,7 @@ namespace OpenSim.Region.Environment.Scenes Entities.Add(copy.UUID, copy); copy.ScheduleGroupForFullUpdate(); - /* List avatars = this.RequestAvatarList(); + /* List avatars = this.GetScenePresences(); for (int i = 0; i < avatars.Count; i++) { // copy.SendAllChildPrimsToClient(avatars[i].ControllingClient); @@ -506,11 +506,10 @@ namespace OpenSim.Region.Environment.Scenes public void StartAnimation(IClientAPI client, LLUUID animID, int seq) { - List avatars = RequestAvatarList(); - for (int i = 0; i < avatars.Count; i++) - { - avatars[i].ControllingClient.SendAnimation(animID, seq, client.AgentId); - } + ForEachScenePresence(delegate(ScenePresence presence) + { + presence.ControllingClient.SendAnimation(animID, seq, client.AgentId); + }); } public virtual void ProcessObjectGrab(uint localID, LLVector3 offsetPos, IClientAPI remoteClient) diff --git a/OpenSim/Region/Environment/Scenes/Scene.cs b/OpenSim/Region/Environment/Scenes/Scene.cs index a542ab0..bdb8957 100644 --- a/OpenSim/Region/Environment/Scenes/Scene.cs +++ b/OpenSim/Region/Environment/Scenes/Scene.cs @@ -346,15 +346,12 @@ namespace OpenSim.Region.Environment.Scenes m_timeUpdateCount++; if (m_timeUpdateCount > 600) { - List Avatars = RequestAvatarList(); - foreach (ScenePresence avatar in Avatars) + List avatars = GetAvatars(); + foreach (ScenePresence avatar in avatars) { - if (!avatar.childAgent) - { - //Console.WriteLine("sending time update " + timePhase + " from region " + m_regionHandle + " to avatar " + avatar.Firstname); - avatar.ControllingClient.SendViewerTime(m_timePhase); - } + avatar.ControllingClient.SendViewerTime(m_timePhase); } + m_timeUpdateCount = 0; m_timePhase++; if (m_timePhase > 94) @@ -831,7 +828,7 @@ namespace OpenSim.Region.Environment.Scenes { m_eventManager.TriggerOnRemovePresence(agentID); - ScenePresence avatar = RequestAvatar(agentID); + ScenePresence avatar = GetScenePresence(agentID); ForEachScenePresence( delegate(ScenePresence presence) @@ -877,14 +874,19 @@ namespace OpenSim.Region.Environment.Scenes /// Request a List of all Avatars in this World /// /// - public List RequestAvatarList() + public List GetScenePresences() { - List result = new List(); + List result = new List(Avatars.Values); - foreach (ScenePresence avatar in Avatars.Values) - { - result.Add(avatar); - } + return result; + } + + public List GetAvatars() + { + List result = GetScenePresences(delegate(ScenePresence scenePresence) + { + return !scenePresence.childAgent; + }); return result; } @@ -893,7 +895,7 @@ namespace OpenSim.Region.Environment.Scenes /// Request a filtered list of Avatars in this World /// /// - public List RequestAvatarList(FilterAvatarList filter) + public List GetScenePresences(FilterAvatarList filter) { List result = new List(); @@ -913,7 +915,7 @@ namespace OpenSim.Region.Environment.Scenes /// /// /// - public ScenePresence RequestAvatar(LLUUID avatarID) + public ScenePresence GetScenePresence(LLUUID avatarID) { if (Avatars.ContainsKey(avatarID)) { @@ -954,11 +956,10 @@ namespace OpenSim.Region.Environment.Scenes public void SendKillObject(uint localID) { - List avatars = RequestAvatarList(); - for (int i = 0; i < avatars.Count; i++) - { - avatars[i].ControllingClient.SendKillObject(m_regionHandle, localID); - } + ForEachScenePresence(delegate(ScenePresence presence) + { + presence.ControllingClient.SendKillObject(m_regionHandle, localID); + }); } public void SendAllSceneObjectsToClient(ScenePresence presence) @@ -1419,7 +1420,7 @@ namespace OpenSim.Region.Environment.Scenes public override void Close() { - m_heartbeatTimer.Close(); + m_heartbeatTimer.Close(); base.Close(); } diff --git a/OpenSim/Region/Environment/Scenes/SceneObjectGroup.cs b/OpenSim/Region/Environment/Scenes/SceneObjectGroup.cs index 3182204..08c8d59 100644 --- a/OpenSim/Region/Environment/Scenes/SceneObjectGroup.cs +++ b/OpenSim/Region/Environment/Scenes/SceneObjectGroup.cs @@ -1055,9 +1055,9 @@ namespace OpenSim.Region.Environment.Scenes /// /// /// - public List RequestSceneAvatars() + public List GetScenePresences() { - return m_scene.RequestAvatarList(); + return m_scene.GetScenePresences(); } #region Events @@ -1233,7 +1233,7 @@ namespace OpenSim.Region.Environment.Scenes DetachFromBackup(this); foreach (SceneObjectPart part in m_parts.Values) { - List avatars = RequestSceneAvatars(); + List avatars = GetScenePresences(); for (int i = 0; i < avatars.Count; i++) { avatars[i].ControllingClient.SendKillObject(m_regionHandle, part.LocalID); diff --git a/OpenSim/Region/Environment/Scenes/SceneObjectPart.cs b/OpenSim/Region/Environment/Scenes/SceneObjectPart.cs index deacd18..468def0 100644 --- a/OpenSim/Region/Environment/Scenes/SceneObjectPart.cs +++ b/OpenSim/Region/Environment/Scenes/SceneObjectPart.cs @@ -678,7 +678,7 @@ namespace OpenSim.Region.Environment.Scenes public void AddFullUpdateToAllAvatars() { - List avatars = m_parentGroup.RequestSceneAvatars(); + List avatars = m_parentGroup.GetScenePresences(); for (int i = 0; i < avatars.Count; i++) { avatars[i].AddFullPart(this); @@ -697,7 +697,7 @@ namespace OpenSim.Region.Environment.Scenes /// public void SendFullUpdateToAllClients() { - List avatars = m_parentGroup.RequestSceneAvatars(); + List avatars = m_parentGroup.GetScenePresences(); for (int i = 0; i < avatars.Count; i++) { m_parentGroup.SendPartFullUpdate(avatars[i].ControllingClient, this); @@ -742,7 +742,7 @@ namespace OpenSim.Region.Environment.Scenes /// Terse updates public void AddTerseUpdateToAllAvatars() { - List avatars = m_parentGroup.RequestSceneAvatars(); + List avatars = m_parentGroup.GetScenePresences(); for (int i = 0; i < avatars.Count; i++) { avatars[i].AddTersePart(this); @@ -761,7 +761,7 @@ namespace OpenSim.Region.Environment.Scenes /// public void SendTerseUpdateToAllClients() { - List avatars = m_parentGroup.RequestSceneAvatars(); + List avatars = m_parentGroup.GetScenePresences(); for (int i = 0; i < avatars.Count; i++) { m_parentGroup.SendPartTerseUpdate(avatars[i].ControllingClient, this); diff --git a/OpenSim/Region/Environment/Scenes/ScenePresence.cs b/OpenSim/Region/Environment/Scenes/ScenePresence.cs index 811c962..538e46c 100644 --- a/OpenSim/Region/Environment/Scenes/ScenePresence.cs +++ b/OpenSim/Region/Environment/Scenes/ScenePresence.cs @@ -301,7 +301,7 @@ namespace OpenSim.Region.Environment.Scenes public void Teleport(LLVector3 pos) { AbsolutePosition = pos; - SendTerseUpdateToALLClients(); + SendTerseUpdateToAllClients(); } /// @@ -473,7 +473,7 @@ namespace OpenSim.Region.Environment.Scenes /// check for user movement 'forces' (ie commands to move) if (newForce) { - SendTerseUpdateToALLClients(); + SendTerseUpdateToAllClients(); _updateCount = 0; } @@ -483,7 +483,7 @@ namespace OpenSim.Region.Environment.Scenes _updateCount++; if (_updateCount > 3) { - SendTerseUpdateToALLClients(); + SendTerseUpdateToAllClients(); _updateCount = 0; } } @@ -491,7 +491,7 @@ namespace OpenSim.Region.Environment.Scenes /// check for physics-related movement else if (lastPhysPos.GetDistanceTo(AbsolutePosition) > 0.02) { - SendTerseUpdateToALLClients(); + SendTerseUpdateToAllClients(); _updateCount = 0; lastPhysPos = AbsolutePosition; } @@ -524,27 +524,27 @@ namespace OpenSim.Region.Environment.Scenes /// /// /// - public void SendTerseUpdateToALLClients() + public void SendTerseUpdateToAllClients() { - List avatars = m_scene.RequestAvatarList(); - for (int i = 0; i < avatars.Count; i++) - { - SendTerseUpdateToClient(avatars[i].ControllingClient); - } + m_scene.ForEachScenePresence(delegate(ScenePresence presence) + { + SendTerseUpdateToClient(presence.ControllingClient); + }); } public void SendCoarseLocations() { List CoarseLocations = new List(); - List avatars = m_scene.RequestAvatarList(); + List avatars = m_scene.GetAvatars(); for (int i = 0; i < avatars.Count; i++) { - if (avatars[i] != this && (!avatars[i].childAgent)) + if (avatars[i] != this ) { CoarseLocations.Add(avatars[i].AbsolutePosition); } } + ControllingClient.SendCoarseLocationUpdate(CoarseLocations); } @@ -555,14 +555,13 @@ namespace OpenSim.Region.Environment.Scenes private void NotifyMyCoarseLocationChange() { - List avatars = m_scene.RequestAvatarList(); - for (int i = 0; i < avatars.Count; i++) - { - if (avatars[i] != this) - { - avatars[i].CoarseLocationChange(this); - } - } + m_scene.ForEachScenePresence(delegate(ScenePresence presence) + { + if (presence != this) + { + presence.CoarseLocationChange(this); + } + }); } @@ -576,10 +575,10 @@ namespace OpenSim.Region.Environment.Scenes LocalId, AbsolutePosition, m_textureEntry.ToBytes()); } - public void SendFullUpdateToALLClients() + public void SendFullUpdateToAllClients() { - List avatars = m_scene.RequestAvatarList(); - foreach (ScenePresence avatar in m_scene.RequestAvatarList()) + List avatars = m_scene.GetScenePresences(); + foreach (ScenePresence avatar in avatars) { SendFullUpdateToOtherClient(avatar); if (avatar.LocalId != LocalId) @@ -606,7 +605,7 @@ namespace OpenSim.Region.Environment.Scenes newAvatar = false; } - SendFullUpdateToALLClients(); + SendFullUpdateToAllClients(); SendArrearanceToAllOtherAgents(); } @@ -618,7 +617,7 @@ namespace OpenSim.Region.Environment.Scenes { ControllingClient.SendWearables(Wearables); - //this.SendFullUpdateToALLClients(); + //this.SendFullUpdateToAllClients(); //this.SendArrearanceToAllOtherAgents(); m_scene.SendAllSceneObjectsToClient(this); @@ -640,11 +639,10 @@ namespace OpenSim.Region.Environment.Scenes /// public void SendArrearanceToAllOtherAgents() { - List avatars = m_scene.RequestAvatarList(); - foreach (ScenePresence avatar in m_scene.RequestAvatarList()) - { - SendAppearanceToOtherAgent(avatar); - } + m_scene.ForEachScenePresence(delegate(ScenePresence scenePresence) + { + SendAppearanceToOtherAgent(scenePresence); + }); } /// @@ -666,11 +664,12 @@ namespace OpenSim.Region.Environment.Scenes { current_anim = animID; anim_seq = seq; - List avatars = m_scene.RequestAvatarList(); - for (int i = 0; i < avatars.Count; i++) - { - avatars[i].ControllingClient.SendAnimation(animID, seq, ControllingClient.AgentId); - } + + m_scene.ForEachScenePresence(delegate(ScenePresence scenePresence) + { + scenePresence.ControllingClient.SendAnimation(animID, seq, + ControllingClient.AgentId); + }); } /// -- cgit v1.1