diff --git a/OpenSim/Region/Environment/Scenes/Scene.cs b/OpenSim/Region/Environment/Scenes/Scene.cs index 8ee5856252..4aa3c49290 100644 --- a/OpenSim/Region/Environment/Scenes/Scene.cs +++ b/OpenSim/Region/Environment/Scenes/Scene.cs @@ -1023,5 +1023,23 @@ namespace OpenSim.Region.Environment.Scenes ScriptEngine.InitializeEngine(this); } #endregion + + public LLUUID ConvertLocalIDToFullID(uint localID) + { + bool hasPrim = false; + foreach (EntityBase ent in Entities.Values) + { + if (ent is SceneObjectGroup) + { + hasPrim = ((SceneObjectGroup)ent).HasChildPrim(localID); + if (hasPrim != false) + { + return ((SceneObjectGroup)ent).GetPartsFullID(localID); + } + } + } + + return null; + } } } diff --git a/OpenSim/Region/Environment/Scenes/SceneObjectGroup.cs b/OpenSim/Region/Environment/Scenes/SceneObjectGroup.cs index ad7b906865..4f98199f91 100644 --- a/OpenSim/Region/Environment/Scenes/SceneObjectGroup.cs +++ b/OpenSim/Region/Environment/Scenes/SceneObjectGroup.cs @@ -825,5 +825,15 @@ namespace OpenSim.Region.Environment.Scenes } } } + + public LLUUID GetPartsFullID(uint localID) + { + SceneObjectPart part = this.GetChildPrim(localID); + if (part != null) + { + return part.UUID; + } + return null; + } } } diff --git a/OpenSim/Region/Environment/Scenes/SceneObjectPart.cs b/OpenSim/Region/Environment/Scenes/SceneObjectPart.cs index c1348c7979..09a864e0aa 100644 --- a/OpenSim/Region/Environment/Scenes/SceneObjectPart.cs +++ b/OpenSim/Region/Environment/Scenes/SceneObjectPart.cs @@ -300,7 +300,11 @@ namespace OpenSim.Region.Environment.Scenes dupe.Acceleration = new LLVector3(0, 0, 0); dupe.AngularVelocity = new LLVector3(0, 0, 0); dupe.ObjectFlags = this.ObjectFlags; - //TODO copy extraparams data and anything else not currently copied + + byte[] extraP = new byte[this.Shape.ExtraParams.Length]; + Array.Copy(this.Shape.ExtraParams, extraP, extraP.Length); + dupe.Shape.ExtraParams = extraP; + return dupe; } #endregion diff --git a/bin/OpenSimAssetSet.xml b/bin/OpenSimAssetSet.xml index d81b5b5508..c3f061f08e 100644 --- a/bin/OpenSimAssetSet.xml +++ b/bin/OpenSimAssetSet.xml @@ -6,4 +6,18 @@ +
+ + + + + +
+
+ + + + + +
\ No newline at end of file