diff options
Diffstat (limited to 'OpenSim/Region/Environment/Scenes/InnerScene.cs')
-rw-r--r-- | OpenSim/Region/Environment/Scenes/InnerScene.cs | 41 |
1 files changed, 33 insertions, 8 deletions
diff --git a/OpenSim/Region/Environment/Scenes/InnerScene.cs b/OpenSim/Region/Environment/Scenes/InnerScene.cs index 63f7f17..b03ffe2 100644 --- a/OpenSim/Region/Environment/Scenes/InnerScene.cs +++ b/OpenSim/Region/Environment/Scenes/InnerScene.cs | |||
@@ -204,18 +204,45 @@ namespace OpenSim.Region.Environment.Scenes | |||
204 | /// Add an object to the scene. | 204 | /// Add an object to the scene. |
205 | /// </summary> | 205 | /// </summary> |
206 | /// <param name="sceneObject"></param> | 206 | /// <param name="sceneObject"></param> |
207 | public void AddSceneObject(SceneObjectGroup sceneObject) | 207 | /// <returns>true if the object was added, false if an object with the same uuid was already in the scene |
208 | /// </returns> | ||
209 | public bool AddSceneObject(SceneObjectGroup sceneObject) | ||
208 | { | 210 | { |
209 | if (!Entities.ContainsKey(sceneObject.UUID)) | 211 | lock (Entities) |
210 | { | 212 | { |
211 | // QuadTree.AddSceneObject(sceneObject); | 213 | if (!Entities.ContainsKey(sceneObject.UUID)) |
212 | lock (Entities) | ||
213 | { | 214 | { |
215 | // QuadTree.AddSceneObject(sceneObject); | ||
214 | Entities.Add(sceneObject.UUID, sceneObject); | 216 | Entities.Add(sceneObject.UUID, sceneObject); |
217 | m_numPrim++; | ||
218 | |||
219 | return true; | ||
215 | } | 220 | } |
216 | m_numPrim++; | 221 | |
222 | return false; | ||
217 | } | 223 | } |
218 | } | 224 | } |
225 | |||
226 | /// <summary> | ||
227 | /// Delete an object from the scene | ||
228 | /// </summary> | ||
229 | /// <param name="sceneObject"></param> | ||
230 | /// <returns>true if the object was deleted, false if there was no object to delete</returns> | ||
231 | public bool DeleteSceneObject(LLUUID uuid) | ||
232 | { | ||
233 | lock (Entities) | ||
234 | { | ||
235 | if (Entities.ContainsKey(uuid)) | ||
236 | { | ||
237 | Entities.Remove(uuid); | ||
238 | m_numPrim--; | ||
239 | |||
240 | return true; | ||
241 | } | ||
242 | } | ||
243 | |||
244 | return false; | ||
245 | } | ||
219 | 246 | ||
220 | /// <summary> | 247 | /// <summary> |
221 | /// Add an entity to the list of prims to process on the next update | 248 | /// Add an entity to the list of prims to process on the next update |
@@ -376,7 +403,6 @@ namespace OpenSim.Region.Environment.Scenes | |||
376 | // To LocalId or LLUUID, *THAT* is the question. How now Brown LLUUID?? | 403 | // To LocalId or LLUUID, *THAT* is the question. How now Brown LLUUID?? |
377 | public void DetachSingleAttachmentToInv(LLUUID itemID, IClientAPI remoteClient) | 404 | public void DetachSingleAttachmentToInv(LLUUID itemID, IClientAPI remoteClient) |
378 | { | 405 | { |
379 | |||
380 | if (itemID == LLUUID.Zero) // If this happened, someone made a mistake.... | 406 | if (itemID == LLUUID.Zero) // If this happened, someone made a mistake.... |
381 | return; | 407 | return; |
382 | 408 | ||
@@ -392,11 +418,10 @@ namespace OpenSim.Region.Environment.Scenes | |||
392 | group.DetachToInventoryPrep(); | 418 | group.DetachToInventoryPrep(); |
393 | m_log.Debug("[DETACH]: Saving attachpoint: " + ((uint)group.GetAttachmentPoint()).ToString()); | 419 | m_log.Debug("[DETACH]: Saving attachpoint: " + ((uint)group.GetAttachmentPoint()).ToString()); |
394 | m_parentScene.updateKnownAsset(remoteClient, group, group.GetFromAssetID(),group.OwnerID); | 420 | m_parentScene.updateKnownAsset(remoteClient, group, group.GetFromAssetID(),group.OwnerID); |
395 | m_parentScene.DeleteSceneObjectGroup(group); | 421 | m_parentScene.DeleteSceneObject(group); |
396 | } | 422 | } |
397 | } | 423 | } |
398 | } | 424 | } |
399 | |||
400 | } | 425 | } |
401 | 426 | ||
402 | public void AttachObject(IClientAPI remoteClient, uint objectLocalID, uint AttachmentPt, LLQuaternion rot, LLVector3 attachPos) | 427 | public void AttachObject(IClientAPI remoteClient, uint objectLocalID, uint AttachmentPt, LLQuaternion rot, LLVector3 attachPos) |