diff --git a/OpenSim/Region/Environment/Scenes/Scene.cs b/OpenSim/Region/Environment/Scenes/Scene.cs
index 417f8178d4..c8714aea6e 100644
--- a/OpenSim/Region/Environment/Scenes/Scene.cs
+++ b/OpenSim/Region/Environment/Scenes/Scene.cs
@@ -355,7 +355,7 @@ namespace OpenSim.Region.Environment.Scenes
///
///
///
- private void CreateTerrainTexture()
+ public void CreateTerrainTexture()
{
//create a texture asset of the terrain
byte[] data = this.Terrain.exportJpegImage("defaultstripe.png");
@@ -445,6 +445,15 @@ namespace OpenSim.Region.Environment.Scenes
///
///
public override void AddNewClient(IClientAPI client, bool child)
+ {
+ SubscribeToClientEvents(client);
+ this.estateManager.sendRegionHandshake(client);
+ CreateAndAddScenePresence(client);
+ this.parcelManager.sendParcelOverlay(client);
+
+ }
+
+ protected override void SubscribeToClientEvents(IClientAPI client)
{
client.OnRegionHandShakeReply += this.SendLayerData;
//remoteClient.OnRequestWearables += new GenericCall(this.GetInitialPrims);
@@ -475,14 +484,6 @@ namespace OpenSim.Region.Environment.Scenes
client.OnParcelJoinRequest += new ParcelJoinRequest(parcelManager.handleParcelJoinRequest);
client.OnParcelPropertiesUpdateRequest += new ParcelPropertiesUpdateRequest(parcelManager.handleParcelPropertiesUpdateRequest);
client.OnEstateOwnerMessage += new EstateOwnerMessageRequest(estateManager.handleEstateOwnerMessage);
-
-
- this.estateManager.sendRegionHandshake(client);
- CreateAndAddScenePresence(client);
-
- this.parcelManager.sendParcelOverlay(client);
-
- return;
}
protected void CreateAndAddScenePresence(IClientAPI client)
@@ -772,7 +773,6 @@ namespace OpenSim.Region.Environment.Scenes
remoteClient.SendRegionTeleport(regionHandle, 13, reg.ExternalEndPoint, 4, (1 << 4));
}
- //remoteClient.SendTeleportCancel();
}
}
diff --git a/OpenSim/Region/Environment/Scenes/SceneObject.cs b/OpenSim/Region/Environment/Scenes/SceneObject.cs
index c586e9b1ef..e979186557 100644
--- a/OpenSim/Region/Environment/Scenes/SceneObject.cs
+++ b/OpenSim/Region/Environment/Scenes/SceneObject.cs
@@ -115,13 +115,12 @@ namespace OpenSim.Region.Environment.Scenes
{
SceneObject dupe = new SceneObject();
+ dupe.m_world = this.m_world;
+ dupe.m_regionHandle = this.m_regionHandle;
Primitive newRoot = this.rootPrimitive.Copy((EntityBase)dupe, dupe);
-
- foreach (EntityBase child in this.children)
- {
- EntityBase newChild = child.Copy();
- dupe.children.Add(newChild);
- }
+ dupe.rootPrimitive = newRoot;
+ dupe.rootPrimitive.Pos =( this.Pos + new LLVector3(0,0,1));
+ dupe.Rotation = this.Rotation;
return dupe;
}