aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/OpenSim/Region/Framework/Scenes/Scene.cs
diff options
context:
space:
mode:
Diffstat (limited to 'OpenSim/Region/Framework/Scenes/Scene.cs')
-rw-r--r--OpenSim/Region/Framework/Scenes/Scene.cs35
1 files changed, 33 insertions, 2 deletions
diff --git a/OpenSim/Region/Framework/Scenes/Scene.cs b/OpenSim/Region/Framework/Scenes/Scene.cs
index 669720a..72ece10 100644
--- a/OpenSim/Region/Framework/Scenes/Scene.cs
+++ b/OpenSim/Region/Framework/Scenes/Scene.cs
@@ -2054,9 +2054,39 @@ namespace OpenSim.Region.Framework.Scenes
2054 if (grp.IsDeleted) 2054 if (grp.IsDeleted)
2055 return; 2055 return;
2056 2056
2057 if (grp.RootPart.DIE_AT_EDGE)
2058 {
2059 // We remove the object here
2060 try
2061 {
2062 DeleteSceneObject(grp, false);
2063 }
2064 catch (Exception)
2065 {
2066 m_log.Warn("[DATABASE]: exception when trying to remove the prim that crossed the border.");
2067 }
2068 return;
2069 }
2070
2071 if (grp.RootPart.RETURN_AT_EDGE)
2072 {
2073 // We remove the object here
2074 try
2075 {
2076 List<SceneObjectGroup> objects = new List<SceneObjectGroup>();
2077 objects.Add(grp);
2078 SceneObjectGroup[] objectsArray = objects.ToArray();
2079 returnObjects(objectsArray, UUID.Zero);
2080 }
2081 catch (Exception)
2082 {
2083 m_log.Warn("[DATABASE]: exception when trying to return the prim that crossed the border.");
2084 }
2085 return;
2086 }
2087
2057 if (m_teleportModule != null) 2088 if (m_teleportModule != null)
2058 m_teleportModule.Cross(grp, attemptedPosition, silent); 2089 m_teleportModule.Cross(grp, attemptedPosition, silent);
2059
2060 } 2090 }
2061 2091
2062 public Border GetCrossedBorder(Vector3 position, Cardinals gridline) 2092 public Border GetCrossedBorder(Vector3 position, Cardinals gridline)
@@ -2552,6 +2582,7 @@ namespace OpenSim.Region.Framework.Scenes
2552 client.OnGrabUpdate += ProcessObjectGrabUpdate; 2582 client.OnGrabUpdate += ProcessObjectGrabUpdate;
2553 client.OnDeGrabObject += ProcessObjectDeGrab; 2583 client.OnDeGrabObject += ProcessObjectDeGrab;
2554 client.OnUndo += m_sceneGraph.HandleUndo; 2584 client.OnUndo += m_sceneGraph.HandleUndo;
2585 client.OnRedo += m_sceneGraph.HandleRedo;
2555 client.OnObjectDescription += m_sceneGraph.PrimDescription; 2586 client.OnObjectDescription += m_sceneGraph.PrimDescription;
2556 client.OnObjectDrop += m_sceneGraph.DropObject; 2587 client.OnObjectDrop += m_sceneGraph.DropObject;
2557 client.OnObjectSaleInfo += ObjectSaleInfo; 2588 client.OnObjectSaleInfo += ObjectSaleInfo;
@@ -2705,6 +2736,7 @@ namespace OpenSim.Region.Framework.Scenes
2705 client.OnGrabObject -= ProcessObjectGrab; 2736 client.OnGrabObject -= ProcessObjectGrab;
2706 client.OnDeGrabObject -= ProcessObjectDeGrab; 2737 client.OnDeGrabObject -= ProcessObjectDeGrab;
2707 client.OnUndo -= m_sceneGraph.HandleUndo; 2738 client.OnUndo -= m_sceneGraph.HandleUndo;
2739 client.OnRedo -= m_sceneGraph.HandleRedo;
2708 client.OnObjectDescription -= m_sceneGraph.PrimDescription; 2740 client.OnObjectDescription -= m_sceneGraph.PrimDescription;
2709 client.OnObjectDrop -= m_sceneGraph.DropObject; 2741 client.OnObjectDrop -= m_sceneGraph.DropObject;
2710 client.OnObjectSaleInfo -= ObjectSaleInfo; 2742 client.OnObjectSaleInfo -= ObjectSaleInfo;
@@ -2953,7 +2985,6 @@ namespace OpenSim.Region.Framework.Scenes
2953 m_log.DebugFormat("[APPEARANCE]: Appearance not found in {0}, returning default", RegionInfo.RegionName); 2985 m_log.DebugFormat("[APPEARANCE]: Appearance not found in {0}, returning default", RegionInfo.RegionName);
2954 appearance = new AvatarAppearance(client.AgentId); 2986 appearance = new AvatarAppearance(client.AgentId);
2955 } 2987 }
2956
2957 } 2988 }
2958 2989
2959 /// <summary> 2990 /// <summary>