diff options
Diffstat (limited to 'OpenSim/Region/Environment/Scenes/InnerScene.cs')
-rw-r--r-- | OpenSim/Region/Environment/Scenes/InnerScene.cs | 21 |
1 files changed, 20 insertions, 1 deletions
diff --git a/OpenSim/Region/Environment/Scenes/InnerScene.cs b/OpenSim/Region/Environment/Scenes/InnerScene.cs index 65fa544..869111c 100644 --- a/OpenSim/Region/Environment/Scenes/InnerScene.cs +++ b/OpenSim/Region/Environment/Scenes/InnerScene.cs | |||
@@ -358,6 +358,24 @@ namespace OpenSim.Region.Environment.Scenes | |||
358 | m_activeScripts += number; | 358 | m_activeScripts += number; |
359 | } | 359 | } |
360 | 360 | ||
361 | protected internal void DropObject(uint objectLocalID, IClientAPI remoteClient) | ||
362 | { | ||
363 | List<EntityBase> EntityList = GetEntities(); | ||
364 | |||
365 | foreach (EntityBase obj in EntityList) | ||
366 | { | ||
367 | if (obj is SceneObjectGroup) | ||
368 | { | ||
369 | if (((SceneObjectGroup)obj).LocalId == objectLocalID) | ||
370 | { | ||
371 | SceneObjectGroup group = (SceneObjectGroup)obj; | ||
372 | |||
373 | m_parentScene.DetachSingleAttachmentToGround(group.UUID,remoteClient); | ||
374 | } | ||
375 | } | ||
376 | } | ||
377 | } | ||
378 | |||
361 | protected internal void DetachObject(uint objectLocalID, IClientAPI remoteClient) | 379 | protected internal void DetachObject(uint objectLocalID, IClientAPI remoteClient) |
362 | { | 380 | { |
363 | List<EntityBase> EntityList = GetEntities(); | 381 | List<EntityBase> EntityList = GetEntities(); |
@@ -441,10 +459,11 @@ namespace OpenSim.Region.Environment.Scenes | |||
441 | (uint)(PermissionMask.Copy | PermissionMask.Move | PermissionMask.Modify | PermissionMask.Transfer), | 459 | (uint)(PermissionMask.Copy | PermissionMask.Move | PermissionMask.Modify | PermissionMask.Transfer), |
442 | (uint)(PermissionMask.Copy | PermissionMask.Move | PermissionMask.Modify | PermissionMask.Transfer), | 460 | (uint)(PermissionMask.Copy | PermissionMask.Move | PermissionMask.Modify | PermissionMask.Transfer), |
443 | ItemFlags, false, false, remoteClient.AgentId, true); | 461 | ItemFlags, false, false, remoteClient.AgentId, true); |
444 | objatt.SetAttachmentPoint(Convert.ToByte(AttachmentPt)); | ||
445 | 462 | ||
446 | if (objatt != null) | 463 | if (objatt != null) |
447 | { | 464 | { |
465 | objatt.SetAttachmentPoint(Convert.ToByte(AttachmentPt)); | ||
466 | |||
448 | AttachObject(remoteClient, objatt.LocalId, AttachmentPt, Quaternion.Identity, objatt.AbsolutePosition); | 467 | AttachObject(remoteClient, objatt.LocalId, AttachmentPt, Quaternion.Identity, objatt.AbsolutePosition); |
449 | objatt.ScheduleGroupForFullUpdate(); | 468 | objatt.ScheduleGroupForFullUpdate(); |
450 | } | 469 | } |