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.
This commit is contained in:
diva
2009-02-09 22:27:27 +00:00
parent 29f54db90a
commit 2c685bff14
10 changed files with 546 additions and 111 deletions

View File

@@ -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.
/// </summary>
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 "<ExtraFromAssetID>" + GetFromAssetID().ToString() + "</ExtraFromAssetID>";
}
public virtual void ExtraFromXmlString(string xmlstr)
{
string id = xmlstr.Substring(xmlstr.IndexOf("<ExtraFromAssetID>"));
id = xmlstr.Replace("<ExtraFromAssetID>", "");
id = id.Replace("</ExtraFromAssetID>", "");
UUID uuid = UUID.Zero;
UUID.TryParse(id, out uuid);
SetFromAssetID(uuid);
}
#endregion
}
}