From 2c685bff1493451849580cfb6bf44b88322bf0a4 Mon Sep 17 00:00:00 2001 From: diva Date: Mon, 9 Feb 2009 22:27:27 +0000 Subject: 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. --- .../Region/Framework/Scenes/SceneObjectGroup.cs | 29 +++++++++++++++++++++- 1 file changed, 28 insertions(+), 1 deletion(-) (limited to 'OpenSim/Region/Framework/Scenes/SceneObjectGroup.cs') 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; using System.Collections.Generic; using System.Drawing; using System.IO; +using System.Threading; using System.Xml; using System.Xml.Serialization; using OpenMetaverse; @@ -84,7 +85,7 @@ namespace OpenSim.Region.Framework.Scenes /// A scene object group is conceptually an object in the scene. The object is constituted of SceneObjectParts /// (often known as prims), one of which is considered the root part. /// - public partial class SceneObjectGroup : EntityBase + public partial class SceneObjectGroup : EntityBase, ISceneObject { // private PrimCountTaintedDelegate handlerPrimCountTainted = null; @@ -3030,5 +3031,31 @@ namespace OpenSim.Region.Framework.Scenes part.SetAttachmentPoint(point); } } + + #region ISceneObject + + public virtual ISceneObject CloneForNewScene() + { + SceneObjectGroup sog = Copy(this.OwnerID, this.GroupID, false); + return sog; + } + + public virtual string ExtraToXmlString() + { + return "" + GetFromAssetID().ToString() + ""; + } + + public virtual void ExtraFromXmlString(string xmlstr) + { + string id = xmlstr.Substring(xmlstr.IndexOf("")); + id = xmlstr.Replace("", ""); + id = id.Replace("", ""); + + UUID uuid = UUID.Zero; + UUID.TryParse(id, out uuid); + + SetFromAssetID(uuid); + } + #endregion } } -- cgit v1.1