aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/OpenSim/Region/CoreModules/Avatar
diff options
context:
space:
mode:
authorBlueWall2012-10-03 19:14:40 -0400
committerBlueWall2012-10-03 19:14:40 -0400
commite6c9b0900615ac41d56f1fbd3ea30a6308b22f96 (patch)
tree7cc9f82783ef8826a13e169a9d43ef9ec5d98cfc /OpenSim/Region/CoreModules/Avatar
parentAdd modular configuration for Robust connectors (diff)
parentSoliciting for comments on smoothness of physics objects for this build. (diff)
downloadopensim-SC_OLD-e6c9b0900615ac41d56f1fbd3ea30a6308b22f96.zip
opensim-SC_OLD-e6c9b0900615ac41d56f1fbd3ea30a6308b22f96.tar.gz
opensim-SC_OLD-e6c9b0900615ac41d56f1fbd3ea30a6308b22f96.tar.bz2
opensim-SC_OLD-e6c9b0900615ac41d56f1fbd3ea30a6308b22f96.tar.xz
Merge branch 'master' of /home/opensim/var/repo/opensim into modular_config
Diffstat (limited to 'OpenSim/Region/CoreModules/Avatar')
-rw-r--r--OpenSim/Region/CoreModules/Avatar/Attachments/AttachmentsModule.cs11
-rw-r--r--OpenSim/Region/CoreModules/Avatar/AvatarFactory/AvatarFactoryModule.cs3
-rw-r--r--OpenSim/Region/CoreModules/Avatar/Inventory/Transfer/InventoryTransferModule.cs39
3 files changed, 51 insertions, 2 deletions
diff --git a/OpenSim/Region/CoreModules/Avatar/Attachments/AttachmentsModule.cs b/OpenSim/Region/CoreModules/Avatar/Attachments/AttachmentsModule.cs
index 130c869..2a513e9 100644
--- a/OpenSim/Region/CoreModules/Avatar/Attachments/AttachmentsModule.cs
+++ b/OpenSim/Region/CoreModules/Avatar/Attachments/AttachmentsModule.cs
@@ -407,6 +407,11 @@ namespace OpenSim.Region.CoreModules.Avatar.Attachments
407 407
408 public void DetachSingleAttachmentToGround(IScenePresence sp, uint soLocalId) 408 public void DetachSingleAttachmentToGround(IScenePresence sp, uint soLocalId)
409 { 409 {
410 DetachSingleAttachmentToGround(sp, soLocalId, sp.AbsolutePosition, Quaternion.Identity);
411 }
412
413 public void DetachSingleAttachmentToGround(IScenePresence sp, uint soLocalId, Vector3 absolutePos, Quaternion absoluteRot)
414 {
410 if (!Enabled) 415 if (!Enabled)
411 return; 416 return;
412 417
@@ -448,7 +453,11 @@ namespace OpenSim.Region.CoreModules.Avatar.Attachments
448 so.FromItemID = UUID.Zero; 453 so.FromItemID = UUID.Zero;
449 454
450 SceneObjectPart rootPart = so.RootPart; 455 SceneObjectPart rootPart = so.RootPart;
451 so.AbsolutePosition = sp.AbsolutePosition; 456 so.AbsolutePosition = absolutePos;
457 if (absoluteRot != Quaternion.Identity)
458 {
459 so.UpdateGroupRotationR(absoluteRot);
460 }
452 so.AttachedAvatar = UUID.Zero; 461 so.AttachedAvatar = UUID.Zero;
453 rootPart.SetParentLocalId(0); 462 rootPart.SetParentLocalId(0);
454 so.ClearPartAttachmentData(); 463 so.ClearPartAttachmentData();
diff --git a/OpenSim/Region/CoreModules/Avatar/AvatarFactory/AvatarFactoryModule.cs b/OpenSim/Region/CoreModules/Avatar/AvatarFactory/AvatarFactoryModule.cs
index 1d6e522..b5b0082 100644
--- a/OpenSim/Region/CoreModules/Avatar/AvatarFactory/AvatarFactoryModule.cs
+++ b/OpenSim/Region/CoreModules/Avatar/AvatarFactory/AvatarFactoryModule.cs
@@ -525,7 +525,7 @@ namespace OpenSim.Region.CoreModules.Avatar.AvatarFactory
525 { 525 {
526 for (int i = 0; i < AvatarWearable.MAX_WEARABLES; i++) 526 for (int i = 0; i < AvatarWearable.MAX_WEARABLES; i++)
527 { 527 {
528 for (int j = 0; j < appearance.Wearables[j].Count; j++) 528 for (int j = 0; j < appearance.Wearables[i].Count; j++)
529 { 529 {
530 if (appearance.Wearables[i][j].ItemID == UUID.Zero) 530 if (appearance.Wearables[i][j].ItemID == UUID.Zero)
531 continue; 531 continue;
@@ -533,6 +533,7 @@ namespace OpenSim.Region.CoreModules.Avatar.AvatarFactory
533 // Ignore ruth's assets 533 // Ignore ruth's assets
534 if (appearance.Wearables[i][j].ItemID == AvatarWearable.DefaultWearables[i][0].ItemID) 534 if (appearance.Wearables[i][j].ItemID == AvatarWearable.DefaultWearables[i][0].ItemID)
535 continue; 535 continue;
536
536 InventoryItemBase baseItem = new InventoryItemBase(appearance.Wearables[i][j].ItemID, userID); 537 InventoryItemBase baseItem = new InventoryItemBase(appearance.Wearables[i][j].ItemID, userID);
537 baseItem = invService.GetItem(baseItem); 538 baseItem = invService.GetItem(baseItem);
538 539
diff --git a/OpenSim/Region/CoreModules/Avatar/Inventory/Transfer/InventoryTransferModule.cs b/OpenSim/Region/CoreModules/Avatar/Inventory/Transfer/InventoryTransferModule.cs
index f3af59a..91eda19 100644
--- a/OpenSim/Region/CoreModules/Avatar/Inventory/Transfer/InventoryTransferModule.cs
+++ b/OpenSim/Region/CoreModules/Avatar/Inventory/Transfer/InventoryTransferModule.cs
@@ -297,6 +297,45 @@ namespace OpenSim.Region.CoreModules.Avatar.Inventory.Transfer
297 }); 297 });
298 } 298 }
299 } 299 }
300 else if (im.dialog == (byte) InstantMessageDialog.TaskInventoryAccepted)
301 {
302 UUID destinationFolderID = UUID.Zero;
303
304 if (im.binaryBucket != null && im.binaryBucket.Length >= 16)
305 {
306 destinationFolderID = new UUID(im.binaryBucket, 0);
307 }
308
309 if (destinationFolderID != UUID.Zero)
310 {
311 IInventoryService invService = scene.InventoryService;
312
313 UUID inventoryID = new UUID(im.imSessionID); // The inventory item/folder, back from it's trip
314
315 InventoryItemBase item = new InventoryItemBase(inventoryID, client.AgentId);
316 item = invService.GetItem(item);
317 InventoryFolderBase folder = null;
318
319 if (item != null) // It's an item
320 {
321 item.Folder = destinationFolderID;
322
323 invService.DeleteItems(item.Owner, new List<UUID>() { item.ID });
324 scene.AddInventoryItem(client, item);
325 }
326 else
327 {
328 folder = new InventoryFolderBase(inventoryID, client.AgentId);
329 folder = invService.GetFolder(folder);
330
331 if (folder != null) // It's a folder
332 {
333 folder.ParentID = destinationFolderID;
334 invService.MoveFolder(folder);
335 }
336 }
337 }
338 }
300 else if ( 339 else if (
301 im.dialog == (byte)InstantMessageDialog.InventoryDeclined 340 im.dialog == (byte)InstantMessageDialog.InventoryDeclined
302 || im.dialog == (byte)InstantMessageDialog.TaskInventoryDeclined) 341 || im.dialog == (byte)InstantMessageDialog.TaskInventoryDeclined)