diff options
Diffstat (limited to 'OpenSim')
7 files changed, 154 insertions, 70 deletions
diff --git a/OpenSim/Framework/AvatarAppearance.cs b/OpenSim/Framework/AvatarAppearance.cs index 7c6295d..aed9087 100644 --- a/OpenSim/Framework/AvatarAppearance.cs +++ b/OpenSim/Framework/AvatarAppearance.cs | |||
@@ -433,6 +433,10 @@ namespace OpenSim.Framework | |||
433 | if (attachpoint == 0) | 433 | if (attachpoint == 0) |
434 | return false; | 434 | return false; |
435 | 435 | ||
436 | // m_log.DebugFormat( | ||
437 | // "[AVATAR APPEARANCE]: Setting attachment at {0} with item ID {1}, asset ID {2}", | ||
438 | // attachpoint, item, asset); | ||
439 | |||
436 | if (item == UUID.Zero) | 440 | if (item == UUID.Zero) |
437 | { | 441 | { |
438 | if (m_attachments.ContainsKey(attachpoint)) | 442 | if (m_attachments.ContainsKey(attachpoint)) |
@@ -459,7 +463,7 @@ namespace OpenSim.Framework | |||
459 | } | 463 | } |
460 | else | 464 | else |
461 | { | 465 | { |
462 | ReplaceAttachment(new AvatarAttachment(attachpoint,item,asset)); | 466 | ReplaceAttachment(new AvatarAttachment(attachpoint,item, asset)); |
463 | } | 467 | } |
464 | return true; | 468 | return true; |
465 | } | 469 | } |
@@ -608,7 +612,14 @@ namespace OpenSim.Framework | |||
608 | { | 612 | { |
609 | OSDArray attachs = (OSDArray)(data["attachments"]); | 613 | OSDArray attachs = (OSDArray)(data["attachments"]); |
610 | for (int i = 0; i < attachs.Count; i++) | 614 | for (int i = 0; i < attachs.Count; i++) |
611 | AppendAttachment(new AvatarAttachment((OSDMap)attachs[i])); | 615 | { |
616 | AvatarAttachment att = new AvatarAttachment((OSDMap)attachs[i]); | ||
617 | AppendAttachment(att); | ||
618 | |||
619 | // m_log.DebugFormat( | ||
620 | // "[AVATAR APPEARANCE]: Unpacked attachment itemID {0}, assetID {1}, point {2}", | ||
621 | // att.ItemID, att.AssetID, att.AttachPoint); | ||
622 | } | ||
612 | } | 623 | } |
613 | } | 624 | } |
614 | catch (Exception e) | 625 | catch (Exception e) |
diff --git a/OpenSim/Framework/AvatarAttachment.cs b/OpenSim/Framework/AvatarAttachment.cs index c68d78d..07dd385 100644 --- a/OpenSim/Framework/AvatarAttachment.cs +++ b/OpenSim/Framework/AvatarAttachment.cs | |||
@@ -66,11 +66,11 @@ namespace OpenSim.Framework | |||
66 | return attachdata; | 66 | return attachdata; |
67 | } | 67 | } |
68 | 68 | ||
69 | |||
70 | public void Unpack(OSDMap args) | 69 | public void Unpack(OSDMap args) |
71 | { | 70 | { |
72 | if (args["point"] != null) | 71 | if (args["point"] != null) |
73 | AttachPoint = args["point"].AsInteger(); | 72 | AttachPoint = args["point"].AsInteger(); |
73 | |||
74 | ItemID = (args["item"] != null) ? args["item"].AsUUID() : UUID.Zero; | 74 | ItemID = (args["item"] != null) ? args["item"].AsUUID() : UUID.Zero; |
75 | AssetID = (args["asset"] != null) ? args["asset"].AsUUID() : UUID.Zero; | 75 | AssetID = (args["asset"] != null) ? args["asset"].AsUUID() : UUID.Zero; |
76 | } | 76 | } |
diff --git a/OpenSim/Region/CoreModules/Avatar/Attachments/AttachmentsModule.cs b/OpenSim/Region/CoreModules/Avatar/Attachments/AttachmentsModule.cs index ffe76a8..4881499 100644 --- a/OpenSim/Region/CoreModules/Avatar/Attachments/AttachmentsModule.cs +++ b/OpenSim/Region/CoreModules/Avatar/Attachments/AttachmentsModule.cs | |||
@@ -111,10 +111,12 @@ namespace OpenSim.Region.CoreModules.Avatar.Attachments | |||
111 | List<AvatarAttachment> attachments = sp.Appearance.GetAttachments(); | 111 | List<AvatarAttachment> attachments = sp.Appearance.GetAttachments(); |
112 | foreach (AvatarAttachment attach in attachments) | 112 | foreach (AvatarAttachment attach in attachments) |
113 | { | 113 | { |
114 | int p = attach.AttachPoint; | 114 | uint p = (uint)attach.AttachPoint; |
115 | UUID itemID = attach.ItemID; | 115 | |
116 | // m_log.DebugFormat( | ||
117 | // "[ATTACHMENTS MODULE]: Doing initial rez of attachment with itemID {0}, assetID {1}, point {2} for {3} in {4}", | ||
118 | // attach.ItemID, attach.AssetID, p, sp.Name, m_scene.RegionInfo.RegionName); | ||
116 | 119 | ||
117 | //UUID assetID = attach.AssetID; | ||
118 | // For some reason assetIDs are being written as Zero's in the DB -- need to track tat down | 120 | // For some reason assetIDs are being written as Zero's in the DB -- need to track tat down |
119 | // But they're not used anyway, the item is being looked up for now, so let's proceed. | 121 | // But they're not used anyway, the item is being looked up for now, so let's proceed. |
120 | //if (UUID.Zero == assetID) | 122 | //if (UUID.Zero == assetID) |
@@ -125,7 +127,12 @@ namespace OpenSim.Region.CoreModules.Avatar.Attachments | |||
125 | 127 | ||
126 | try | 128 | try |
127 | { | 129 | { |
128 | RezSingleAttachmentFromInventory(sp.ControllingClient, itemID, (uint)p); | 130 | // If we're an NPC then skip all the item checks and manipulations since we don't have an |
131 | // inventory right now. | ||
132 | if (sp.PresenceType == PresenceType.Npc) | ||
133 | RezSingleAttachmentFromInventoryInternal(sp, UUID.Zero, attach.AssetID, p); | ||
134 | else | ||
135 | RezSingleAttachmentFromInventory(sp.ControllingClient, attach.ItemID, p); | ||
129 | } | 136 | } |
130 | catch (Exception e) | 137 | catch (Exception e) |
131 | { | 138 | { |
@@ -231,7 +238,7 @@ namespace OpenSim.Region.CoreModules.Avatar.Attachments | |||
231 | return AttachObject(sp, group, AttachmentPt, silent); | 238 | return AttachObject(sp, group, AttachmentPt, silent); |
232 | } | 239 | } |
233 | 240 | ||
234 | private bool AttachObject(ScenePresence sp, SceneObjectGroup group, uint attachmentPt, bool silent) | 241 | private bool AttachObject(IScenePresence sp, SceneObjectGroup group, uint attachmentPt, bool silent) |
235 | { | 242 | { |
236 | // m_log.DebugFormat( | 243 | // m_log.DebugFormat( |
237 | // "[ATTACHMENTS MODULE]: Attaching object {0} {1} to {2} point {3} from ground (silent = {4})", | 244 | // "[ATTACHMENTS MODULE]: Attaching object {0} {1} to {2} point {3} from ground (silent = {4})", |
@@ -284,17 +291,21 @@ namespace OpenSim.Region.CoreModules.Avatar.Attachments | |||
284 | List<SceneObjectGroup> attachments = sp.GetAttachments(attachmentPt); | 291 | List<SceneObjectGroup> attachments = sp.GetAttachments(attachmentPt); |
285 | 292 | ||
286 | // At the moment we can only deal with a single attachment | 293 | // At the moment we can only deal with a single attachment |
287 | if (attachments.Count != 0) | 294 | // We also don't want to do any of the inventory operations for an NPC. |
288 | itemID = attachments[0].GetFromItemID(); | 295 | if (sp.PresenceType != PresenceType.Npc) |
289 | 296 | { | |
290 | if (itemID != UUID.Zero) | 297 | if (attachments.Count != 0) |
291 | DetachSingleAttachmentToInv(itemID, sp); | 298 | itemID = attachments[0].GetFromItemID(); |
292 | 299 | ||
293 | itemID = group.GetFromItemID(); | 300 | if (itemID != UUID.Zero) |
294 | if (itemID == UUID.Zero) | 301 | DetachSingleAttachmentToInv(itemID, sp); |
295 | itemID = AddSceneObjectAsAttachment(sp.ControllingClient, group).ID; | 302 | |
296 | 303 | itemID = group.GetFromItemID(); | |
297 | ShowAttachInUserInventory(sp, attachmentPt, itemID, group); | 304 | if (itemID == UUID.Zero) |
305 | itemID = AddSceneObjectAsAttachment(sp.ControllingClient, group).ID; | ||
306 | |||
307 | ShowAttachInUserInventory(sp, attachmentPt, itemID, group); | ||
308 | } | ||
298 | 309 | ||
299 | AttachToAgent(sp, group, attachmentPt, attachPos, silent); | 310 | AttachToAgent(sp, group, attachmentPt, attachPos, silent); |
300 | 311 | ||
@@ -312,7 +323,8 @@ namespace OpenSim.Region.CoreModules.Avatar.Attachments | |||
312 | } | 323 | } |
313 | } | 324 | } |
314 | 325 | ||
315 | public ISceneEntity RezSingleAttachmentFromInventory(IClientAPI remoteClient, UUID itemID, uint AttachmentPt) | 326 | public ISceneEntity RezSingleAttachmentFromInventory( |
327 | IClientAPI remoteClient, UUID itemID, uint AttachmentPt) | ||
316 | { | 328 | { |
317 | return RezSingleAttachmentFromInventory(remoteClient, itemID, AttachmentPt, true); | 329 | return RezSingleAttachmentFromInventory(remoteClient, itemID, AttachmentPt, true); |
318 | } | 330 | } |
@@ -338,7 +350,7 @@ namespace OpenSim.Region.CoreModules.Avatar.Attachments | |||
338 | // be removed when that functionality is implemented in opensim | 350 | // be removed when that functionality is implemented in opensim |
339 | AttachmentPt &= 0x7f; | 351 | AttachmentPt &= 0x7f; |
340 | 352 | ||
341 | SceneObjectGroup att = RezSingleAttachmentFromInventoryInternal(sp, itemID, AttachmentPt); | 353 | SceneObjectGroup att = RezSingleAttachmentFromInventoryInternal(sp, itemID, UUID.Zero, AttachmentPt); |
342 | 354 | ||
343 | if (updateInventoryStatus) | 355 | if (updateInventoryStatus) |
344 | { | 356 | { |
@@ -352,14 +364,21 @@ namespace OpenSim.Region.CoreModules.Avatar.Attachments | |||
352 | } | 364 | } |
353 | 365 | ||
354 | private SceneObjectGroup RezSingleAttachmentFromInventoryInternal( | 366 | private SceneObjectGroup RezSingleAttachmentFromInventoryInternal( |
355 | ScenePresence sp, UUID itemID, uint attachmentPt) | 367 | IScenePresence sp, UUID itemID, UUID assetID, uint attachmentPt) |
356 | { | 368 | { |
357 | IInventoryAccessModule invAccess = m_scene.RequestModuleInterface<IInventoryAccessModule>(); | 369 | IInventoryAccessModule invAccess = m_scene.RequestModuleInterface<IInventoryAccessModule>(); |
358 | if (invAccess != null) | 370 | if (invAccess != null) |
359 | { | 371 | { |
360 | SceneObjectGroup objatt = invAccess.RezObject(sp.ControllingClient, | 372 | SceneObjectGroup objatt; |
361 | itemID, Vector3.Zero, Vector3.Zero, UUID.Zero, (byte)1, true, | 373 | |
362 | false, false, sp.UUID, true); | 374 | if (itemID != UUID.Zero) |
375 | objatt = invAccess.RezObject(sp.ControllingClient, | ||
376 | itemID, Vector3.Zero, Vector3.Zero, UUID.Zero, (byte)1, true, | ||
377 | false, false, sp.UUID, true); | ||
378 | else | ||
379 | objatt = invAccess.RezObject(sp.ControllingClient, | ||
380 | null, assetID, Vector3.Zero, Vector3.Zero, UUID.Zero, (byte)1, true, | ||
381 | false, false, sp.UUID, true); | ||
363 | 382 | ||
364 | // m_log.DebugFormat( | 383 | // m_log.DebugFormat( |
365 | // "[ATTACHMENTS MODULE]: Retrieved single object {0} for attachment to {1} on point {2}", | 384 | // "[ATTACHMENTS MODULE]: Retrieved single object {0} for attachment to {1} on point {2}", |
@@ -425,7 +444,7 @@ namespace OpenSim.Region.CoreModules.Avatar.Attachments | |||
425 | /// <param name="attachmentPoint"></param> | 444 | /// <param name="attachmentPoint"></param> |
426 | /// <returns></returns> | 445 | /// <returns></returns> |
427 | private UUID ShowAttachInUserInventory( | 446 | private UUID ShowAttachInUserInventory( |
428 | SceneObjectGroup att, ScenePresence sp, UUID itemID, uint attachmentPoint) | 447 | SceneObjectGroup att, IScenePresence sp, UUID itemID, uint attachmentPoint) |
429 | { | 448 | { |
430 | // m_log.DebugFormat( | 449 | // m_log.DebugFormat( |
431 | // "[ATTACHMENTS MODULE]: Updating inventory of {0} to show attachment of {1} {2} (item ID {3}) at {4}", | 450 | // "[ATTACHMENTS MODULE]: Updating inventory of {0} to show attachment of {1} {2} (item ID {3}) at {4}", |
@@ -452,7 +471,7 @@ namespace OpenSim.Region.CoreModules.Avatar.Attachments | |||
452 | /// <param name="itemID"></param> | 471 | /// <param name="itemID"></param> |
453 | /// <param name="att"></param> | 472 | /// <param name="att"></param> |
454 | private void ShowAttachInUserInventory( | 473 | private void ShowAttachInUserInventory( |
455 | ScenePresence sp, uint AttachmentPt, UUID itemID, SceneObjectGroup att) | 474 | IScenePresence sp, uint AttachmentPt, UUID itemID, SceneObjectGroup att) |
456 | { | 475 | { |
457 | // m_log.DebugFormat( | 476 | // m_log.DebugFormat( |
458 | // "[USER INVENTORY]: Updating attachment {0} for {1} at {2} using item ID {3}", | 477 | // "[USER INVENTORY]: Updating attachment {0} for {1} at {2} using item ID {3}", |
@@ -574,7 +593,7 @@ namespace OpenSim.Region.CoreModules.Avatar.Attachments | |||
574 | 593 | ||
575 | // What makes this method odd and unique is it tries to detach using an UUID.... Yay for standards. | 594 | // What makes this method odd and unique is it tries to detach using an UUID.... Yay for standards. |
576 | // To LocalId or UUID, *THAT* is the question. How now Brown UUID?? | 595 | // To LocalId or UUID, *THAT* is the question. How now Brown UUID?? |
577 | private void DetachSingleAttachmentToInv(UUID itemID, ScenePresence sp) | 596 | private void DetachSingleAttachmentToInv(UUID itemID, IScenePresence sp) |
578 | { | 597 | { |
579 | if (itemID == UUID.Zero) // If this happened, someone made a mistake.... | 598 | if (itemID == UUID.Zero) // If this happened, someone made a mistake.... |
580 | return; | 599 | return; |
@@ -697,16 +716,17 @@ namespace OpenSim.Region.CoreModules.Avatar.Attachments | |||
697 | /// <summary> | 716 | /// <summary> |
698 | /// Attach this scene object to the given avatar. | 717 | /// Attach this scene object to the given avatar. |
699 | /// </summary> | 718 | /// </summary> |
700 | /// | 719 | /// <remarks> |
701 | /// This isn't publicly available since attachments should always perform the corresponding inventory | 720 | /// This isn't publicly available since attachments should always perform the corresponding inventory |
702 | /// operation (to show the attach in user inventory and update the asset with positional information). | 721 | /// operation (to show the attach in user inventory and update the asset with positional information). |
703 | /// | 722 | /// </remarks> |
704 | /// <param name="sp"></param> | 723 | /// <param name="sp"></param> |
705 | /// <param name="so"></param> | 724 | /// <param name="so"></param> |
706 | /// <param name="attachmentpoint"></param> | 725 | /// <param name="attachmentpoint"></param> |
707 | /// <param name="attachOffset"></param> | 726 | /// <param name="attachOffset"></param> |
708 | /// <param name="silent"></param> | 727 | /// <param name="silent"></param> |
709 | protected void AttachToAgent(ScenePresence avatar, SceneObjectGroup so, uint attachmentpoint, Vector3 attachOffset, bool silent) | 728 | private void AttachToAgent( |
729 | IScenePresence avatar, SceneObjectGroup so, uint attachmentpoint, Vector3 attachOffset, bool silent) | ||
710 | { | 730 | { |
711 | // m_log.DebugFormat("[ATTACHMENTS MODULE]: Adding attachment {0} to avatar {1} in pt {2} pos {3} {4}", | 731 | // m_log.DebugFormat("[ATTACHMENTS MODULE]: Adding attachment {0} to avatar {1} in pt {2} pos {3} {4}", |
712 | // so.Name, avatar.Name, attachmentpoint, attachOffset, so.RootPart.AttachedPos); | 732 | // so.Name, avatar.Name, attachmentpoint, attachOffset, so.RootPart.AttachedPos); |
diff --git a/OpenSim/Region/CoreModules/Framework/InventoryAccess/InventoryAccessModule.cs b/OpenSim/Region/CoreModules/Framework/InventoryAccess/InventoryAccessModule.cs index 0c0b0c5..4e8466d 100644 --- a/OpenSim/Region/CoreModules/Framework/InventoryAccess/InventoryAccessModule.cs +++ b/OpenSim/Region/CoreModules/Framework/InventoryAccess/InventoryAccessModule.cs | |||
@@ -669,28 +669,10 @@ namespace OpenSim.Region.CoreModules.Framework.InventoryAccess | |||
669 | return item; | 669 | return item; |
670 | } | 670 | } |
671 | 671 | ||
672 | /// <summary> | 672 | public virtual SceneObjectGroup RezObject( |
673 | /// Rez an object into the scene from the user's inventory | 673 | IClientAPI remoteClient, UUID itemID, Vector3 RayEnd, Vector3 RayStart, |
674 | /// </summary> | 674 | UUID RayTargetID, byte BypassRayCast, bool RayEndIsIntersection, |
675 | /// <remarks> | 675 | bool RezSelected, bool RemoveItem, UUID fromTaskID, bool attachment) |
676 | /// FIXME: It would be really nice if inventory access modules didn't also actually do the work of rezzing | ||
677 | /// things to the scene. The caller should be doing that, I think. | ||
678 | /// </remarks> | ||
679 | /// <param name="remoteClient"></param> | ||
680 | /// <param name="itemID"></param> | ||
681 | /// <param name="RayEnd"></param> | ||
682 | /// <param name="RayStart"></param> | ||
683 | /// <param name="RayTargetID"></param> | ||
684 | /// <param name="BypassRayCast"></param> | ||
685 | /// <param name="RayEndIsIntersection"></param> | ||
686 | /// <param name="RezSelected"></param> | ||
687 | /// <param name="RemoveItem"></param> | ||
688 | /// <param name="fromTaskID"></param> | ||
689 | /// <param name="attachment"></param> | ||
690 | /// <returns>The SceneObjectGroup rezzed or null if rez was unsuccessful.</returns> | ||
691 | public virtual SceneObjectGroup RezObject(IClientAPI remoteClient, UUID itemID, Vector3 RayEnd, Vector3 RayStart, | ||
692 | UUID RayTargetID, byte BypassRayCast, bool RayEndIsIntersection, | ||
693 | bool RezSelected, bool RemoveItem, UUID fromTaskID, bool attachment) | ||
694 | { | 676 | { |
695 | // m_log.DebugFormat("[INVENTORY ACCESS MODULE]: RezObject for {0}, item {1}", remoteClient.Name, itemID); | 677 | // m_log.DebugFormat("[INVENTORY ACCESS MODULE]: RezObject for {0}, item {1}", remoteClient.Name, itemID); |
696 | 678 | ||
@@ -707,13 +689,34 @@ namespace OpenSim.Region.CoreModules.Framework.InventoryAccess | |||
707 | } | 689 | } |
708 | 690 | ||
709 | item.Owner = remoteClient.AgentId; | 691 | item.Owner = remoteClient.AgentId; |
710 | AssetBase rezAsset = m_Scene.AssetService.Get(item.AssetID.ToString()); | 692 | |
693 | return RezObject( | ||
694 | remoteClient, item, item.AssetID, | ||
695 | RayEnd, RayStart, RayTargetID, BypassRayCast, RayEndIsIntersection, | ||
696 | RezSelected, RemoveItem, fromTaskID, attachment); | ||
697 | } | ||
698 | |||
699 | public virtual SceneObjectGroup RezObject( | ||
700 | IClientAPI remoteClient, InventoryItemBase item, UUID assetID, Vector3 RayEnd, Vector3 RayStart, | ||
701 | UUID RayTargetID, byte BypassRayCast, bool RayEndIsIntersection, | ||
702 | bool RezSelected, bool RemoveItem, UUID fromTaskID, bool attachment) | ||
703 | { | ||
704 | AssetBase rezAsset = m_Scene.AssetService.Get(assetID.ToString()); | ||
711 | 705 | ||
712 | if (rezAsset == null) | 706 | if (rezAsset == null) |
713 | { | 707 | { |
714 | m_log.WarnFormat( | 708 | if (item != null) |
715 | "[InventoryAccessModule]: Could not find asset {0} for item {1} {2} for {3} in RezObject()", | 709 | { |
716 | item.AssetID, item.Name, item.ID, remoteClient.Name); | 710 | m_log.WarnFormat( |
711 | "[InventoryAccessModule]: Could not find asset {0} for item {1} {2} for {3} in RezObject()", | ||
712 | assetID, item.Name, item.ID, remoteClient.Name); | ||
713 | } | ||
714 | else | ||
715 | { | ||
716 | m_log.WarnFormat( | ||
717 | "[InventoryAccessModule]: Could not find asset {0} for {1} in RezObject()", | ||
718 | assetID, remoteClient.Name); | ||
719 | } | ||
717 | 720 | ||
718 | return null; | 721 | return null; |
719 | } | 722 | } |
@@ -781,7 +784,7 @@ namespace OpenSim.Region.CoreModules.Framework.InventoryAccess | |||
781 | } | 784 | } |
782 | } | 785 | } |
783 | 786 | ||
784 | if (!DoPreRezWhenFromItem(remoteClient, item, objlist, pos, attachment)) | 787 | if (item != null && !DoPreRezWhenFromItem(remoteClient, item, objlist, pos, attachment)) |
785 | return null; | 788 | return null; |
786 | 789 | ||
787 | for (int i = 0; i < objlist.Count; i++) | 790 | for (int i = 0; i < objlist.Count; i++) |
@@ -829,10 +832,6 @@ namespace OpenSim.Region.CoreModules.Framework.InventoryAccess | |||
829 | 832 | ||
830 | group.AbsolutePosition = pos + veclist[i]; | 833 | group.AbsolutePosition = pos + veclist[i]; |
831 | } | 834 | } |
832 | else | ||
833 | { | ||
834 | group.SetFromItemID(itemID); | ||
835 | } | ||
836 | 835 | ||
837 | SceneObjectPart rootPart = group.RootPart; | 836 | SceneObjectPart rootPart = group.RootPart; |
838 | 837 | ||
@@ -855,7 +854,8 @@ namespace OpenSim.Region.CoreModules.Framework.InventoryAccess | |||
855 | // group.Name, group.LocalId, group.UUID, remoteClient.Name); | 854 | // group.Name, group.LocalId, group.UUID, remoteClient.Name); |
856 | } | 855 | } |
857 | 856 | ||
858 | DoPostRezWhenFromItem(item, attachment); | 857 | if (item != null) |
858 | DoPostRezWhenFromItem(item, attachment); | ||
859 | 859 | ||
860 | return group; | 860 | return group; |
861 | } | 861 | } |
@@ -973,6 +973,9 @@ namespace OpenSim.Region.CoreModules.Framework.InventoryAccess | |||
973 | } | 973 | } |
974 | 974 | ||
975 | rootPart.TrimPermissions(); | 975 | rootPart.TrimPermissions(); |
976 | |||
977 | if (isAttachment) | ||
978 | so.SetFromItemID(item.ID); | ||
976 | } | 979 | } |
977 | 980 | ||
978 | return true; | 981 | return true; |
diff --git a/OpenSim/Region/Framework/Interfaces/IInventoryAccessModule.cs b/OpenSim/Region/Framework/Interfaces/IInventoryAccessModule.cs index da11e61..1904011 100644 --- a/OpenSim/Region/Framework/Interfaces/IInventoryAccessModule.cs +++ b/OpenSim/Region/Framework/Interfaces/IInventoryAccessModule.cs | |||
@@ -54,10 +54,58 @@ namespace OpenSim.Region.Framework.Interfaces | |||
54 | /// FIXME: This is not very useful. It would be far more useful to return a list of items instead. | 54 | /// FIXME: This is not very useful. It would be far more useful to return a list of items instead. |
55 | /// </returns> | 55 | /// </returns> |
56 | UUID CopyToInventory(DeRezAction action, UUID folderID, List<SceneObjectGroup> objectGroups, IClientAPI remoteClient); | 56 | UUID CopyToInventory(DeRezAction action, UUID folderID, List<SceneObjectGroup> objectGroups, IClientAPI remoteClient); |
57 | 57 | ||
58 | SceneObjectGroup RezObject(IClientAPI remoteClient, UUID itemID, Vector3 RayEnd, Vector3 RayStart, | 58 | /// <summary> |
59 | UUID RayTargetID, byte BypassRayCast, bool RayEndIsIntersection, | 59 | /// Rez an object into the scene from the user's inventory |
60 | bool RezSelected, bool RemoveItem, UUID fromTaskID, bool attachment); | 60 | /// </summary> |
61 | /// <remarks> | ||
62 | /// FIXME: It would be really nice if inventory access modules didn't also actually do the work of rezzing | ||
63 | /// things to the scene. The caller should be doing that, I think. | ||
64 | /// </remarks> | ||
65 | /// <param name="remoteClient"></param> | ||
66 | /// <param name="itemID"></param> | ||
67 | /// <param name="RayEnd"></param> | ||
68 | /// <param name="RayStart"></param> | ||
69 | /// <param name="RayTargetID"></param> | ||
70 | /// <param name="BypassRayCast"></param> | ||
71 | /// <param name="RayEndIsIntersection"></param> | ||
72 | /// <param name="RezSelected"></param> | ||
73 | /// <param name="RemoveItem"></param> | ||
74 | /// <param name="fromTaskID"></param> | ||
75 | /// <param name="attachment"></param> | ||
76 | /// <returns>The SceneObjectGroup rezzed or null if rez was unsuccessful.</returns> | ||
77 | SceneObjectGroup RezObject( | ||
78 | IClientAPI remoteClient, UUID itemID, Vector3 RayEnd, Vector3 RayStart, | ||
79 | UUID RayTargetID, byte BypassRayCast, bool RayEndIsIntersection, | ||
80 | bool RezSelected, bool RemoveItem, UUID fromTaskID, bool attachment); | ||
81 | |||
82 | /// <summary> | ||
83 | /// Rez an object into the scene from the user's inventory | ||
84 | /// </summary> | ||
85 | /// <remarks> | ||
86 | /// FIXME: It would be really nice if inventory access modules didn't also actually do the work of rezzing | ||
87 | /// things to the scene. The caller should be doing that, I think. | ||
88 | /// </remarks> | ||
89 | /// <param name="remoteClient"></param> | ||
90 | /// <param name="item"> | ||
91 | /// The item from which the object asset came. Can be null, in which case pre and post rez item adjustment and checks are not performed. | ||
92 | /// </param> | ||
93 | /// <param name="assetID">The asset id for the object to rez.</param> | ||
94 | /// <param name="RayEnd"></param> | ||
95 | /// <param name="RayStart"></param> | ||
96 | /// <param name="RayTargetID"></param> | ||
97 | /// <param name="BypassRayCast"></param> | ||
98 | /// <param name="RayEndIsIntersection"></param> | ||
99 | /// <param name="RezSelected"></param> | ||
100 | /// <param name="RemoveItem"></param> | ||
101 | /// <param name="fromTaskID"></param> | ||
102 | /// <param name="attachment"></param> | ||
103 | /// <returns>The SceneObjectGroup rezzed or null if rez was unsuccessful.</returns> | ||
104 | SceneObjectGroup RezObject( | ||
105 | IClientAPI remoteClient, InventoryItemBase item, UUID assetID, Vector3 RayEnd, Vector3 RayStart, | ||
106 | UUID RayTargetID, byte BypassRayCast, bool RayEndIsIntersection, | ||
107 | bool RezSelected, bool RemoveItem, UUID fromTaskID, bool attachment); | ||
108 | |||
61 | void TransferInventoryAssets(InventoryItemBase item, UUID sender, UUID receiver); | 109 | void TransferInventoryAssets(InventoryItemBase item, UUID sender, UUID receiver); |
62 | 110 | ||
63 | /// <summary> | 111 | /// <summary> |
diff --git a/OpenSim/Region/Framework/Interfaces/IScenePresence.cs b/OpenSim/Region/Framework/Interfaces/IScenePresence.cs index 91e4bf2..8913133 100644 --- a/OpenSim/Region/Framework/Interfaces/IScenePresence.cs +++ b/OpenSim/Region/Framework/Interfaces/IScenePresence.cs | |||
@@ -46,6 +46,11 @@ namespace OpenSim.Region.Framework.Interfaces | |||
46 | IClientAPI ControllingClient { get; } | 46 | IClientAPI ControllingClient { get; } |
47 | 47 | ||
48 | /// <summary> | 48 | /// <summary> |
49 | /// What type of presence is this? User, NPC, etc. | ||
50 | /// </summary> | ||
51 | PresenceType PresenceType { get; } | ||
52 | |||
53 | /// <summary> | ||
49 | /// Avatar appearance data. | 54 | /// Avatar appearance data. |
50 | /// </summary> | 55 | /// </summary> |
51 | /// <remarks> | 56 | /// <remarks> |
diff --git a/OpenSim/Region/Framework/Scenes/ScenePresence.cs b/OpenSim/Region/Framework/Scenes/ScenePresence.cs index 0d284a5..1c283c7 100644 --- a/OpenSim/Region/Framework/Scenes/ScenePresence.cs +++ b/OpenSim/Region/Framework/Scenes/ScenePresence.cs | |||
@@ -75,9 +75,6 @@ namespace OpenSim.Region.Framework.Scenes | |||
75 | 75 | ||
76 | private static readonly ILog m_log = LogManager.GetLogger(MethodBase.GetCurrentMethod().DeclaringType); | 76 | private static readonly ILog m_log = LogManager.GetLogger(MethodBase.GetCurrentMethod().DeclaringType); |
77 | 77 | ||
78 | /// <summary> | ||
79 | /// What type of presence is this? User, NPC, etc. | ||
80 | /// </summary> | ||
81 | public PresenceType PresenceType { get; private set; } | 78 | public PresenceType PresenceType { get; private set; } |
82 | 79 | ||
83 | // private static readonly byte[] DEFAULT_TEXTURE = AvatarAppearance.GetDefaultTexture().GetBytes(); | 80 | // private static readonly byte[] DEFAULT_TEXTURE = AvatarAppearance.GetDefaultTexture().GetBytes(); |