diff options
Diffstat (limited to 'OpenSim/Region/Framework/Scenes/Scene.cs')
-rw-r--r-- | OpenSim/Region/Framework/Scenes/Scene.cs | 35 |
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> |