If a scene object part UUID is changed (only possible when not in a scene), then adjust the inventory items to point to the new uuid as well
parent
84ad9e4d4e
commit
f7b28dd321
|
@ -348,15 +348,15 @@ namespace OpenSim.Framework
|
|||
/// <param name="partID">The new part ID to which this item belongs</param>
|
||||
public void ResetIDs(UUID partID)
|
||||
{
|
||||
_oldID = _itemID;
|
||||
_itemID = UUID.Random();
|
||||
_parentPartID = partID;
|
||||
_parentID = partID;
|
||||
OldItemID = ItemID;
|
||||
ItemID = UUID.Random();
|
||||
ParentPartID = partID;
|
||||
ParentID = partID;
|
||||
}
|
||||
|
||||
public TaskInventoryItem()
|
||||
{
|
||||
_creationDate = (uint)(DateTime.UtcNow - new DateTime(1970, 1, 1)).TotalSeconds;
|
||||
CreationDate = (uint)(DateTime.UtcNow - new DateTime(1970, 1, 1)).TotalSeconds;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -494,7 +494,14 @@ namespace OpenSim.Region.Framework.Scenes
|
|||
public UUID UUID
|
||||
{
|
||||
get { return m_uuid; }
|
||||
set { m_uuid = value; }
|
||||
set
|
||||
{
|
||||
m_uuid = value;
|
||||
|
||||
// This is necessary so that TaskInventoryItem parent ids correctly reference the new uuid of this part
|
||||
if (Inventory != null)
|
||||
Inventory.ResetInventoryIDs();
|
||||
}
|
||||
}
|
||||
|
||||
public uint LocalId
|
||||
|
@ -2756,7 +2763,6 @@ namespace OpenSim.Region.Framework.Scenes
|
|||
UUID = UUID.Random();
|
||||
LinkNum = linkNum;
|
||||
LocalId = 0;
|
||||
Inventory.ResetInventoryIDs();
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
|
|
|
@ -119,6 +119,9 @@ namespace OpenSim.Region.Framework.Scenes
|
|||
/// <param name="linkNum">Link number for the part</param>
|
||||
public void ResetInventoryIDs()
|
||||
{
|
||||
if (null == m_part || null == m_part.ParentGroup)
|
||||
return;
|
||||
|
||||
lock (m_items)
|
||||
{
|
||||
if (0 == m_items.Count)
|
||||
|
|
Loading…
Reference in New Issue