diff options
Moved prim crossing out of OGS1 and into RESTComms and LocalInterregionComms. This breaks interregion comms with older versions in what concerns prim crossing. In the process of moving the comms, a few things seem to be working better, namely this may address mantis #3011, mantis #1698. Hopefully, this doesn't break anything else. But I'm still seeing weirdnesses with attchments jumping out of place after a cross/TP.
The two most notable changes in the crossing process were:
* Object gets passed in only one message, not two as done before.
* Local object crossings do not get serialized, as done before.
Diffstat (limited to 'OpenSim/Region/Framework/Scenes/SceneObjectGroup.cs')
-rw-r--r-- | OpenSim/Region/Framework/Scenes/SceneObjectGroup.cs | 29 |
1 files changed, 28 insertions, 1 deletions
diff --git a/OpenSim/Region/Framework/Scenes/SceneObjectGroup.cs b/OpenSim/Region/Framework/Scenes/SceneObjectGroup.cs index d3b9626..e732b42 100644 --- a/OpenSim/Region/Framework/Scenes/SceneObjectGroup.cs +++ b/OpenSim/Region/Framework/Scenes/SceneObjectGroup.cs | |||
@@ -29,6 +29,7 @@ using System; | |||
29 | using System.Collections.Generic; | 29 | using System.Collections.Generic; |
30 | using System.Drawing; | 30 | using System.Drawing; |
31 | using System.IO; | 31 | using System.IO; |
32 | using System.Threading; | ||
32 | using System.Xml; | 33 | using System.Xml; |
33 | using System.Xml.Serialization; | 34 | using System.Xml.Serialization; |
34 | using OpenMetaverse; | 35 | using OpenMetaverse; |
@@ -84,7 +85,7 @@ namespace OpenSim.Region.Framework.Scenes | |||
84 | /// A scene object group is conceptually an object in the scene. The object is constituted of SceneObjectParts | 85 | /// A scene object group is conceptually an object in the scene. The object is constituted of SceneObjectParts |
85 | /// (often known as prims), one of which is considered the root part. | 86 | /// (often known as prims), one of which is considered the root part. |
86 | /// </summary> | 87 | /// </summary> |
87 | public partial class SceneObjectGroup : EntityBase | 88 | public partial class SceneObjectGroup : EntityBase, ISceneObject |
88 | { | 89 | { |
89 | // private PrimCountTaintedDelegate handlerPrimCountTainted = null; | 90 | // private PrimCountTaintedDelegate handlerPrimCountTainted = null; |
90 | 91 | ||
@@ -3030,5 +3031,31 @@ namespace OpenSim.Region.Framework.Scenes | |||
3030 | part.SetAttachmentPoint(point); | 3031 | part.SetAttachmentPoint(point); |
3031 | } | 3032 | } |
3032 | } | 3033 | } |
3034 | |||
3035 | #region ISceneObject | ||
3036 | |||
3037 | public virtual ISceneObject CloneForNewScene() | ||
3038 | { | ||
3039 | SceneObjectGroup sog = Copy(this.OwnerID, this.GroupID, false); | ||
3040 | return sog; | ||
3041 | } | ||
3042 | |||
3043 | public virtual string ExtraToXmlString() | ||
3044 | { | ||
3045 | return "<ExtraFromAssetID>" + GetFromAssetID().ToString() + "</ExtraFromAssetID>"; | ||
3046 | } | ||
3047 | |||
3048 | public virtual void ExtraFromXmlString(string xmlstr) | ||
3049 | { | ||
3050 | string id = xmlstr.Substring(xmlstr.IndexOf("<ExtraFromAssetID>")); | ||
3051 | id = xmlstr.Replace("<ExtraFromAssetID>", ""); | ||
3052 | id = id.Replace("</ExtraFromAssetID>", ""); | ||
3053 | |||
3054 | UUID uuid = UUID.Zero; | ||
3055 | UUID.TryParse(id, out uuid); | ||
3056 | |||
3057 | SetFromAssetID(uuid); | ||
3058 | } | ||
3059 | #endregion | ||
3033 | } | 3060 | } |
3034 | } | 3061 | } |