diff options
-rw-r--r-- | OpenSim/Region/Framework/Scenes/Scene.cs | 17 | ||||
-rw-r--r-- | OpenSim/Region/Framework/Scenes/SceneGraph.cs | 2 | ||||
-rw-r--r-- | OpenSim/Region/Framework/Scenes/Tests/ScenePresenceAgentTests.cs | 23 |
3 files changed, 41 insertions, 1 deletions
diff --git a/OpenSim/Region/Framework/Scenes/Scene.cs b/OpenSim/Region/Framework/Scenes/Scene.cs index 6d8ee7b..36452de 100644 --- a/OpenSim/Region/Framework/Scenes/Scene.cs +++ b/OpenSim/Region/Framework/Scenes/Scene.cs | |||
@@ -4470,6 +4470,23 @@ namespace OpenSim.Region.Framework.Scenes | |||
4470 | } | 4470 | } |
4471 | 4471 | ||
4472 | /// <summary> | 4472 | /// <summary> |
4473 | /// Gets all the scene presences in this scene. | ||
4474 | /// </summary> | ||
4475 | /// <remarks> | ||
4476 | /// This method will return both root and child scene presences. | ||
4477 | /// | ||
4478 | /// Consider using ForEachScenePresence() or ForEachRootScenePresence() if possible since these will not | ||
4479 | /// involving creating a new List object. | ||
4480 | /// </remarks> | ||
4481 | /// <returns> | ||
4482 | /// A list of the scene presences. Adding or removing from the list will not affect the presences in the scene. | ||
4483 | /// </returns> | ||
4484 | public List<ScenePresence> GetScenePresences() | ||
4485 | { | ||
4486 | return new List<ScenePresence>(m_sceneGraph.GetScenePresences()); | ||
4487 | } | ||
4488 | |||
4489 | /// <summary> | ||
4473 | /// Performs action on all avatars in the scene (root scene presences) | 4490 | /// Performs action on all avatars in the scene (root scene presences) |
4474 | /// Avatars may be an NPC or a 'real' client. | 4491 | /// Avatars may be an NPC or a 'real' client. |
4475 | /// </summary> | 4492 | /// </summary> |
diff --git a/OpenSim/Region/Framework/Scenes/SceneGraph.cs b/OpenSim/Region/Framework/Scenes/SceneGraph.cs index 2be5364..ba68dfa 100644 --- a/OpenSim/Region/Framework/Scenes/SceneGraph.cs +++ b/OpenSim/Region/Framework/Scenes/SceneGraph.cs | |||
@@ -768,7 +768,7 @@ namespace OpenSim.Region.Framework.Scenes | |||
768 | /// pass a delegate to ForEachScenePresence. | 768 | /// pass a delegate to ForEachScenePresence. |
769 | /// </summary> | 769 | /// </summary> |
770 | /// <returns></returns> | 770 | /// <returns></returns> |
771 | private List<ScenePresence> GetScenePresences() | 771 | protected internal List<ScenePresence> GetScenePresences() |
772 | { | 772 | { |
773 | return m_scenePresenceArray; | 773 | return m_scenePresenceArray; |
774 | } | 774 | } |
diff --git a/OpenSim/Region/Framework/Scenes/Tests/ScenePresenceAgentTests.cs b/OpenSim/Region/Framework/Scenes/Tests/ScenePresenceAgentTests.cs index 44c1396..5758869 100644 --- a/OpenSim/Region/Framework/Scenes/Tests/ScenePresenceAgentTests.cs +++ b/OpenSim/Region/Framework/Scenes/Tests/ScenePresenceAgentTests.cs | |||
@@ -107,6 +107,29 @@ namespace OpenSim.Region.Framework.Scenes.Tests | |||
107 | Assert.That(sp, Is.Not.Null); | 107 | Assert.That(sp, Is.Not.Null); |
108 | Assert.That(sp.IsChildAgent, Is.False); | 108 | Assert.That(sp.IsChildAgent, Is.False); |
109 | Assert.That(sp.UUID, Is.EqualTo(spUuid)); | 109 | Assert.That(sp.UUID, Is.EqualTo(spUuid)); |
110 | |||
111 | Assert.That(scene.GetScenePresences().Count, Is.EqualTo(1)); | ||
112 | } | ||
113 | |||
114 | [Test] | ||
115 | public void TestCreateDuplicateRootScenePresence() | ||
116 | { | ||
117 | TestHelpers.InMethod(); | ||
118 | // TestHelpers.EnableLogging(); | ||
119 | |||
120 | UUID spUuid = TestHelpers.ParseTail(0x1); | ||
121 | |||
122 | TestScene scene = new SceneHelpers().SetupScene(); | ||
123 | SceneHelpers.AddScenePresence(scene, spUuid); | ||
124 | SceneHelpers.AddScenePresence(scene, spUuid); | ||
125 | |||
126 | Assert.That(scene.AuthenticateHandler.GetAgentCircuitData(spUuid), Is.Not.Null); | ||
127 | Assert.That(scene.AuthenticateHandler.GetAgentCircuits().Count, Is.EqualTo(1)); | ||
128 | |||
129 | ScenePresence sp = scene.GetScenePresence(spUuid); | ||
130 | Assert.That(sp, Is.Not.Null); | ||
131 | Assert.That(sp.IsChildAgent, Is.False); | ||
132 | Assert.That(sp.UUID, Is.EqualTo(spUuid)); | ||
110 | } | 133 | } |
111 | 134 | ||
112 | [Test] | 135 | [Test] |