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