aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/OpenSim/Region/Environment
diff options
context:
space:
mode:
Diffstat (limited to 'OpenSim/Region/Environment')
-rw-r--r--OpenSim/Region/Environment/Scenes/Scene.Inventory.cs45
-rw-r--r--OpenSim/Region/Environment/Scenes/SceneObjectPart.cs2
2 files changed, 39 insertions, 8 deletions
diff --git a/OpenSim/Region/Environment/Scenes/Scene.Inventory.cs b/OpenSim/Region/Environment/Scenes/Scene.Inventory.cs
index e41f180..8481737 100644
--- a/OpenSim/Region/Environment/Scenes/Scene.Inventory.cs
+++ b/OpenSim/Region/Environment/Scenes/Scene.Inventory.cs
@@ -606,16 +606,47 @@ namespace OpenSim.Region.Environment.Scenes
606 public void UpdateTaskInventory(IClientAPI remoteClient, LLUUID itemID, LLUUID folderID, 606 public void UpdateTaskInventory(IClientAPI remoteClient, LLUUID itemID, LLUUID folderID,
607 uint primLocalID) 607 uint primLocalID)
608 { 608 {
609
609 SceneObjectGroup group = GetGroupByPrim(primLocalID); 610 SceneObjectGroup group = GetGroupByPrim(primLocalID);
611
610 if (group != null) 612 if (group != null)
611 { 613 {
612 // TODO Retrieve itemID from client's inventory to pass on 614 LLUUID copyID = LLUUID.Random();
613 //group.AddInventoryItem(remoteClient, primLocalID, null); 615 if (itemID != LLUUID.Zero)
614 m_log.InfoFormat( 616 {
615 "[PRIM INVENTORY]: " + 617 CachedUserInfo userInfo = CommsManager.UserProfileCacheService.GetUserDetails(remoteClient.AgentId);
616 "Non script prim inventory not yet implemented!" 618
617 + "\nUpdateTaskInventory called with item {0}, folder {1}, primLocalID {2}, user {3}", 619 if (userInfo != null && userInfo.RootFolder != null)
618 itemID, folderID, primLocalID, remoteClient.Name); 620 {
621 InventoryItemBase item = userInfo.RootFolder.HasItem(itemID);
622
623 // Try library
624 // XXX clumsy, possibly should be one call
625 if (null == item)
626 {
627 item = CommsManager.UserProfileCacheService.libraryRoot.HasItem(itemID);
628 }
629
630 if (item != null)
631 {
632
633 group.AddInventoryItem(remoteClient, primLocalID, item, copyID);
634 m_log.InfoFormat("[PRIMINVENTORY]: Update with item {0} requested of prim {1} for {2}", item.inventoryName, primLocalID, remoteClient.Name);
635 group.GetProperties(remoteClient);
636
637 }
638 else
639 {
640 m_log.ErrorFormat(
641 "[PRIM INVENTORY]: Could not find inventory item {0} to update for {1}!",
642 itemID, remoteClient.Name);
643 }
644
645 }
646
647 }
648
649
619 } 650 }
620 else 651 else
621 { 652 {
diff --git a/OpenSim/Region/Environment/Scenes/SceneObjectPart.cs b/OpenSim/Region/Environment/Scenes/SceneObjectPart.cs
index 04fa03e..a6a5063 100644
--- a/OpenSim/Region/Environment/Scenes/SceneObjectPart.cs
+++ b/OpenSim/Region/Environment/Scenes/SceneObjectPart.cs
@@ -1844,7 +1844,7 @@ namespace OpenSim.Region.Environment.Scenes
1844 m_log.Info("[PHYSICS]: Physical Object went out of bounds."); 1844 m_log.Info("[PHYSICS]: Physical Object went out of bounds.");
1845 RemFlag(LLObject.ObjectFlags.Physics); 1845 RemFlag(LLObject.ObjectFlags.Physics);
1846 DoPhysicsPropertyUpdate(false, true); 1846 DoPhysicsPropertyUpdate(false, true);
1847 m_parentGroup.Scene.PhysicsScene.AddPhysicsActorTaint(PhysActor); 1847 //m_parentGroup.Scene.PhysicsScene.AddPhysicsActorTaint(PhysActor);
1848 } 1848 }
1849 1849
1850 public virtual void OnGrab(LLVector3 offsetPos, IClientAPI remoteClient) 1850 public virtual void OnGrab(LLVector3 offsetPos, IClientAPI remoteClient)