diff options
author | Melanie | 2010-09-21 04:02:50 +0100 |
---|---|---|
committer | Melanie | 2010-09-21 04:02:50 +0100 |
commit | 2b8c99c2fbbd377cb270087531385bc753932555 (patch) | |
tree | e0509ae1a72ae1155032241965e4a77c89e5c6f8 /OpenSim/Region/Framework | |
parent | Fix a typo (diff) | |
parent | Merge branch 'master' of ssh://opensimulator.org/var/git/opensim (diff) | |
download | opensim-SC-2b8c99c2fbbd377cb270087531385bc753932555.zip opensim-SC-2b8c99c2fbbd377cb270087531385bc753932555.tar.gz opensim-SC-2b8c99c2fbbd377cb270087531385bc753932555.tar.bz2 opensim-SC-2b8c99c2fbbd377cb270087531385bc753932555.tar.xz |
Merge branch 'master' of melanie@opensimulator.org:/var/git/opensim
Diffstat (limited to 'OpenSim/Region/Framework')
-rw-r--r-- | OpenSim/Region/Framework/Scenes/SceneObjectGroup.cs | 8 | ||||
-rw-r--r-- | OpenSim/Region/Framework/Scenes/Tests/SceneObjectBasicTests.cs | 35 |
2 files changed, 41 insertions, 2 deletions
diff --git a/OpenSim/Region/Framework/Scenes/SceneObjectGroup.cs b/OpenSim/Region/Framework/Scenes/SceneObjectGroup.cs index 994b9e3..b655f39 100644 --- a/OpenSim/Region/Framework/Scenes/SceneObjectGroup.cs +++ b/OpenSim/Region/Framework/Scenes/SceneObjectGroup.cs | |||
@@ -330,8 +330,12 @@ namespace OpenSim.Region.Framework.Scenes | |||
330 | get { return m_rootPart.UUID; } | 330 | get { return m_rootPart.UUID; } |
331 | set | 331 | set |
332 | { | 332 | { |
333 | m_rootPart.UUID = value; | 333 | lock (m_parts.SyncRoot) |
334 | m_parts.AddOrReplace(value, m_rootPart); | 334 | { |
335 | m_parts.Remove(m_rootPart.UUID); | ||
336 | m_rootPart.UUID = value; | ||
337 | m_parts.Add(value, m_rootPart); | ||
338 | } | ||
335 | } | 339 | } |
336 | } | 340 | } |
337 | 341 | ||
diff --git a/OpenSim/Region/Framework/Scenes/Tests/SceneObjectBasicTests.cs b/OpenSim/Region/Framework/Scenes/Tests/SceneObjectBasicTests.cs index 54b3260..e6ff0c0 100644 --- a/OpenSim/Region/Framework/Scenes/Tests/SceneObjectBasicTests.cs +++ b/OpenSim/Region/Framework/Scenes/Tests/SceneObjectBasicTests.cs | |||
@@ -189,5 +189,40 @@ namespace OpenSim.Region.Framework.Scenes.Tests | |||
189 | // SceneObjectPart retrievedPart = scene.GetSceneObjectPart(part.LocalId); | 189 | // SceneObjectPart retrievedPart = scene.GetSceneObjectPart(part.LocalId); |
190 | // Assert.That(retrievedPart, Is.Null); | 190 | // Assert.That(retrievedPart, Is.Null); |
191 | //} | 191 | //} |
192 | |||
193 | /// <summary> | ||
194 | /// Changing a scene object uuid changes the root part uuid. This is a valid operation if the object is not | ||
195 | /// in a scene and is useful if one wants to supply a UUID directly rather than use the one generated by | ||
196 | /// OpenSim. | ||
197 | /// </summary> | ||
198 | [Test] | ||
199 | public void TestChangeSceneObjectUuid() | ||
200 | { | ||
201 | string rootPartName = "rootpart"; | ||
202 | UUID rootPartUuid = new UUID("00000000-0000-0000-0000-000000000001"); | ||
203 | string childPartName = "childPart"; | ||
204 | UUID childPartUuid = new UUID("00000000-0000-0000-0001-000000000000"); | ||
205 | |||
206 | SceneObjectPart rootPart | ||
207 | = new SceneObjectPart(UUID.Zero, PrimitiveBaseShape.Default, Vector3.Zero, Quaternion.Identity, Vector3.Zero) | ||
208 | { Name = rootPartName, UUID = rootPartUuid }; | ||
209 | SceneObjectPart linkPart | ||
210 | = new SceneObjectPart(UUID.Zero, PrimitiveBaseShape.Default, Vector3.Zero, Quaternion.Identity, Vector3.Zero) | ||
211 | { Name = childPartName, UUID = childPartUuid }; | ||
212 | |||
213 | SceneObjectGroup sog = new SceneObjectGroup(rootPart); | ||
214 | sog.AddPart(linkPart); | ||
215 | |||
216 | Assert.That(sog.UUID, Is.EqualTo(rootPartUuid)); | ||
217 | Assert.That(sog.RootPart.UUID, Is.EqualTo(rootPartUuid)); | ||
218 | Assert.That(sog.Parts.Length, Is.EqualTo(2)); | ||
219 | |||
220 | UUID newRootPartUuid = new UUID("00000000-0000-0000-0000-000000000002"); | ||
221 | sog.UUID = newRootPartUuid; | ||
222 | |||
223 | Assert.That(sog.UUID, Is.EqualTo(newRootPartUuid)); | ||
224 | Assert.That(sog.RootPart.UUID, Is.EqualTo(newRootPartUuid)); | ||
225 | Assert.That(sog.Parts.Length, Is.EqualTo(2)); | ||
226 | } | ||
192 | } | 227 | } |
193 | } | 228 | } |