diff options
Diffstat (limited to 'OpenSim/Region/Environment/Scenes/SceneObjectGroup.cs')
-rw-r--r-- | OpenSim/Region/Environment/Scenes/SceneObjectGroup.cs | 12 |
1 files changed, 8 insertions, 4 deletions
diff --git a/OpenSim/Region/Environment/Scenes/SceneObjectGroup.cs b/OpenSim/Region/Environment/Scenes/SceneObjectGroup.cs index 2e0b916..0b7f2a4 100644 --- a/OpenSim/Region/Environment/Scenes/SceneObjectGroup.cs +++ b/OpenSim/Region/Environment/Scenes/SceneObjectGroup.cs | |||
@@ -609,15 +609,19 @@ namespace OpenSim.Region.Environment.Scenes | |||
609 | SetPartAsNonRoot(newPart); | 609 | SetPartAsNonRoot(newPart); |
610 | } | 610 | } |
611 | 611 | ||
612 | 612 | /// <summary> | |
613 | public void GenerateNewIDs() | 613 | /// Reset the LLUUIDs for all the prims that make up this group. |
614 | /// | ||
615 | /// This is called by methods which want to add a new group to an existing scene, in order | ||
616 | /// to ensure that there are no clashes with groups already present. | ||
617 | /// </summary> | ||
618 | public void ResetIDs() | ||
614 | { | 619 | { |
615 | List<SceneObjectPart> partsList = new List<SceneObjectPart>(m_parts.Values); | 620 | List<SceneObjectPart> partsList = new List<SceneObjectPart>(m_parts.Values); |
616 | m_parts.Clear(); | 621 | m_parts.Clear(); |
617 | foreach (SceneObjectPart part in partsList) | 622 | foreach (SceneObjectPart part in partsList) |
618 | { | 623 | { |
619 | part.UUID = LLUUID.Random(); | 624 | part.ResetIDs(m_parts.Count); |
620 | part.LinkNum = m_parts.Count; | ||
621 | m_parts.Add(part.UUID, part); | 625 | m_parts.Add(part.UUID, part); |
622 | } | 626 | } |
623 | } | 627 | } |