diff options
Diffstat (limited to '')
4 files changed, 18 insertions, 40 deletions
diff --git a/OpenSim/Region/Framework/Scenes/Scene.Inventory.cs b/OpenSim/Region/Framework/Scenes/Scene.Inventory.cs index 1bf6b87..4cc797b 100644 --- a/OpenSim/Region/Framework/Scenes/Scene.Inventory.cs +++ b/OpenSim/Region/Framework/Scenes/Scene.Inventory.cs | |||
@@ -1689,37 +1689,6 @@ namespace OpenSim.Region.Framework.Scenes | |||
1689 | } | 1689 | } |
1690 | } | 1690 | } |
1691 | 1691 | ||
1692 | /// <summary> | ||
1693 | /// Called when one or more objects are removed from the environment into inventory. | ||
1694 | /// </summary> | ||
1695 | /// <param name="remoteClient"></param> | ||
1696 | /// <param name="localID"></param> | ||
1697 | /// <param name="groupID"></param> | ||
1698 | /// <param name="action"></param> | ||
1699 | /// <param name="destinationID"></param> | ||
1700 | public virtual void DeRezObject(IClientAPI remoteClient, List<uint> localIDs, | ||
1701 | UUID groupID, DeRezAction action, UUID destinationID) | ||
1702 | { | ||
1703 | foreach (uint localID in localIDs) | ||
1704 | { | ||
1705 | DeRezObject(remoteClient, localID, groupID, action, destinationID); | ||
1706 | } | ||
1707 | } | ||
1708 | |||
1709 | /// <summary> | ||
1710 | /// Called when an object is removed from the environment into inventory. | ||
1711 | /// </summary> | ||
1712 | /// <param name="remoteClient"></param> | ||
1713 | /// <param name="localID"></param> | ||
1714 | /// <param name="groupID"></param> | ||
1715 | /// <param name="action"></param> | ||
1716 | /// <param name="destinationID"></param> | ||
1717 | public virtual void DeRezObject(IClientAPI remoteClient, uint localID, | ||
1718 | UUID groupID, DeRezAction action, UUID destinationID) | ||
1719 | { | ||
1720 | DeRezObjects(remoteClient, new List<uint>() { localID }, groupID, action, destinationID); | ||
1721 | } | ||
1722 | |||
1723 | public virtual void DeRezObjects(IClientAPI remoteClient, List<uint> localIDs, | 1692 | public virtual void DeRezObjects(IClientAPI remoteClient, List<uint> localIDs, |
1724 | UUID groupID, DeRezAction action, UUID destinationID) | 1693 | UUID groupID, DeRezAction action, UUID destinationID) |
1725 | { | 1694 | { |
@@ -1990,14 +1959,19 @@ namespace OpenSim.Region.Framework.Scenes | |||
1990 | return group; | 1959 | return group; |
1991 | } | 1960 | } |
1992 | 1961 | ||
1993 | public virtual bool returnObjects(SceneObjectGroup[] returnobjects, UUID AgentId) | 1962 | public virtual bool returnObjects(SceneObjectGroup[] returnobjects, |
1963 | UUID AgentId) | ||
1994 | { | 1964 | { |
1965 | List<uint> localIDs = new List<uint>(); | ||
1966 | |||
1995 | foreach (SceneObjectGroup grp in returnobjects) | 1967 | foreach (SceneObjectGroup grp in returnobjects) |
1996 | { | 1968 | { |
1997 | AddReturn(grp.OwnerID, grp.Name, grp.AbsolutePosition, "parcel owner return"); | 1969 | AddReturn(grp.OwnerID, grp.Name, grp.AbsolutePosition, |
1998 | DeRezObject(null, grp.RootPart.LocalId, | 1970 | "parcel owner return"); |
1999 | grp.RootPart.GroupID, DeRezAction.Return, UUID.Zero); | 1971 | localIDs.Add(grp.RootPart.LocalId); |
2000 | } | 1972 | } |
1973 | DeRezObjects(null, localIDs, UUID.Zero, DeRezAction.Return, | ||
1974 | UUID.Zero); | ||
2001 | 1975 | ||
2002 | return true; | 1976 | return true; |
2003 | } | 1977 | } |
diff --git a/OpenSim/Region/Framework/Scenes/Scene.cs b/OpenSim/Region/Framework/Scenes/Scene.cs index fe0ab5b..0cfc235 100644 --- a/OpenSim/Region/Framework/Scenes/Scene.cs +++ b/OpenSim/Region/Framework/Scenes/Scene.cs | |||
@@ -2735,7 +2735,7 @@ namespace OpenSim.Region.Framework.Scenes | |||
2735 | client.OnGrabUpdate += m_sceneGraph.MoveObject; | 2735 | client.OnGrabUpdate += m_sceneGraph.MoveObject; |
2736 | client.OnSpinStart += m_sceneGraph.SpinStart; | 2736 | client.OnSpinStart += m_sceneGraph.SpinStart; |
2737 | client.OnSpinUpdate += m_sceneGraph.SpinObject; | 2737 | client.OnSpinUpdate += m_sceneGraph.SpinObject; |
2738 | client.OnDeRezObject += DeRezObject; | 2738 | client.OnDeRezObject += DeRezObjects; |
2739 | 2739 | ||
2740 | client.OnObjectName += m_sceneGraph.PrimName; | 2740 | client.OnObjectName += m_sceneGraph.PrimName; |
2741 | client.OnObjectClickAction += m_sceneGraph.PrimClickAction; | 2741 | client.OnObjectClickAction += m_sceneGraph.PrimClickAction; |
@@ -2864,7 +2864,7 @@ namespace OpenSim.Region.Framework.Scenes | |||
2864 | client.OnGrabUpdate -= m_sceneGraph.MoveObject; | 2864 | client.OnGrabUpdate -= m_sceneGraph.MoveObject; |
2865 | client.OnSpinStart -= m_sceneGraph.SpinStart; | 2865 | client.OnSpinStart -= m_sceneGraph.SpinStart; |
2866 | client.OnSpinUpdate -= m_sceneGraph.SpinObject; | 2866 | client.OnSpinUpdate -= m_sceneGraph.SpinObject; |
2867 | client.OnDeRezObject -= DeRezObject; | 2867 | client.OnDeRezObject -= DeRezObjects; |
2868 | client.OnObjectName -= m_sceneGraph.PrimName; | 2868 | client.OnObjectName -= m_sceneGraph.PrimName; |
2869 | client.OnObjectClickAction -= m_sceneGraph.PrimClickAction; | 2869 | client.OnObjectClickAction -= m_sceneGraph.PrimClickAction; |
2870 | client.OnObjectMaterial -= m_sceneGraph.PrimMaterial; | 2870 | client.OnObjectMaterial -= m_sceneGraph.PrimMaterial; |
diff --git a/OpenSim/Region/Framework/Scenes/SceneObjectGroup.cs b/OpenSim/Region/Framework/Scenes/SceneObjectGroup.cs index 5513584..f7a304f 100644 --- a/OpenSim/Region/Framework/Scenes/SceneObjectGroup.cs +++ b/OpenSim/Region/Framework/Scenes/SceneObjectGroup.cs | |||
@@ -1291,6 +1291,8 @@ namespace OpenSim.Region.Framework.Scenes | |||
1291 | ILandObject parcel = m_scene.LandChannel.GetLandObject( | 1291 | ILandObject parcel = m_scene.LandChannel.GetLandObject( |
1292 | m_rootPart.GroupPosition.X, m_rootPart.GroupPosition.Y); | 1292 | m_rootPart.GroupPosition.X, m_rootPart.GroupPosition.Y); |
1293 | 1293 | ||
1294 | List<uint> returns = new List<uint>(); | ||
1295 | |||
1294 | if (parcel != null && parcel.LandData != null && | 1296 | if (parcel != null && parcel.LandData != null && |
1295 | parcel.LandData.OtherCleanTime != 0) | 1297 | parcel.LandData.OtherCleanTime != 0) |
1296 | { | 1298 | { |
@@ -1304,13 +1306,15 @@ namespace OpenSim.Region.Framework.Scenes | |||
1304 | DetachFromBackup(); | 1306 | DetachFromBackup(); |
1305 | m_log.InfoFormat("[SCENE]: Returning object {0} due to parcel auto return", RootPart.UUID.ToString()); | 1307 | m_log.InfoFormat("[SCENE]: Returning object {0} due to parcel auto return", RootPart.UUID.ToString()); |
1306 | m_scene.AddReturn(OwnerID, Name, AbsolutePosition, "parcel auto return"); | 1308 | m_scene.AddReturn(OwnerID, Name, AbsolutePosition, "parcel auto return"); |
1307 | m_scene.DeRezObject(null, RootPart.LocalId, | 1309 | returns.Add(RootPart.LocalId); |
1308 | RootPart.GroupID, DeRezAction.Return, UUID.Zero); | ||
1309 | 1310 | ||
1310 | return; | 1311 | return; |
1311 | } | 1312 | } |
1312 | } | 1313 | } |
1313 | } | 1314 | } |
1315 | |||
1316 | m_scene.DeRezObjects(null, returns, UUID.Zero, | ||
1317 | DeRezAction.Return, UUID.Zero); | ||
1314 | } | 1318 | } |
1315 | 1319 | ||
1316 | if (HasGroupChanged) | 1320 | if (HasGroupChanged) |
diff --git a/OpenSim/Region/Framework/Scenes/Tests/SceneObjectBasicTests.cs b/OpenSim/Region/Framework/Scenes/Tests/SceneObjectBasicTests.cs index 5616a4e..4969b09 100644 --- a/OpenSim/Region/Framework/Scenes/Tests/SceneObjectBasicTests.cs +++ b/OpenSim/Region/Framework/Scenes/Tests/SceneObjectBasicTests.cs | |||
@@ -142,7 +142,7 @@ namespace OpenSim.Region.Framework.Scenes.Tests | |||
142 | SceneObjectPart part = SceneSetupHelpers.AddSceneObject(scene); | 142 | SceneObjectPart part = SceneSetupHelpers.AddSceneObject(scene); |
143 | 143 | ||
144 | IClientAPI client = SceneSetupHelpers.AddRootAgent(scene, agentId); | 144 | IClientAPI client = SceneSetupHelpers.AddRootAgent(scene, agentId); |
145 | scene.DeRezObject(client, part.LocalId, UUID.Zero, DeRezAction.Delete, UUID.Zero); | 145 | scene.DeRezObjects(client, new System.Collections.Generic.List<uint>() { part.LocalId }, UUID.Zero, DeRezAction.Delete, UUID.Zero); |
146 | 146 | ||
147 | SceneObjectPart retrievedPart = scene.GetSceneObjectPart(part.LocalId); | 147 | SceneObjectPart retrievedPart = scene.GetSceneObjectPart(part.LocalId); |
148 | 148 | ||