diff options
Diffstat (limited to 'OpenSim/Region/Framework/Scenes/AsyncSceneObjectGroupDeleter.cs')
-rw-r--r-- | OpenSim/Region/Framework/Scenes/AsyncSceneObjectGroupDeleter.cs | 18 |
1 files changed, 12 insertions, 6 deletions
diff --git a/OpenSim/Region/Framework/Scenes/AsyncSceneObjectGroupDeleter.cs b/OpenSim/Region/Framework/Scenes/AsyncSceneObjectGroupDeleter.cs index c08b961..241cac0 100644 --- a/OpenSim/Region/Framework/Scenes/AsyncSceneObjectGroupDeleter.cs +++ b/OpenSim/Region/Framework/Scenes/AsyncSceneObjectGroupDeleter.cs | |||
@@ -40,7 +40,7 @@ namespace OpenSim.Region.Framework.Scenes | |||
40 | { | 40 | { |
41 | public DeRezAction action; | 41 | public DeRezAction action; |
42 | public IClientAPI remoteClient; | 42 | public IClientAPI remoteClient; |
43 | public SceneObjectGroup objectGroup; | 43 | public List<SceneObjectGroup> objectGroups; |
44 | public UUID folderID; | 44 | public UUID folderID; |
45 | public bool permissionToDelete; | 45 | public bool permissionToDelete; |
46 | } | 46 | } |
@@ -75,7 +75,7 @@ namespace OpenSim.Region.Framework.Scenes | |||
75 | /// Delete the given object from the scene | 75 | /// Delete the given object from the scene |
76 | /// </summary> | 76 | /// </summary> |
77 | public void DeleteToInventory(DeRezAction action, UUID folderID, | 77 | public void DeleteToInventory(DeRezAction action, UUID folderID, |
78 | SceneObjectGroup objectGroup, IClientAPI remoteClient, | 78 | List<SceneObjectGroup> objectGroups, IClientAPI remoteClient, |
79 | bool permissionToDelete) | 79 | bool permissionToDelete) |
80 | { | 80 | { |
81 | if (Enabled) | 81 | if (Enabled) |
@@ -87,7 +87,7 @@ namespace OpenSim.Region.Framework.Scenes | |||
87 | DeleteToInventoryHolder dtis = new DeleteToInventoryHolder(); | 87 | DeleteToInventoryHolder dtis = new DeleteToInventoryHolder(); |
88 | dtis.action = action; | 88 | dtis.action = action; |
89 | dtis.folderID = folderID; | 89 | dtis.folderID = folderID; |
90 | dtis.objectGroup = objectGroup; | 90 | dtis.objectGroups = objectGroups; |
91 | dtis.remoteClient = remoteClient; | 91 | dtis.remoteClient = remoteClient; |
92 | dtis.permissionToDelete = permissionToDelete; | 92 | dtis.permissionToDelete = permissionToDelete; |
93 | 93 | ||
@@ -103,7 +103,10 @@ namespace OpenSim.Region.Framework.Scenes | |||
103 | // This is not ideal since the object will still be available for manipulation when it should be, but it's | 103 | // This is not ideal since the object will still be available for manipulation when it should be, but it's |
104 | // better than losing the object for now. | 104 | // better than losing the object for now. |
105 | if (permissionToDelete) | 105 | if (permissionToDelete) |
106 | objectGroup.DeleteGroup(false); | 106 | { |
107 | foreach (SceneObjectGroup g in objectGroups) | ||
108 | g.DeleteGroup(false); | ||
109 | } | ||
107 | } | 110 | } |
108 | 111 | ||
109 | private void InventoryRunDeleteTimer(object sender, ElapsedEventArgs e) | 112 | private void InventoryRunDeleteTimer(object sender, ElapsedEventArgs e) |
@@ -140,9 +143,12 @@ namespace OpenSim.Region.Framework.Scenes | |||
140 | { | 143 | { |
141 | IInventoryAccessModule invAccess = m_scene.RequestModuleInterface<IInventoryAccessModule>(); | 144 | IInventoryAccessModule invAccess = m_scene.RequestModuleInterface<IInventoryAccessModule>(); |
142 | if (invAccess != null) | 145 | if (invAccess != null) |
143 | invAccess.DeleteToInventory(x.action, x.folderID, x.objectGroup, x.remoteClient); | 146 | invAccess.DeleteToInventory(x.action, x.folderID, x.objectGroups, x.remoteClient); |
144 | if (x.permissionToDelete) | 147 | if (x.permissionToDelete) |
145 | m_scene.DeleteSceneObject(x.objectGroup, false); | 148 | { |
149 | foreach (SceneObjectGroup g in x.objectGroups) | ||
150 | m_scene.DeleteSceneObject(g, false); | ||
151 | } | ||
146 | } | 152 | } |
147 | catch (Exception e) | 153 | catch (Exception e) |
148 | { | 154 | { |