diff --git a/OpenSim/Region/Environment/Scenes/AllNewSceneObjectGroup2.cs b/OpenSim/Region/Environment/Scenes/AllNewSceneObjectGroup2.cs
index b0fe12a85a..9d9c97bd87 100644
--- a/OpenSim/Region/Environment/Scenes/AllNewSceneObjectGroup2.cs
+++ b/OpenSim/Region/Environment/Scenes/AllNewSceneObjectGroup2.cs
@@ -44,6 +44,14 @@ namespace OpenSim.Region.Environment.Scenes
}
}
+ ///
+ ///
+ ///
+ public AllNewSceneObjectGroup2()
+ {
+
+ }
+
///
///
///
@@ -62,7 +70,70 @@ namespace OpenSim.Region.Environment.Scenes
///
///
///
- public void FlagGroupForFullUpdate()
+ ///
+ public new AllNewSceneObjectGroup2 Copy()
+ {
+ AllNewSceneObjectGroup2 dupe = (AllNewSceneObjectGroup2) this.MemberwiseClone();
+ dupe.Pos = new LLVector3(Pos.X, Pos.Y, Pos.Z);
+ dupe.CopyRootPart(this.m_rootPart);
+
+ foreach (AllNewSceneObjectPart2 part in this.m_parts.Values)
+ {
+ if (part.UUID != this.m_rootPart.UUID)
+ {
+ dupe.CopyPart(part);
+ }
+ }
+ return dupe;
+ }
+
+ public void CopyRootPart(AllNewSceneObjectPart2 part)
+ {
+
+ }
+
+ public void CopyPart(AllNewSceneObjectPart2 part)
+ {
+
+ }
+
+ ///
+ ///
+ ///
+ public override void Update()
+ {
+ foreach (AllNewSceneObjectPart2 part in this.m_parts.Values)
+ {
+ part.SendScheduledUpdates();
+ }
+ }
+
+ ///
+ ///
+ ///
+ public void ScheduleGroupForFullUpdate()
+ {
+ foreach (AllNewSceneObjectPart2 part in this.m_parts.Values)
+ {
+ part.ScheduleFullUpdate();
+ }
+ }
+
+ ///
+ ///
+ ///
+ public void ScheduleGroupForTerseUpdate()
+ {
+ foreach (AllNewSceneObjectPart2 part in this.m_parts.Values)
+ {
+ part.ScheduleTerseUpdate();
+ }
+ }
+
+ ///
+ ///
+ ///
+ public void ScheduleGroupFullUpdate()
{
foreach (AllNewSceneObjectPart2 part in this.m_parts.Values)
{
@@ -73,7 +144,7 @@ namespace OpenSim.Region.Environment.Scenes
///
///
///
- public void FlagGroupForTerseUpdate()
+ public void SendGroupTerseUpdate()
{
foreach (AllNewSceneObjectPart2 part in this.m_parts.Values)
{
@@ -177,6 +248,7 @@ namespace OpenSim.Region.Environment.Scenes
public void GrapMovement(LLVector3 offset, LLVector3 pos, IClientAPI remoteClient)
{
this.Pos = pos;
+ this.m_rootPart.SendTerseUpdateToALLClients();
}
///
diff --git a/OpenSim/Region/Environment/Scenes/AllNewSceneObjectPart2.cs b/OpenSim/Region/Environment/Scenes/AllNewSceneObjectPart2.cs
index b0303a34f6..813f2e1332 100644
--- a/OpenSim/Region/Environment/Scenes/AllNewSceneObjectPart2.cs
+++ b/OpenSim/Region/Environment/Scenes/AllNewSceneObjectPart2.cs
@@ -252,6 +252,14 @@ namespace OpenSim.Region.Environment.Scenes
#endregion
#region Constructors
+ ///
+ ///
+ ///
+ public AllNewSceneObjectPart2()
+ {
+
+ }
+
///
/// Create a completely new SceneObjectPart (prim)
///
@@ -315,6 +323,29 @@ namespace OpenSim.Region.Environment.Scenes
}
#endregion
+ #region Copying
+ ///
+ ///
+ ///
+ ///
+ public AllNewSceneObjectPart2 Copy(Scene scene)
+ {
+ AllNewSceneObjectPart2 dupe =(AllNewSceneObjectPart2) this.MemberwiseClone();
+ dupe.m_Shape = m_Shape.Copy();
+ dupe.m_regionHandle = m_regionHandle;
+ uint newLocalID = scene.PrimIDAllocate();
+ dupe.UUID = LLUUID.Random();
+ dupe.LocalID = newLocalID;
+ dupe.OffsetPosition = new LLVector3(OffsetPosition.X, OffsetPosition.Y, OffsetPosition.Z);
+ dupe.RotationOffset = new LLQuaternion(RotationOffset.X, RotationOffset.Y, RotationOffset.Z, RotationOffset.W);
+ dupe.Velocity = new LLVector3(0, 0, 0);
+ dupe.Acceleration = new LLVector3(0, 0, 0);
+ dupe.AngularVelocity = new LLVector3(0, 0, 0);
+ dupe.ObjectFlags = this.ObjectFlags;
+ return dupe;
+ }
+ #endregion
+
#region Update Scheduling
///
///
@@ -327,7 +358,7 @@ namespace OpenSim.Region.Environment.Scenes
///
///
///
- private void ScheduleFullUpdate()
+ public void ScheduleFullUpdate()
{
m_updateFlag = 2;
}
@@ -335,7 +366,7 @@ namespace OpenSim.Region.Environment.Scenes
///
///
///
- private void ScheduleTerseUpdate()
+ public void ScheduleTerseUpdate()
{
if (m_updateFlag < 1)
{
diff --git a/OpenSim/Region/Environment/Scenes/Scene.cs b/OpenSim/Region/Environment/Scenes/Scene.cs
index f9fbe875fd..56e5a0a7f0 100644
--- a/OpenSim/Region/Environment/Scenes/Scene.cs
+++ b/OpenSim/Region/Environment/Scenes/Scene.cs
@@ -582,7 +582,6 @@ namespace OpenSim.Region.Environment.Scenes
client.OnObjectName += PrimName;
client.OnLinkObjects += LinkObjects;
client.OnObjectDuplicate += DuplicateObject;
- client.OnModifyTerrain += ModifyTerrain;
client.OnParcelPropertiesRequest += new ParcelPropertiesRequest(m_LandManager.handleParcelPropertiesRequest);
client.OnParcelDivideRequest += new ParcelDivideRequest(m_LandManager.handleParcelDivideRequest);